Crear una codeunit y tener acceso a ella

Completado

Para crear una nueva codeunit, puede usar el fragmento tcodeunit. Asegúrese de indicar un número y un nombre para la codeunit. Este paso lo ayudará a acceder a las funciones de la codeunit según el nombre.

codeunit 50100 MyCodeunit
{
    Access = Public;
    Subtype = Normal;

    trigger OnRun()
    begin
        
    end;

    procedure MyFunction(Param1: Integer; Param2: Text[50]) : Boolean
    begin 

    end;
}

Para acceder a las funciones de una codeunit, primero cree una variable de tipo Codeunit. Luego puede acceder a todas las funciones de codeunit (en función de las propiedades de acceso).

codeunit 50101 MyCodeunit2
{
    trigger OnRun()
    var
        MyCodeUnit1: Codeunit MyCodeunit;
        Result: Boolean;
    begin
        Result := MyCodeUnit1.MyFunction(5, 'Test');
    end;
}

También puede acceder a una codeunit desde una página con la propiedad RunObject en una acción.

Si usa la propiedad RunObject, solo puede ejecutar el desencadenador OnRun, no las otras funciones de la codeunit.

actions
{
    area(Processing)
    {
        action(ActionName)
        {
            ApplicationArea = All;
            Image = NewSum;
            Caption = 'ActionName';
            ToolTip = 'Click to run MyCodeunit';
            RunObject = codeunit MyCodeunit; 
        }
    }
}

Para acceder al resto de funciones, puede usar el desencadenador OnAction.

actions
{
    area(Processing)
    {
        action(ActionName)
        {
            ApplicationArea = All;
            Image = NewSum;
            Caption = 'ActionName2';
            ToolTip = 'Click to run MyCodeunit';
            RunObject = codeunit MyCodeunit; 
            trigger OnAction()
            var 
                MyCodeunit1: Codeunit MyCodeunit;
            begin 
                MyCodeunit1.MyFunction(2, 'Test 2');
            end;
        }
    }
}