Eine Codeunit erstellen und auf sie zugreifen

Abgeschlossen

Sie können den Ausschnitt tcodeunit verwenden, um eine neue Codeunit zu erstellen. Stellen Sie sicher, dass Sie eine Nummer und einen Namen für Ihre Codeunit angeben. Dieser Schritt hilft Ihnen beim Zugriff auf die Funktionen innerhalb der Codeunit nach Namen.

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

    trigger OnRun()
    begin
        
    end;

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

    end;
}

Erstellen Sie zunächst eine Variable vom Typ Codeunit, um auf Funktionen innerhalb einer Codeunit zuzugreifen. Anschließend können Sie auf alle Codeunit-Funktionen zugreifen (abhängig von deren Zugriffseigenschaften).

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

Sie können auch von einer Seite aus auf eine Codeunit zugreifen, indem Sie die RunObject-Eigenschaft auf eine Aktion verwenden.

Wenn Sie die Eigenschaft RunObject verwenden, können Sie nur den Trigger OnRun ausführen, nicht die anderen Funktionen innerhalb der Codeunit.

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

Um auf die anderen Funktionen zuzugreifen, können Sie den Trigger OnAction verwenden.

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;
        }
    }
}