TbeThreadEnvironment
TbeThreadEnvironment
Klasse welche Umgebungs-Informationen und Funktionen innerhalb von Codeblöcken zur Verfügung stellt, auch wenn der Codeblock in einem andern Thread läuft (z.B. in beas Service Calls).
Eine Instanz dieser Klasse steht in allen Codeblöcken über das ENVIRONMENT Objekt zur Verfügung.
Die Klasse kann nicht über CreateObjekt() erzeugt werden.
Eigenschaften | Beschreibung |
---|---|
ThreadId:N | ID des aktuellen Thread |
ChangeLogging:O | Objekt um Tabellenänderungen aufzuzeichnen (analog Tablelogging) |
Beispiel
| oDataModule, oDabCVP, oSettings |
startseq
ENVIRONMENT.ChangeLogging.Settings.SkipBlobFields := False,
ENVIRONMENT.ChangeLogging.Activate(),
ENVIRONMENT.ChangeLogging.Reset(),
oDataModule := CreateObject('TBeDBGet', 'DATAMODULE'),
startseq
oDabCVP := DbGetTable(oDataModule, waDABCVP),
oDataModule.CbTransaction_Begin(),
startseq
DBAppend(oDabCVP),
writeln('ID', oDabCVP:ID),
oDabCVP:FEHLERTEXT := 'Test',
DBCancel(oDabCVP),
DBAppend(oDabCVP),
writeln('ID', oDabCVP:ID),
oDabCVP:FEHLERTEXT := 'Append2',
DBPost(oDabCVP),
oDataModule.CbTransaction_Commit(),
oDataModule.CbTransaction_Begin(),
DBEdit(oDabCVP),
writeln('ID', oDabCVP:ID),
oDabCVP:FEHLERTEXT := 'Edit',
DBPost(oDabCVP),
oDataModule.CbTransaction_TryRollback(),
always
oDataModule.CbTransaction_TryRollback(), // Wenn ein Fehler aufgetreten ist
// und die Transaktion noch aktiv ist,
// dann wird ein Rollback() durchgeführt
stopseq,
always
DestroyObject(oDataModule),
stopseq,
oSettings := CreateObject('TBeLoggingOutputSettings'),
startseq
oSettings.OnlyRealChanges := True,
oSettings.WorkAreaFilter := {waDABCVP},
writeln(ENVIRONMENT.ChangeLogging.Changes(oSettings)),
always
DestroyObject(oSettings),
stopseq,
always
ENVIRONMENT.ChangeLogging.Deactivate(),
stopseq,