CX_TRANSACTION::FirstSuccessorByCondition
Beschreibung:
Diese Funktion untersucht die Nachfolger- Kette (Collection predecessors) rekursiv, wann die Bedingung erfüllt (=TRUE) ist; liefert den ersten passenden Vorgänger zurück. Beim Modus-Parameter gleich 1 werden auch Sub-Transaktionen in den Suchvorgang involviert.
Erfüllt bereits das aufrufende Transaktionsobjekt die Bedingung, wird dieses zurückgegeben, sofern nicht das Bit 3 des Modus Parameters gesetzt wurde. Der Modus Parameter steuert die - erweiterte - Durchsuchung der Transaktionsobjekte der spezialisierten Typen CX_COMPOUND_TXN und CX_ALLOCATION_TXN.
Hinweis: Um nachzuvollziehen, welche Objekte wie durchsucht werden, kann der Logger cx.model.txn in den Modus TRACE geschaltet werden. Die einzelnen Schritte werden dann in der Log-Datei angegeben.
Code-Beispiel:
Define(PaymentSuccessor)
-> transaction
transaction Cardinality(successors) ifnot { NULL return }
transaction Get(FirstSuccessorByCondition("type(TopTransaction())=CX_FINANCIAL_BOOKING&TopTransaction().financialBookingEnum=3"))
Dup ifnot { Drop NULL return }
Dup transaction @ if { Drop NULL return }
;
Stack | Position | Objekttyp | Kurzbeschreibung |
---|---|---|---|
Stack(In) | Top | CX_TRANSACTION | Eine Transaktion |
Top-1 | INTEGER | Modus (Bitmuster) 0 (Integer 1) = bei Belegen des Typs CX_COMPOUND_TXN werden zusätzlich auch die Belege in der subTransactions collection durchsucht 1 (Integer 2) = bei Belegen des Typs CX_ALLOCATION_TXN wird zusätzlich auch der TopTransaction() Beleg durchsucht 2 (Integer 4) = nur die eigene successors-Collection durchsuchen, nicht die der Nachfolgebelege (kein rekursiver Aufruf!) 3 (Integer 8) = das aufrufende Transaktionsobjekt wird ignoriert, auch wenn es die Bedingung erfüllen sollte |
|
Top-2 | STRING | Bedingung | |
Stack(Out) | Top | CX_TRANSACTION oder NULL | Nachfolger |