Lade...
 

CX_TRANSACTION::FirstSuccessorByCondition

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
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
Funktionsaufruf: Call(FirstSuccessorByCondition)
Qualitätssicherung: Bedingte Vorgänger-, Nachfolgebelege