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;
Related information
Codeunit Data Type
Get Started with AL
Developing Extensions