Lade...
 

CX_TRANSACTION::FirstPredecessorByCondition

CX_TRANSACTION::FirstPredecessorByCondition

Beschreibung:

Diese Funktion wird solange rekursiv für alle Objekte der "predecessors" Liste (predecessors ist ein Slot vom Typ collection) aufgerufen, bis ein Vorgängerobjekt gefunden wurde, für das die als Parameter übergebene Bedingung erfüllt (=TRUE) ist. Wird kein entsprechender Vorgängerbeleg gefunden, liefert die Funktion INVALID zurück.

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-Beispiele:
  // Hole den ersten Vorgängerbeleg, der zu einem Kundenauftrag gehört
  txnObject Get(FirstPredecessorByCondition("type(TopTransaction())=CX_SALES_ORDER").TopTransaction())

  // Hole den ersten Vorgängerbeleg, der zu einem Lieferschein gehört, durchsuche dabei auch die subTransactions collections
  compoundTxnObject Get(FirstPredecessorByCondition("type(TopTransaction())=CX_DELIVERY_NOTE",1).TopTransaction())
Stack
Stack Position Objekttyp Kurzbeschreibung
Stack(In) Top CX_TRANSACTION Das aufrufende Transaktionsobjekt
  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 predecessors-Collection durchsuchen, nicht die der Vorgängerbelege (kein rekursiver Aufruf!)
3 (Integer 8) = das aufrufende Transaktionsobjekt wird ignoriert, auch wenn es die Bedingung erfüllen sollte
  Top-2 STRING Bedingung in Form eines booleschen Ausdrucks
Stack(Out) Top CX_TRANSACTION oder NULL Vorgängerbeleg-Objekt, für das die Bedingung erfüllt ist
Funktionsaufruf: Call(FirstPredecessorByCondition)
Qualitätssicherung: Bedingte Vorgänger-, Nachfolgebelege