Lade...
 

CX_SINGLE_ALLOCATION::ResolveNew

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
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
Funktionsaufruf: Call(ResolveNew)