Lade...
 

CX_FORMULA::GetInputVarNames

CX_FORMULA::GetInputVarNames

Beschreibung:

Diese Funktion ermittelt die Namen aller für die Berechnung der Formel benötigten Slot-Variablen. Wird ein Container-Objekt angegeben, dann werden in diesem die entsprechenden dynamischen Datenfelder erzeugt.

Die Ermittlung der Variablen bezieht den Plug-Space mit ein und versucht alle Variablen und Ausdrücke im PlugSpace zu binden. Wird die Variable/der Ausdruck im Plug-Space an ein Objekt vom Typ CX_FORMULA oder CX_CONDITIONED_BAG gebunden, dann wird GetInputVarNames auf diesem Objekt rekursiv aufgerufen. Falls kein Plug-Space gesetzt ist, dann wird das übergebene Container-Objekt (für die Dauer des Aufrufs) in den Plug-Space gestellt (falls nicht NULL).

 

Input-Variablen einer Formel sind Slots oder Slots mit Specifiern.
Folgendes wird nicht als Input-Variable betrachtet:

  • Zugriffspfade (Bsp.: masterObject.numeric) - siehe: GetInputAccessPaths
  • Variablenreferenzen (Bsp.: var(x))
  • Lokale Formelvariablen (Bsp.: local x; x + 3)
  • Mehrdeutige Slots - also Slots, die auch Datenfelder von Klassen sein könnten (Bsp.: date - siehe: CX_DATETIME) - siehe: GetInputAccessPaths

Code-Beispiel:

Var(formula, container, variables )  CreateTransObject(CX_FORMULA) -> formula CreateTransObject(CX_CONTAINER) -> container Var(x) 123.4 -> x "numeric * 100 + var(x) / 100 - credit + masterObject.numeric" formula Put    // Formel erzeugen container formula Call(GetInputVarNames) // in Container werden Variablen, die Slots sind, aufgelistet // -> ["numeric" "credit"]

 

Stack
Stack Position Objekttyp Kurzbeschreibung
Stack(IN) Top CX_FORMULA die Formel
  Top-1  CX_CONTAINER oder NULL Container
Stack(OUT) Top  VECTOR<STRING> Variablenliste
Funktionsaufruf: Call(GetInputVarNames)