Session.StartSession(var Integer, Integer [, Text] [, var Record]) Method

Version: Available or changed with runtime version 1.0.

Starts a session without a UI and runs the specified codeunit.

Syntax

[Ok := ]  Session.StartSession(var SessionId: Integer, CodeunitId: Integer [, Company: Text] [, var Record: Record])

Note

This method can be invoked without specifying the data type name.

Parameters

SessionId
 Type: Integer
The ID of the new session that is started. The ID is assigned to the SessionID variable after the session is started successfully. This parameter is passed by reference to the method.

CodeunitId
 Type: Integer
The ID of the codeunit to run when the session is started.

[Optional] Company
 Type: Text
The company in which to start the session. By default, the session is started in the same company as the calling session.

[Optional] Record
 Type: Record
A record that is passed to the OnRun trigger of the codeunit that runs when the session is started. This parameter is optional.

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.

Remarks

The session is started on the same Business Central instance from which the method is called. The session that is started is a background session and therefore has no UI. The session executes using the same user credentials as the calling AL code.

Each background session has the same impact on resources as a regular user session. In addition, it takes time and resources to start each background session. Therefore, we recommend that you consider when and how you use background sessions. For example, do not use background sessions for small tasks that occur often because the cost of starting the session for each tasks is high.

Dialog box behavior

The following table describes how dialog boxes are handled in a background or web service session, which has no UI.

Method that creates the dialog box Behavior
Dialog.Confirm - Dialog box is suppressed.
- The following error occurs on the Business Central instance: Business Central attempted to issue a client callback to show a confirmation dialog box.
Dialog.Error - Dialog box is suppressed.
- AL code execution ends.
- The error is logged to the event log of the Business Central instance.
- The error is added to the Comments field of the Session Event table.

Note: Stopping the main codeunit with Dialog.Error('') is considered a successful operation, so the failure codeunit isn't executed.
Dialog.Message - Dialog box is suppressed.
- The message is recorded in the event log of the computer that is running Business Central instance. The log entry has type Information and includes the context of the message.
Dialog.Open - Dialog box is suppressed.
- Dialog box text is not displayed or logged.

Example

In this example, the Cache Stress Test codeunit is a custom codeunit.

var
    CacheStressTestRec: Record Customer;
    SessionID: Integer;
    OK: Boolean;
begin  
    OK := StartSession(SessionId, CodeUnit::"Cache Stress Test", CompanyName, CacheStressTestRec);  
    if OK then  
      StopSession(SessionId, 'Logoff cache stress test session')  
    else  
      Error('The session was not started successfully.');  
end;

Session Data Type
Get Started with AL
Developing Extensions