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 | Position | Objekttyp | Kurzbeschreibung |
---|---|---|---|
Stack(IN) | Top | CX_FORMULA | die Formel |
Top-1 | CX_CONTAINER oder NULL | Container | |
Stack(OUT) | Top | VECTOR<STRING> | Variablenliste |