Lade...
 

CX_ITEM::ProductAllocation

CX_ITEM::ProductAllocation

Beschreibung:

Diese Klassenfunktion liefert die Allokation des gewünschten Typs. Dazu wird zunächst das Produkt gesucht (d.h. ein Abrechnungsobjekt vom Typ CX_PRODUCT), das dieser Sache zugeordnet ist (1). Wird keins gefunden, bricht diese Funktion ab und liefert NULL zurück.

Anschließend wird im Produkt nach der gewünschten Allokation gesucht (und nur dort, nicht in weiteren Objekten, wie in der Allocation-Funktion beschrieben!) (2). Die Allokation muss dem Typ, der als Parameter übergeben wird, entweder genau entsprechen (zweiter Parameter ist FALSE) oder davon abgeleitet sein (zweiter Parameter ist TRUE). Wird eine passende Allokation gefunden, liefert die Funktion die Allokation zurück. Die Suche war erfolgreich.

Wird beim Produkt keine Allokation gefunden, geht die Suche bei dem Produkt weiter, das dem Muster zugeordnet ist. Dazu wird zunächst die Sache gesucht, die dem Produkt zugeordnet ist (3). (Falls keine Sache vorhanden ist, wird ein Fehler gemeldet.) Anschließend wird für das Muster wieder die Funktion ProductAllocation aufgerufen (4, 5). (Wenn kein Muster vorhanden ist, bricht die Funktion ab und liefert NULL zurück.) Auf diese Weise hangelt sich die Funktion von Muster zu Muster immer weiter "nach oben" und betrachtet nur die Allokationen des zugeordneten Produktes.

Das folgende Bild veranschaulicht die beschriebenen Schritte nochmals:

Code-Beispiel:
...

Stack
Stack Position Objekttyp Kurzbeschreibung
Stack(In) Top CX_ITEM Eine Sache
  Top-1 INTEGER FALSE: Typen direkt miteinander vergleichen, TRUE: Vererbungshierarchie berücksichtigen
  Top-2 STRING Typ, auf den geprüft werden soll, z.B. "CX_PHONE"
Stack(Out) Top CX_ALLOCATION Allokation oder NULL

Funktionsaufruf: Call(ProductAllocation)