Lade...
 

CX_EXPANDABLE::ConditionedFilter

CX_EXPANDABLE::ConditionedFilter

Beschreibung:

Wird eine Formel ausgeführt, so werden alle Objekte sequentiell im Plugspace nach dem gesuchten Datenfeld durchsucht. Sind im Plugspace nun aber nicht nur Belege, die zum Beispiel ein Datenmember "transaction" haben, sondern auch einfache Werte als Objekte, dann würde die Auswertung der Formel einen Fehler bringen, weil auch vom einfachen Wert versucht wird, das Datenfeld "transaction" auszulesen, was es aber nicht hat. Hier ist die Lösung, vor das gewünschte Datenfeld den ConditionedFilter zu setzen:
 

Code-Beispiel (wird gern in Übergangsbeschreibungen von Geschäftsprozessen oder Bedingungen in Transaktionsbeschreibungen benutzt):
// 1. Beispiel
ConditionedFilter("inherited(this, CX_LINK_TXN)").FirstSuccessorByCondition("type(TopTransaction())=CX_ITEM_DEMAND")

// 2. Beispiel
"type(this)=CX_OFFER | type(this)=CX_STOCK_ORDER | type(this)=CX_BUDGET_OFFER" object Call(ConditionedFilter)
Stack
Stack Position Objekttyp Kurzbeschreibung
Stack(In) Top CX_CLASS Ein beliebiges Objekt oder der Plugspace
  Top-1 STRING Bedingung
Stack(Out) Top CX_CLASS oder INVALID Wenn die Bedingung zutrifft, wird das selbe Objekt zurückgegeben, welches beim Funktionsaufruf auf dem Stack lag.
Funktionsaufruf: Call(ConditionedFilter)