:RESOLVE

Verwenden Sie die Script-Anweisung :RESOLVE, um die in einem String enthaltenen Variablen aufzulösen. Diese Script-Anweisung funktioniert wie eine Kombination aus einer :SET-Anweisung und der Funktion RESOLVE_VAR. Das System versucht, jeden Typ von Variablen aufzulösen:

Syntax

:RESOLVEScript-Variable = String


Hinweis: Wenn das System eine Variable nicht auflösen kann, bleibt die Variable unverändert. Der resultierende Wert wird der Variablen zugewiesen.

Funktionsweise der Variablenauflösung

:RESOLVE kann mehrere Runden mit variabler Auflösung ausführen:

  1. Ersetzen von als Escape-String dargestellten Und-Zeichen (&&) durch ein einzelnes Und-Zeichen

  2. Auflösen von Variablen in einem beliebigen String mit einem kaufmännischen Und-Zeichen, gefolgt von:

    • Mindestens einem Zeichen, das Teil eines Variablennamens sein kann
    • Mindestens einen Zeichen, das nicht Teil eines Variablennamens sein darf

Diese Schritte werden wiederholt, bis keine als Escape-Strings dargestellten Und-Zeichen und keine ungelösten Variablen mehr übrig sind.

Nicht definierte Variablen führen zu einem Laufzeitfehler. Variablen ohne Wert werden in ein einzelnes Leerzeichen aufgelöst (' ').

Auflösungstiefe

:RESOLVE kann bis zu zwei Schachtelungsebenen auflösen. Um weitere Ebenen verschachtelter Variablen zu lösen, fügen Sie zusätzliche :RESOLVE-Befehle zum Auflösen der Inhalte der Variablen hinzu. Zum Beispiel:

:SET&Env# = "EXP"

:SET&SysName_EXP# = "AE_EXP"

:SET&CompanyName_AE_EXP# = "MyCompany_AE_EXP"

:RESOLVE&System# = "&&&&CompanyName_&&SysName_&Env###"

:RESOLVE&System# = "&System#"

:PRINT "System: &System#"

Der erste :RESOLVE-Befehl löst die inneren zwei Variablen auf, &ENV# und dann &SysName_EXP#. Der zweite :RESOLVE-Befehl löst dann die äußerste Variable &CompanyName_AE_EXP# auf. Das Ergebnis sieht wie folgt aus:

U00020408 System: MyCompany_AE_EXP

Beispiele

Angenommen, ein SQLI VARA-Objekt (VARA.SQLI_TEST) enthält SQL, das Versions- und Build-Nummern zurückgibt. Das folgende Script löst das SQLI VARA-Objekt in einen String auf. Das Script weist den resultierenden Text als Wert einer Script-Variablen namens &ret# zu.

:RESOLVE &ret# = "Dies ist Version {VARA.SQLI_TEST}"

:PRINT &ret#

Die zweite Script-Zeile druckt den Wert der Script-Variablen im Aktivierungsreport aus:

2014-11-18 11:50:22 - U00020408 Dies ist Version 11.0.0+build.2751

Das folgende Beispiel löst ein statisches VARA-Objekt namens VARA_RESOLVE auf und gibt den Wert im Aktivierungsreport aus. Die Parameter in der :RESOLVE-Anweisung geben den Schlüssel und den Wert im VARA-Objekt an. Der in im VARA-Objekt gespeicherte Wert ist eine Phrase (dies ist der Hauptschlüssel).

:RESOLVE &var# = "{VARA_RESOLVE,key1,1}"

:PRINT &var#

Das Script gibt folgende Zeilen im Aktivierungsreport aus:

2014-11-18 17:50:32 - U00020408 {VARA_RESOLVE,key1,1}

2014-11-18 17:50:32 - U00020408 Dies ist der Hauptschlüssel

Siehe auch: