CX_TRANSACTION::SuccessorsByCondition
Beschreibung:
Diese Funktion untersucht rekursiv die Nachfolger- Kette (Collection predecessors), wann die Bedingung (STRING) erfüllt (=TRUE) ist; gibt alle passenden Nachfolger. Bei INTEGER = 1 werden auch Sub-Transaktionen in den Suchvorgang involviert.
Erfüllt bereits das aufrufende Transaktionsobjekt die Bedingung, ist diese in der Collection enthalten, sofern nicht das Bit 3 des Modus Parameters gesetzt wurde. Der Modus Parameter steuert auch 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:
Item(T("Preisvergleich", "Compare prices")) [ SELECT: GetObject(, ListBox) Dup if { Get(SuccessorsByCondition("type(TopTransaction())=CX_PURCHASE_INQUIRY")) Dup if SendMsg(LIST_PURCHASE_INQUIRY_ITEM) else Drop } else Drop ]
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 | Formel | |
Stack(Out) | Top | COLLECTION | Nachfolger |