Definir acciones en una página y sus propiedades
Las acciones se muestran en la parte superior de cada página en la cinta. Estas acciones son acciones de ÁreaTrabajo porque se definen en una página de ÁreaTrabajo. Esta ubicación se llama la barra de navegación.
Debajo de la barra de navegación está la barra de comandos. Estas acciones se definen en la página Tarjeta o Lista.

Definir acciones en AL
Puede definir acciones en AL creando una sección de acciones en la sección de diseño de una página.
En la sección de acciones, debe crear acciones dentro de un área, al igual que los campos en la sección de diseño. Las cuatro áreas disponibles son:
Navegación: se corresponde con el menú Navegar.
Creación: se corresponde con el menú Nuevo documento en el menú Acciones.
Informes: se corresponde con el menú Informe.
Procesamiento: se corresponde con el menú Proceso.
Estas cuatro áreas se corresponden con los menús de la barra de comandos que aparece después del separador. La imagen siguiente muestra
los menús seleccionados en rojo. Si no ve los menús, seleccione el botón Mas opciones.

Los menús disponibles están fijos en Business Central. Si desea crear submenús, debe definir grupos dentro de un área y luego definir acciones dentro de ese grupo.
Para mostrar acciones en la primera parte de la barra de comandos, antes del separador, debe promover sus acciones utilizando la propiedad Promoted.

Propiedades de acción
Al igual que las tablas, los campos, las páginas y los controles, las acciones de una página también tienen algunas propiedades. Todas las acciones tienen un Id., un Nombre, un Título y una propiedad Imagen. La propiedad Imagen se utiliza para mostrar una imagen en la acción.

Propiedades Promoted, PromotedIsBig, PromotedOnly y PromotedCategory
La propiedad Promoted se utiliza para impulsar la acción en la primera parte de la barra de comandos, antes del separador. Las acciones promovidas siempre deben promoverse en una determinada categoría. Por lo tanto, debe establecer la propiedad PromotedCategory. PromotedCategory tendrá como resultado que se muestre un menú que contiene la acción.

PromotedCategory tiene valores fijos. Puede elegir entre Nuevo, Proceso, Informe y de Categoría 4 a Categoría 20. Ciertamente, no desea que el nombre del menú se muestre como Categoría 5. Por lo tanto, debe usar una propiedad de página llamada PromotedActionCategories.
En el siguiente ejemplo, se promueve la acción con el nombre Comentarios en Categoría 7, lo que significa que se mostrará en un menú Cliente.

