CX_TRANSACTION::PredecessorsOfTopType
Beschreibung:
Dieser Funktion gibt alle Vorgänger zurück, deren TopTransaction zu einer bestimmten Klasse gehört. Diese Klasse kann über den ersten STRING-Parameter angegeben werden. Der erste INTEGER-Parameter steuert ob auch Vorgänger berücksichtigt werden sollen, deren TopTransaction von einer Klasse sind, die von der angegebenen Klasse abgeleitet sind. Der zweite INTEGER-Parameter steuert, wie weit die Vorgängerkette maximal verfolgt wird.
Die folgenden zwei Aufrufe entsprechen sich im Wesentlichen in ihrer Semantik:
Get(PredecessorsOfTopType("CX_SALES_ORDER", FALSE, 0xFFFFFFFF))
Get(PredecessorsByCondition("type(TopTransaction())=CX_SALES_ORDER", 1))
PredecessorsOfTopType durchsucht also auch die subTransactions (siehe Modus 0 für PredecessorsByCondition), fügt aber keine TopTransactions selbst hinzu.
Siehe auch: SuccessorsOfTopType
Code-Beispiel:
Define(AdjustPredecessorsTop)
CreateTransCollection -> tmp
// Save unique tops of predecessors
iterate
{
// 0xFFFFFFFF soll ein möglichst großer Wert sein
Get(PredecessorsOfTopType("CX_COMPOUND_TXN", TRUE, 0xFFFFFFFF)) Dup if iterate
{
Get(TopTransaction()) Dup Type case
CX_SALES_ORDER: tmp Insert
default: Drop
endCase
}
else Drop
}
0 0 FALSE TRUE tmp SendMsg(CALCULATE_ORDER)
;
Stack | Position | Objekttyp | Kurzbeschreibung |
---|---|---|---|
Stack(In) | Top | CX_TRANSACTION | Eine Transaktion |
Top-1 | INTEGER | Bis zu welcher Tiefe die Objekte aufgesammelt werden | |
Top-2 | INTEGER | TRUE oder FALSE, ob auch Objekte von abgeleitetem Typ aufgesammelt werden | |
Top-3 | STRING | Klassenname der aufzusammelnden Objekte | |
Stack(Out) | Top | COLLECTION | Vorgänger |