6.8.47 DMcob_QueueExtEvent
Die Ausführung einer dem externen Ereignis zugeordneten Regel wird durch die Anwendung über die Schnittstellenfunktion DMcob_QueueExtEvent; vorgemerkt. "Vorgemerkt" bedeutet, dass die Regel nicht sofort ausgeführt wird, sondern dass das externe Ereignis in eine Queue eingetragen wird und entsprechend den Mechanismen für Dialogereignisse weiterverarbeitet wird.
Dieses Ereignis wird dann vom Dialog Manager über die ganz normale Ereignisverarbeitungslogik abgearbeitet und führt zur Bearbeitung einer Regel im Schema "on <object> extevent <no.>".
77 DM-eventno pic 9(9) binary.
77 DM-objectID pic 9(9) binary.
call "DMcob_QueueExtEvent" using
DM-StdArgs
DM-objectID
DM-eventno
DM-ValueArray.
Parameter
-> DM-objectID
Identifikator des Objekts, an das dieses externe Ereignis geschickt werden soll.
-> DM-eventno
Nummer des externen Ereignisses, das ausgelöst werden soll.
<-> DM-ValueArray
Dieser Parameter ist ein Array von Werten, die als Parameter für den Regelaufruf genommen werden sollen. Die Länge dieses Vektors kann dabei maximal 16 sein. Abhängig vom jeweiligen Datentyp des Parameters muss dann das entsprechende Strukturelement gefüllt werden.
-> DM-count of DM-ValueArray
In diesem Parameter muss die aktuelle Anzahl gesetzter Werte in dem Array angegeben werden. Diese Anzahl muss dabei identisch mit der bei der Regeldeklaration angegebenen Parameter im Dialogskript sein. Ist dies nicht der Fall, wird die Regel vom Dialog Manager nicht aufgerufen.
<-> DM-va-datatype (index) of DM-ValueArray
In diesem Element wird der Datentyp des Parameters mit der Nummer "index" an den Dialog Manager übergeben. Abhängig von diesem Wert muss dann das entsprechende Strukturelement gesetzt sein.
-> DM-Options of DM-StdArgs
Unbenutzt, muss 0 sein.
COBOL-Schnittstelle für Micro Focus Visual COBOL
An Stelle von DM-va-value-string kann auch DM-va-value-string-u verwendet werden, wenn mit Unicode-Texten (UTF-16) gearbeitet wird.
DM-va-value-string-getlen und DM-va-value-string-putlen geben weiterhin die Anzahl der Zeichen und nicht der Bytes an.
Rückgabewert
DM-status of DM-StdArgs
|
DM-error |
Event konnte nicht vorgemerkt werden. |
|
DM-success |
Event konnte vorgemerkt werden. |
Beispiel
Um die Regel
on MyObj extevent 4711 (string Arg1 input output, integer Arg2 input)
{
print this;
print Arg1;
print Arg2;
Arg1 := "New valid string";
}
von COBOL aus auszulösen, muss das COBOL-Programm etwa wie folgt aussehen:
call "DMcob_PathToID" using DM-StdArgs DM-object
Null-Object,
By content "MyObj ".
move DT-string to DM-va-datatype(1).
move "only for testing " to DM-va-value-string(1).
move DT-integer to DM-va-datatype(2).
move 15 to DM-va-value-integer(2).
move 2 to DM-value-count.
move 0 to DM-Options.
move 4711 to DM-eventno.
call "DMcob_QueueExtEvent" using DM-StdArgs DM-Object
DM-eventno, DM-ValueArray.