Lade...
 

CX_TRANSACTION::ConnectStateMonitor

CX_TRANSACTION::ConnectStateMonitor

Beschreibung:

Diese Funktion erzeugt einen CX_OVERWRITING_REF-Wrapper für übergebenen Status-Monitor mit der uniqueID (String- Parameter). Die uniqueID wird in den uniqueID-Slot des Wrappers gesetzt, um den Workflow in anderen StateMonitor-Methoden über diese Id zu referenzieren. 

Der übergebene Status-Monitor wird beim Wrapper auch im Slot startState gesetzt, der von TriggeredStateMonitor verwendet wird, um die Transaktion immer vom Startzustand des Petri-Netzes aus durchzuschalten. Beim Durchschalten der Transaktion wird das Zielobjekt des Wrappers immer auf den aktuellen Zustandsmonitor umgesetzt.

Der erzeugte Wrapper wird die Collection monitors eingetragen und auf Seiten des Zustandsmonitors wird die Transaktion (nicht der Wrapper!) in transactions eingetragen. Anschließend wird mit dieser Transaktion auf dem Stack STATE_IN an den Status-Monitor gesendet, falls dieser darauf reagiert (siehe: ObjectCode).

Visuelle Darstellung des Ergebnisses:

ConnectStateMonitor

 

Code-Beispiel:
Define(CreateObject) CreatePersObject(CX_CREDIT_NOTE) -> invoice IncrCounter(CX_CREDIT_NOTE) FString("000000", "000000") invoice Put(uniqueID) // Link start state "SALES_CREDIT_NOTE" "uniqueID = %s" FindFirst(CX_WORK_FLOW) Dup if { "SALES_CREDIT_NOTE_CREATED" Swap "uniqueID = %s" Swap FindFirst(CX_STATE_MONITOR, monitors) Dup if { "BOOKING" invoice Call(ConnectStateMonitor) } else Drop } else Drop ;
Stack
Stack Position Objekttyp Kurzbeschreibung
Stack(In) Top CX_TRANSACTION Eine Transaktion
  Top-1 STRING uniqueID des Wrappers/Workflows
  Top-2 CX_STATE_MONITOR Status-Monitor
Stack(Out) Top - -
Funktionsaufruf: Call(ConnectStateMonitor)