SvcSessionControl
Die Anweisung kann nur innerhalb einer Ereignisfunktion des SOA-Service ausgeführt werden.
Mit dieser Funktion werden die Sessions innerhalb der Verarbeitung des SOA-Services verwaltet. In (int1) wird der Befehlsmodus übergeben. Folgende Modi stehen zur Verfügung:
_SvcSessionCreate - Sitzung erzeugen
Mit der Anweisung SvcSessionControl(_SvcSessionCreate) wird eine neue Session angelegt und der laufenden Prozedur zugeordnet. Der Rückgabewert ist die Session-ID (Wert größer 0) oder der Fehlerwert (Wert kleiner 0). Nach dem Ende der laufenden Prozedur werden die vorhandenen globalen Datenbereiche und Deskriptoren unter dieser Session-Id automatisch gespeichert.
Deskriptoren von Datensatzpuffern, Oberflächen- und Druckobjekten werden dabei nicht gesichert, sondern gelöscht.
Die Session-Id kann beispielsweise im HTTP-Protokoll als Cookie übertragen werden. Im Task-Objekt ist die Session-ID als Eigenschaft SvcSessionID verfügbar.
Folgende Fehlerresultate sind möglich:
_ErrSvcSessionState: Der Prozedur ist bereits eine Session zugeordnet._ErrLimitExceeded: Die maximale Anzahl von Sessions ist erreicht.
_SvcSessionLoad - Sitzung lesen
Mit der Anweisung SvcSessionControl(_SessionLoad, <SessionID>) werden die gesicherten Deskriptoren und Datenbereiche einer Session in die Prozedurumgebung übertragen. Die Session-Id muss im Argument (int2) übergeben werden. Die Session wird dabei der laufenden Prozedur zugeordnet, wodurch nach dem Ende der Prozedur die Daten auch wieder unter dieser Session-Id gesichert werden.
Folgende Fehlerresultate sind möglich:
_ErrSvcSessionState: Die Prozedur hat bereits eine zugeordnete Session._ErrUnknown: Es gibt keine Session mit dieser ID._ErrUnavailable: Die Session ist bereits einer anderen Prozedurinstanz zugeordnet.
_SvcSessionDelete - Sitzung löschen
Die Anweisung SvcSessionControl(_SvcSessionDelete) löscht die Session-Id und die Zuordnung der Session zur laufenden Prozedur. Die Session-Id ist danach nicht mehr vorhanden. Nach dem Befehl kann aber eine neue Session mit _SvcSessionCreate oder eine vorhandene mit _SvcSessionload zugeordnet werden.
Folgende Fehlerresultate sind möglich:
_ErrSvcSessionState: Die Prozedur hat keine zugeordnete Session.