Inicio Blog Cómo añadir acciones personalizadas utilizando las carpetas especiales en Acumatica

Adición de acciones personalizadas mediante las carpetas especiales de Acumatica

Keith Richardson | 12 de junio de 2021

Tener una interfaz de usuario coherente es importante para los usuarios de Acumatica. Los usuarios finales comúnmente van a los menús estándar en una pantalla para buscar acciones adicionales - Acciones, Consultas e Informes. Hoy, voy a revisar la adición de las carpetas especiales, así como la adición de acciones personalizadas.

Adición de acciones personalizadas mediante las carpetas especiales de Acumatica

Puede añadir una nueva Acción utilizando el editor de pantalla si es de uno de los tres tipos: Ejecutar informe, Navegación : Buscar registros o Navegación : Crear registro.

Es posible que desee añadir una acción personalizada para su proceso de negocio o copiar una de otra pantalla y añadirla a una pantalla diferente. Esto puede hacerse en el código, pero típicamente se muestra como un botón en la barra de herramientas, no bajo el menú. Puede añadirla al menú Acciones a través de la extensión gráfica, o a través del editor de pantallas.

En Acumatica 2019 R1, tenemos el beneficio añadido de mover Acciones a las Carpetas Especiales a través de un proyecto de personalización. Esto es beneficioso ya que es posible que no tengamos acceso al código y queramos mover una Acción a uno de los 3 menús principales, como en una solución ISV.

Por ejemplo, podemos tener una Acción Personalizada en la pantalla del cliente, y queremos moverla a la carpeta Acciones:

Acción personalizada en la pantalla de cliente.

 

En primer lugar, abra la pantalla en un proyecto de personalización; en segundo lugar, expanda DataSource: CustomerMaint; y luego expanda Form-Specific:

Proyecto de personalización - ampliar DataSource - Cliente.

 

Veremos la Acción Personalizada que queremos mover. Expanda las Acciones, y luego arrastre la Acción donde la queremos en el menú:

 

Acción personalizada

 

Resaltará dónde se colocará la Acción. En este ejemplo, se movió justo encima de Cambiar ID:

Drag-Actions

Una vez que publiquemos nuestro proyecto de personalización, veremos que la Acción Personalizada se ha movido al lugar donde la colocamos en el Menú de Acciones:

Proyecto de personalización - Acción personalizada.

 

Si queremos añadir una Acción programáticamente a la Carpeta de Acciones, podemos hacerlo anulando la Función Inicializar y añadiéndola al Menú de Acciones utilizando la función AddMenuAction. Por ejemplo, añadir una acción llamada CustomAction sería como sigue:


public override void Initialize()
{
base.Initialize();
this.Base.action.AddMenuAction(CustomAction);
}

También podemos especificar dos parámetros adicionales para la función AddMenuAction si queremos colocarla en un lugar específico del menú. El primer parámetro sería una cadena con el nombre de la acción, y el segundo sería insertAfter. Si insertAfter es false, insertaría la acción antes de la acción especificada. Si es verdadero, iría después en la lista. Por ejemplo, si queremos añadir otra acción llamada AnotherCustomAction, iría después de CustomAction en el menú. En este caso, el código sería:


(OtraCustomAction, "CustomAction", true);

Si estamos haciendo nuestra propia pantalla y necesitamos añadir la carpeta Acciones/Consultas/Informes, podemos hacerlo creando nuestras propias acciones con los nombres estándar y dándoles una designación de carpeta especial. Para añadir un menú de acciones , utilizaríamos el siguiente código en nuestro gráfico:


public PXAction<CYCylinder> action;
[PXUIField(DisplayName = "Actions", MapEnableRights = PXCacheRights.Select, MapViewRights = PXCacheRights.Select)]
[PXButton(SpecialType = PXSpecialButtonType.ActionsFolder)]
protected IEnumerable Action(PXAdapter adapter)
{
return adapter.Get();
}

SpecialType se asigna a la carpeta de acciones y tiene el mismo aspecto que el menú de accionesde la pantalla estándar en el editor de proyectos de personalización. También puede especificar PXSpecialButtonType .ReportsFolder para informes y PXSpecialButtonType.InquiriesFolder para consultas.

Podemos necesitar añadir la función Initialize a nuestro grafo personalizado heredando la interfaz IGraphWithInitialization. Podemos entonces sobreescribir la función Initialize. Entonces añadiríamos elementos de menú sin necesitar this.Base, ya que nuestra acción está en el gráfico actual:


public virtual void Initialize()
{
base.Initialize();
action.AddMenuAction(CustomAction);
}

 

Es una buena idea marcar nuestro método Initialize como virtual en caso de que el gráfico necesite ser extendido y otros elementos puedan necesitar ser realizados durante la función Initialize.

Resumen

Es importante que los desarrolladores dispongan de una interfaz de usuario coherente para que sus usuarios naveguen por las aplicaciones en general y por Acumatica en particular. Los usuarios finales suelen volver a los menús estándar de una pantalla para buscar acciones adicionales como Acciones, Consultas e Informes. Podemos integrarlas en nuestras aplicaciones, proporcionando la coherencia en la que confían los usuarios finales.

Autor del blog

Arquitecto de sistemas de aplicación en Haun Welding Supply

Reciba las actualizaciones del blog en su bandeja de entrada.