CX_SINGLE_ALLOCATION::ResolveNew
Beschreibung:
Es wird ein neues Objekt vom Typ CX_ALLOCATION_TXN generiert und am übergebenen Zielobjekt eingefügt (siehe Modus). Weiterhin erledigt die Funktion folgende Aufgaben:
- Es wird eine Referenz auf das aufrufende CX_SINGLE_ALLOCATION Objekt gebildet ( Ist kein Objekt allokiert (CX_SINGLE_ALLOCATION::object == NULL), wird die Funktion beendet, d.h. diese CX_SINGLE_ALLOCATION wird überlesen)
- Die Mengen werden übernommen. Dabei gilt: a) Sind CX_SINGLE_ALLOCATION::baseAmount NULL und CX_SINGLE_ALLOCATION::amount NULL wird diese Position ebenfalls überlesen, außer wenn CX_SINGLE_ALLOCATION::singleAllocationEnum(6) gesetzt ist. b) Ist CX_SINGLE_ALLOCATION::amount NULL oder CX_SINGLE_ALLOCATION::TestZero() TRUE, dann wird diese Position überlesen, wenn CX_SINGLE_ALLOCATION::singleAllocationEnum(0) ("Überlesen Null-Stückmenge/Null-Stückzeit") gesetzt ist.
- Der Auflösungspfad wird gesetzt (CX_ALLOCATION_TXN::resolvePath)
- Falls angemeldet, werden Nachrichten zum Steuern des weiteren Prozesses gesendet (s. CX_ALLOCATION::SetPreMessage) und auf die entsprechende Antwort gewartet.
- Die Auflösung wird weiter verfolgt, außer wenn CX_SINGLE_ALLOCATION::singleAllocationEnum(2) ("Zyklische Allokation") gesetzt ist (oder extern die zurückgeschickte Nachricht (s.o.) mit FALSE beendet wurde).
Code-Beispiel:
siehe Code Beispiel bei CX_BILL_OF_MATERIAL::ResolveNew()
Stack | Position | Objekttyp | Kurzbeschreibung |
---|---|---|---|
Stack(In) | Top | CX_ALLOCATION | Aufzulösende Allokation |
Top-1 | INTEGER | Modus (siehe auch bei CX_SET_ALLOCATION) Bit 0 = 0: füge neue Allokation ans Ende der CX_ALLOCATION_TXN::subTransactions Tabelle dran Bit 0 = 1: Füge neue Allokation als erstes Element der CX_ALLOCATION_TXN::subTransactions Tabelle ein Bit 1 = 1: 'object' wird nach CX_ALLOCATION_TXN::object kopiert und die Rückreferenz wird gesetzt |
|
Top-2 | STRING | Auflösungspfad | |
Top-3 | CX_ALLOCATION_TXN | Ziel Transaktionsobjekt | |
Top-4 | CX_VALUE | Faktor |