Rediger

Del via


Codeunit.Run(Integer [, var Record]) Method

Version: Available or changed with runtime version 1.0.

Loads and runs the unit of AL code you specify. To use this method, you can specify a table associated with the codeunit when you defined the codeunit properties. This allows you to pass a variable with the method. The transaction that the codeunit contains is always committed due to the Boolean return value.

Syntax

[Ok := ]  Codeunit.Run(Number: Integer [, var Record: Record])

Parameters

Number
 Type: Integer
An integer data type that identifies the unit of AL code. If the codeunit you specify does not exist, a run-time error occurs. If you run the codeunit with a record from a table other than the one it is associated with, a run-time error occurs.

[Optional] Record
 Type: Record
This optional parameter identifies a record. This parameter is a record data type.

Return Value

[Optional] Ok
 Type: Boolean
true if the operation was successful; otherwise false. If you omit this optional return value and the operation does not execute successfully, a runtime error will occur.

Transaction semantics

When the return value of the Codeunit.Run method is used, for example using the if Codeunit.Run() then pattern, any changes done to the database will be committed at the end of the codeunit, unless an error occurs. If you're already in a transaction you must commit first before calling Codeunit.Run.

Using the CommitBehavior attribute together with Codeunit.Run, the implicit commit by Codeunit.Run isn't affected by CommitBehavior. For more information, see CommitBehavior Attribute.

Example

This example runs two codeunits. The first uses a record parameter. The second is defined without a source table.

var
    FiscalYearCloseInstance: Codeunit "Fiscal Year-Close";
    AppMgmtInstance: Codeunit ApplicationManagement;
    AccountRecord: Record "Accounting Period";
begin  
    AccountRecord.Init;  
    if not FiscalYearCloseInstance.Run(AccountRecord) then  
      Error('Codeunit run failed (with record).');  
    if not AppMgmtInstance.Run then  
      Error('Codeunit run failed.');  
end;

Codeunit Data Type
Get Started with AL
Developing Extensions