SvcSessionControl
SvcSessionControl(int1[, int2]) : int
Verwaltung der Sitzungsinformationen
Details
- int1:
- Befehlsmodus:
_SvcSessionCreate_SvcSessionLoad_SvcSessionDelete
- int2: Session-Id (optional)
- Resultat:
intSession-ID oder Fehlerwert - Siehe: Verwandte Befehle
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.