Si solo desea que se promueva su acción y no desea que aparezca en uno de los menús normales (Acciones, Navegar, Informe, Nuevos documentos), entonces puede usar PromotedOnly, que es una propiedad booleana.
La propiedad PromotedIsBig se utiliza para cambiar el orden de las acciones mostradas. Con PromotedIsBig, la acción aparecerá antes que otras acciones.
Acciones promocionadas
Ahora, las páginas y las extensiones de página pueden contener un nuevo grupo de acciones para acciones promocionadas. Estos grupos pueden contener referencias a acciones existentes. Es posible añadir a grupos ya existentes o añadir nuevos grupos en extensiones de página. Los usuarios pueden personalizar su experiencia promocionando acciones. La plataforma y el cliente seguirán siendo compatibles con versiones anteriores, ya que la propiedad de acciones promocionadas actual seguirá existiendo, pero una página o una extensión de página deben ser coherentes en el uso del modelo antiguo o el nuevo. Habrá una acción de código para la conversión del modelo antiguo al nuevo.
Puede promocionar acciones que se usan con más frecuencia que otras, a fin de acceder rápidamente a ellas. Este tipo de acciones se denominan acciones promocionadas. Las acciones promocionadas se configuran en los menús Acciones, Navegar o Informar en la barra de acciones, pero también se configuran para aparecer en la pestaña Inicio. Sin embargo, puede ocultarlas en estos menús y mostrarlas solo en la pestaña Inicio.
Las acciones promocionadas se pueden usar en las páginas Ficha, Documento, Lista, ListPlus y Hoja de cálculo para ofrecer un acceso rápido a las tareas comunes que aparecen en la pestaña Inicio.
A partir del segundo lanzamiento de versiones de 2022 para Business Central, la forma de promocionar acciones en páginas o extensiones de página ha cambiado. La promoción de acciones se define en una sección específica del código de una página y contiene una referencia a la acción. La nueva sintaxis proporciona más visibilidad en el código porque las acciones promocionadas están agrupadas en una sección independiente. Para el usuario final, la experiencia de personalización mejora, ya que se han añadido opciones para promocionar acciones.
En Business Central, la nueva barra de acciones está habilitada cuando el marcador de características Barra de acciones moderna, en la página Administración de características, se configura como Habilitado. El marcador se puede desactivar para simular el comportamiento heredado, pero el código de acción promocionada en la aplicación base utiliza la sintaxis actionref.
Para definir acciones promocionadas, especifique un area(Promoted) en la sección de acciones de una página o una extensión de página. Dentro de esta sección area(Promoted), puede especificar una o más secciones actionref. Una actionref es un tipo de objeto que hace referencia a una acción en la página; al agregarla en la sección de área promocionada, se promocionará en la interfaz de usuario. Una actionref solo se puede definir en la sección area(Promoted). Puede crear grupos en area(Promoted) para las referencias actionrefo añadir secciones actionref directamente. Una actionref hereda las propiedades de la acción a la que se hace referencia. En las extensiones de página, puede añadirse a grupos existentes y puede agregar nuevos grupos.
Como parte del nuevo modelo de programación para acciones promocionadas, puede combinar varias acciones en un botón de división para organizar las acciones que está promocionando; esto reducirá el desorden y mejorará la uniformidad y proximidad de las acciones relacionadas. Se puede definir un botón de división para un grupo de acciones de página, que se representa como una combinación de botón y menú. Use la propiedad ShowAs para especificar que un determinado grupo de acciones de página deba representarse como un botón de división. Para obtener más información, consulte la propiedad ShowAs en la documentación.
El siguiente ejemplo muestra una página con la sintaxis del área promocionada. En el ejemplo, la sección area(Processing) define la acción MyBaseAction para la página, que desencadena un mensaje Hola mundo. MyBaseAction estará disponible en el grupo de procesamiento de la barra de acciones y se promocionará porque se agrega a la sección area(Promoted), que define las acciones que se van a promocionar. El ejemplo ilustra que es posible agrupar sus secciones actionref o especificarlas sin agrupar. actionref(MyPromotedActionRef; MyBaseAction) promociona la acción MyBaseAction definida, de modo que, además de colocarse en el grupo de procesamiento, también se promocione para que tenga un fácil acceso en la página. Además, el ejemplo ilustra el uso de un botón de división para Group2 con dos actionrefs.
al-languageCopy
page 50105 ActionRefPage
{
actions
{
area(Promoted)
{
actionref(MyPromotedActionRef; MyBaseAction)
{
}
group(Group1)
{
actionref(MySecondPromotedActionRef; MyBaseAction)
{
}
}
group(Group2)
{
ShowAs = SplitButton;
actionref(MySplitButtonPromotedActionRef; MyBaseAction)
{
}
actionref(MyOtherSplitButtonPromotedActionRef; MyBaseAction)
{
}
}
}
area(Processing)
{
action(MyBaseAction)
{
Visible = true;
trigger OnAction()
begin
Message('Hello world!');
end;
}
}
}
}
El cambio para usar la nueva sintaxis de acciones promocionadas se puede hacer gradualmente, ya que la sintaxis heredada y la nueva coexistirán durante un tiempo. Sin embargo, le recomendamos que se cambie lo antes posible. A medida que refactoriza el código, hay un par de cosas que debe tener en cuenta en ese proceso:
No está permitido usar sintaxis heredada y nueva para acciones promocionadas en la misma página o extensión de página. Esto significa que, si agrega la sintaxis actionref a su código, las propiedades promocionadas (Promoted, PromotiondOnly, PromotedActionCategories y PromotedCategory) no estarán permitidas.
En un proyecto, puede combinar la sintaxis heredada y nueva, y puede implementar la nueva sintaxis actionref en una página sin interrumpir las extensiones de página actuales. También puede escribir una extensión de página con la nueva sintaxis actionref basada en una página que use la sintaxis heredada.
En el segundo lanzamiento de versiones de 2022 para Business Central, hay disponible una acción de código para convertir páginas usando sintaxis heredada. La acción de código se puede aplicar a un ámbito de código limitado o más amplio.
Propiedades RunObject, RunPageView y RunPageLink
Cuando desee abrir una página o ejecutar código cuando un usuario seleccione una acción, puede escribir código AL en el desencadenador OnAction. También puede usar la propiedad RunObject.
Con la propiedad RunObject, puede ejecutar los siguientes objetos:
Página
Informe
XMLPort
Codeunit
Las propiedades RunPageLink, RunPageMode y RunPageView
están relacionadas con páginas, por lo que las usará si ejecuta una página.
RunPageLink se usa para crear una conexión entre dos tablas de origen de dos páginas. Por ejemplo, si desea ver todos los pedidos de ventas de un cliente específico a partir de una acción en la Tarjeta del cliente, debe vincular al cliente con los pedidos de venta. Como resultado, la página Pedidos de venta se filtrará por el cliente seleccionado. También puede establecer filtros adicionales.
RunPageMode indica en qué modo debe abrirse la página que está ejecutando. Se puede abrir en modo Ver, Editar o Crear. Sin embargo, si ha configurado la página y su propiedad InsertAllowed se ha establecido en No, la ejecución de la página en modo Crear no funcionará.
La propiedad RunPageView permite aplicar un filtro de tabla a la página y tener un resultado filtrado.
La propiedad ShowAs especifica cómo se debe representar a un grupo de acciones:
Standard: especifica que un grupo de acciones se debe representar como grupo estándar.
SplitButton: especifica que un grupo de acciones se debe representar como botón de división.
Al especificar que el grupo debe representarse como SplitButton, el grupo se representará como una combinación de botón y menú. Este tipo de control le brinda acceso rápido y con un solo clic a la primera acción, que se configura como Visible y Habilitada en un menú usando el botón de la izquierda; puede acceder a otras acciones relacionadas usando el menú desplegable de la derecha.
Tenga en cuenta la siguiente orientación sobre el diseño:
Los botones de división no son compatibles con las barras de acción de los subformularios ni con los menús contextuales. Cuando la tecla de función ModernActionBar está desactivada, no será compatible si la propiedad ShowAs se ha configurado como SplitButton en un grupo de categoría de acciones promocionadas.
Los clientes móviles no pueden usar botones de división. Si la propiedad ShowAs se ha configurado como SplitButton, se ignorará.
Ninguna propiedad de imagen, información sobre herramientas o título en un grupo se representará si el grupo se define como un botón de división. El procedimiento recomendado sigue siendo establecer estas propiedades, ya que se usan, por ejemplo, en clientes móviles si el grupo se representa como un grupo regular.
Un botón de división se puede anidar dentro de otro botón de división.
Para la personalización desde la interfaz de usuario, es posible soltar una acción en un botón de división; en ese caso, la acción se convertirá en la acción principal si está habilitada y es visible. Durante la personalización, también es posible reordenar las acciones secundarias, lo que actualizará dinámicamente la acción principal según sea necesario.
En el siguiente ejemplo, el grupo MyGroup se representará como un botón de división, lo que le da acceso con un solo clic a la acción MyAction:
al-languageCopy
group(MyGroup)
{
ShowAs = SplitButton;
action(MyAction)
{
}
...
El siguiente ejemplo muestra el comportamiento del botón de división si usa una categoría de acción promocionada con la propiedad ShowAs:
al-languageCopy
...
area(Promoted)
{
// Not rendered as a split button when the feature flag is OFF
group(Category_New) // This is a promoted action category
{
Caption = 'New';
ShowAs = SplitButton;
actionref(TestAction1_Promoted; TestAction1)
{
}
actionref(TestAction2_Promoted; TestAction2)
{
}
}
// Rendered as a split button (whether feature flag is ON or OFF)
group(Test)
{
ShowAs = SplitButton;
actionref(TestAction1_Promoted2; TestAction1)
{
}
actionref(TestAction2_Promoted2; TestAction2)
{
}
}
}
Definir acciones personalizadas en código AL
Las páginas en Business Central pueden tener acciones empleadas para ejecutar objetos como otras páginas, informes o codeunits. Todos estos objetos son nativos en Business Central. Sin embargo, cada vez es más necesario poder invocar objetivos externos. Para ofrecer el soporte correspondiente, se ha agregado una nueva acción personalizada. De momento, solo es posible invocar flujos de Power Automate, pero, en el futuro, las acciones personalizadas se podrían usar para invocar cosas como informes de Power BI, Power Apps o sitios web en el contexto de una página determinada de Business Central.
al-languageCopy
customaction(MyFlowAction)
{
CustomActionType = Flow;
FlowId = '<the-GUID-identifying-the-Power-Automate-Flow>';
FlowEnvironmentId = '<the-GUID-identifying-the-Power-Automate-environment>';
}