Lade...
 

Plug-Space

Plug-Space

Der Plug-Space stellt einen Mechanismus dar, um Variablen z.B. für die Auswertung von Formeln zu übergeben. Dazu werden die Objekte, die die gesuchten Variablen enthalten könnten, in den Plug-Space gestellt. Dieses "Hineinstellen" geschieht mit Hilfe der InstantView®-Anweisung PlugSpace

Die Suche nach den Variablen geschieht über Slot-Namen oder Zugriffsausdrücke.

Um beispielsweise den Inhalt des Slots "comment" zu ermitteln, wird das erste Objekt im Plug-Space gesucht, das diesen Slot besitzt. Existiert solch ein Objekt, so kann eine Bindung stattfinden, d.h. ein Parameter erhält seinen Wert von dem Slot dieses Objektes. Im Fall von Zugriffsausdrücken und Funktionen wird äquivalent vorgegangen.

Mit der InstantView Anweisung Plug(Slotname) kann explizit auf bestimmte im PlugSpace vorhandene Datenfelder zugegriffen werden.

Objekte verhalten sich potentiell unterschiedlich im Plug-Space:

So pluggt zum Beispiel der Beleg CX_ALLOCATION_TXN

  1. sich selbst,
  2. seine Attribute (Datenfeld "attributeSet"),
  3. sein über das Datenfeld "object" referenziertes Objekt (Teil o.ä.),
  4. die über das Datenfeld "allocation" erreichte Stamm-Allokation (z.B. Stamm-Stücklistenposition) mit ihren Attributen und
  5. ebenfalls nach demselben Muster alle ihr übergeordneten weiteren CX_ALLOCATION_TXN, die über das Datenfeld "transaction" erreicht werden.

CX_TRANSACTION pluggt sich selbst, sowie den übergeordneten unter dem Slot "transaction" befindlichen Beleg. Bei diesem Beleg muss also ggf. manuell das Attributset aus dem Beleg geholt und mit in den Plug-Space gestellt werden.

Beispiele zum Pluggen finden Sie in der Beschreibung zum Kommando PlugSpace.

ACHTUNG: Attribute von (Stamm-)Teilen dürfen nie allein gepluggt werden! So ist folgendes Beispiel falsch:

item Get(attributeSet) PlugSpace

Wird dies so gemacht, so kann nicht mehr ausgewertet werden, ob ein Sachmerkmal vom Typ Sachmerkmal (ohne Wertvorgabe), oder mit einem festen Wert angegeben worden ist! Wenn das Teil also ein Sachmerkmal LAENGE ohne Wertvorgabe enthält und dieses Attribut gepluggt wird, erhält man bei Plug(LAENGE) den im Stamm-Attribut voreingestellten Wert von LAENGE, also meistens 0mm!

Richtig wäre also:

item PlugSpace.

Wenn nun über Plug(LAENGE) die Länge ermittelt wird, ist das Ergebnis INVALID, weil davon ausgegangen wird, dass die LAENGE irgendwo im Kontext (Auftragsposition, Stückliste....) auftragsspezifisch definiert werden muss.