Mit Variablen in ACLScript arbeiten

Wenn Sie ein Skript in Analytics schreiben, müssen Sie oft Werte vorsehen, die sich ändern oder schwanken können. Beispiel:

  • Skriptkonfiguration Sie möchten Werte innerhalb der Skriptlogik einfach anpassen, zum Beispiel Tabellen- oder Feldnamen, ohne das Vorkommen jedes Werts aktualisieren zu müssen.

  • Benutzereingabe Wenn Benutzer ein Skript ausführen, möchten sie Eingabewerte anpassen, zum Beispiel Datumsbereiche oder Grenzbeträge.

  • Temporäre Speicherung Die Skriptlogik muss einen Wert, der im Skriptverlauf kontinuierlich aktualisiert wird, vorübergehend speichern, also zum Beispiel einen Zähler oder eine laufende Summe.

Für diese und andere Zwecke verwenden Sie Variablen.

Was ist eine Variable?

Sie können sich eine Variable als einen Container mit einem Namen vorstellen. Dieser Container bewahrt einen Wert auf, der sich ändern kann. Der Wert kann sich also ändern, der Name der Variablen aber nicht. Als Skriptautor verwenden Sie den festen Variablennamen in der gesamten Skriptlogik. Wenn das Skript läuft, verarbeitet es nicht den Variablennamen. Es greift vielmehr auf den Wert zu, der im Moment in der Variable aufbewahrt wird, und verarbeitet diesen Wert.

Im unten stehenden Beispiel sind v_Startdatum und v_Enddatum Variablennamen. Dabei sind die Datumsangaben die in den Variablen enthaltenen Werte.

Die Vorteile von Variablen

In einem Skript können Sie statt Literalwerten Variablen verwenden. Indem Sie tatsächliche Tabellennamen, Feldnamen, Textwerte, Zahlen und Datumswerte durch Variablen ersetzen, die auf diese Elemente verweisen, steigern Sie die Flexibilität Ihrer Skripts beträchtlich. Statt ein Skript zu schreiben, das nur in einer sehr spezifischen Situation funktioniert, schreiben Sie ein Skript, das in unbegrenzten Situationen verwendet werden kann.

Wie und wo können Variablen verwendet werden?

Wie die literalen Elemente, auf die sie verweisen, können Variablen erstellt, umbenannt, aktualisiert, gelöscht, in Berechnungen sowie einer Vielzahl von Ausdrücken verwendet, exportiert und extrahiert werden. Anders ausgedrückt können sie an jedem Ort verwendet werden, an dem das literale Element gültig wäre.

Wie erstelle ich eine Variable?

Sie erstellen eine Variable mit einem Analytics-Befehl – dem ASSIGN-Befehl oder einem mehrerer anderer Befehle. Normalerweise geben Sie den Befehl in ein Skript ein. Sie können eine Variable aber auch manuell erstellen, indem Sie den ASSIGN-Befehl in der Analytics-Befehlszeile eingeben.

Beispiel

Sie möchten, dass Ihr Skript einen anpassbaren Datumsbereich hat. Daher erstellen Sie Variablen für das Start- und Enddatum.

Im folgenden Beispiel enthält eine Variable mit dem Namen v_Startdatum im Moment das Datum `20210101` und eine Variable namens v_Enddatum das Datum `20210331`.

Sie können diese beiden Variablen verwenden, um das von einem Benutzer angegebene Start- und Enddatum zu speichern. In der Skriptlogik geben Sie v_Startdatum und v_Enddatum überall dort an, wo die Datumswerte benötigt werden. Bei der Ausführung des Skripts werden aber die tatsächlichen, durch den Benutzer angegebenen Datumswerte verwendet.

ASSIGN v_Startdatum = `20210101`
ASSIGN v_Enddatum = `20210331`

Tipp

Sie können eine dieser Variablen erstellen, indem Sie den ASSIGN-Befehl und seine Parameter in die Analytics-Befehlszeile kopieren und die Eingabetaste drücken. Öffnen Sie im Navigator die Registerkarte Variablen, um das Ergebnis zu sehen.

Wenn das Textfeld Befehlszeile nicht sichtbar ist, wählen Sie Fenster > Befehlszeile.

Variablen in Analytics-Projekten anzeigen

Wenn Sie mit Variablen arbeiten, ist es äußerst hilfreich, die Variablen eines Analytics-Projekts und ihre Werte sehen zu können. Mit zwei Methoden können Sie Variablen und ihre Werte anzeigen:

  • Registerkarte Variablen

  • Befehl DISPLAY VARIABLES

Registerkarte „Variablen“

Mit der Registerkarte Variablen des Navigators können Sie die Erstellung von Variablen sowie die Zuweisung von Werten an Variablen in Echtzeit überwachen. Die Registerkarte zeigt die Namen, Datentypen und aktuellen Werte aller Variablen in einem Analytics-Projekt an. Diese Daten lassen sich an dieser Stelle nicht ändern. Die Namen sind alphabetisch aufgelistet.

Wenn Sie ein Skript Zeile für Zeile durchlaufen, erscheinen alle im Skript definierten Variablen und alle durch das System erstellten Variablen in der Registerkarte Variablen, sobald sie erstellt werden. Falls die Variable bereits existiert, wird ihr Wert in Abhängigkeit von der Skriptlogik dynamisch aktualisiert. Verwenden Sie die Option Schritt  im Skript-Editor, um ein Skript schrittweise auszuführen.

Die genaue Beobachtung von Änderungen der Skriptvariablen in Echtzeit ist zur Diagnose sehr hilfreich. Sie ermöglicht Ihnen, Skriptfehler zu finden, die durch eine reine Untersuchung der Skriptsyntax nur schwer zu erkennen wären.

Wenn Sie ein Skript ausführen, werden alle mit Variablen zusammenhängenden Veränderungen in der Registerkarte Variablen angezeigt, sobald ein Haltepunkt erreicht wird oder sobald das Skript beendet ist.

Befehl DISPLAY VARIABLES

Der Befehl DISPLAY VARIABLES zeigt die Namen, Datentypen und aktuellen Werte aller Variablen in einem Analytics-Projekt an. Namen werden in umgekehrter chronologischer Reihenfolge nach ihrer Erstellung oder der letzten Aktualisierung angezeigt.

DISPLAY Variablenname Gibt die Informationen einer einzelnen Variable zurück.

Sie können den Befehl DISPLAY VARIABLES auf zwei unterschiedliche Möglichkeiten verwenden:

  • Aktueller Zustand der Projektvariablen Geben Sie in die Befehlszeile DISPLAY VARIABLES ein, und drücken Sie die Eingabetaste.

    Auf dem Bildschirm werden sämtliche Variablen des Projekts mit aktuellen Werten in umgekehrter chronologischer Reihenfolge angezeigt.

  • Zustand der Projektvariablen an unterschiedlichen Punkten des Skripts Fügen Sie DISPLAY VARIABLES einem Skript an den Punkten des Skripts hinzu, an denen Sie den Zustand der Projektvariablen erfassen möchten. Sie können dafür auch einen Haltepunkt verwenden, mit dem Unterschied, dass ein Haltepunkt die Skriptausführung anhält. Beim Befehl DISPLAY VARIABLES ist das nicht der Fall.

    Doppelklicken Sie auf den entsprechenden DISPLAY-VARIABLES-Eintrag des Befehlsprotokolls nach der Ausführung des Skripts. Der Zustand von Projektvariablen an der angegebenen Stelle des Skripts wird in umgekehrter chronologischer Reihenfolge am Bildschirm angezeigt.

Hinweis

Der Befehl DISPLAY VARIABLES darf nicht innerhalb eines GROUP-Befehls verwendet werden.

Acht Dinge, die Sie über ACLScript-Variablen wissen sollten

Wenn Sie andere Programmier- oder Skriptsprachen kennen, sind Sie mit Variablen und ihren vielen Verwendungszwecken wahrscheinlich schon vertraut. Die Haupteigenschaften von ACLScript-Variablen werden im Folgenden beschrieben.

Wenn Sie sich mit Skripting und Variablen noch nicht auskennen, werden die folgenden Informationen verständlicher sein, sobald Sie mit Variablen zu arbeiten beginnen.

1. Eine Variable wird automatisch erstellt, wenn Sie ihr einen Wert zuweisen.

2. Zur Erstellung einer Variable gibt es mehrere Möglichkeiten.

3. Der Datentyp einer Variable wird automatisch festgelegt.

4. Variablennamen sind flexibel, haben aber einige Einschränkungen.

5. Eine Variable ist global gültig.

6. Eine Variable besteht fort, nachdem das Analytics-Projekt geschlossen wurde.

7. Eine Variable kann explizit gelöscht werden.

8. Systemvariablen werden automatisch durch einige Analytics-Befehle erzeugt.

1. Eine Variable wird automatisch erstellt, wenn Sie ihr einen Wert zuweisen.

Eine Variable wird automatisch erstellt (deklariert), wenn Sie der benannten Variable einen Wert zuweisen. Einer Variable einen Anfangswert zuzuweisen, wird als Initialisierung bezeichnet.

Im folgenden Beispiel wird die Variable v_Eingabetabelle automatisch erstellt, sobald Sie den ASSIGN-Befehl verwenden, um der Variablen den Wert "VLL_Trans" zuzuweisen. Anders ausgedrückt ist es ein einzelner Schritt, die Variable zu erstellen und ihr einen Wert zuzuweisen (Deklaration und Initialisierung).

ASSIGN v_Eingabetabelle = "VLL_Trans"

Wann und wo sollten Sie eine Variable erstellen?

Sie können an jeder Stelle eines Skripts eine Variable erstellen, solange die Variable vor ihrer ersten Verwendung erstellt wird.

Es empfiehlt sich aber, alle Variablen für Benutzereingaben und die Skriptkonfiguration zu Beginn des Skripts zu erstellen. Wenn Sie diesem Ansatz folgen, kann ein Benutzer alle erforderlichen Eingabewerte am Beginn eines Skripts eingeben und dann das Skript ausführen. Sie können dann auch davon ausgehen, dass alle zur Skriptkonfiguration benötigten Variablen an einer einzigen Stelle zu Beginn des Skripts zu finden sind.

Variablen, die keine Benutzereingabe benötigen oder einer erweiterten Konfiguration dienen, können an der Stelle innerhalb des Skripts erstellt werden, wo sie gebraucht werden.

Wenn erforderlich, können Sie einer Zeichen- oder Datumzeit-Variable einen leeren Wert zuweisen. Dann existiert die Variable, ist anfangs jedoch leer.

ASSIGN v_Eingabetabelle = ""
ASSIGN v_Liste_aller_Felder = BLANKS(20000)
ASSIGN v_Startdatum = `19000101`

2. Zur Erstellung einer Variable gibt es mehrere Möglichkeiten.

Wie Sie eine Variable erstellen, hängt davon ab, wie Sie sie verwenden möchten.

Verwendung Erstellungsmethode

Skriptkonfiguration

Temporäre Speicherung

Andere Verwendung im Skriptablauf

 

ASSIGN-Befehl

Verwenden Sie ASSIGN-Befehl in einer separaten Zeile eines Skripts, um eine Variable zu deklarieren und zu initialisieren. Der Datentyp des zugewiesenen Werts schreibt den Datentyp der Variable vor.

Hinweis

Eine explizite Angabe des ASSIGN-Schlüsselworts wird empfohlen, weil Skripts dadurch einfacher zu lesen und zu verstehen sind. Sie können aber auch auf das ASSIGN-Schlüsselwort verzichten und einfach die folgende Syntax verwenden:

Variablenname = Variablenwert

Benutzereingabe

ACCEPT-Befehl

Verwenden Sie ACCEPT-Befehl, um ein einfaches Dialogfeld zu erstellen, das Benutzer interaktiv zur Eingabe von einer oder mehreren Skripteingaben auffordert. Jeder Eingabewert wird in einer benannten Zeichenvariable gespeichert. Es spielt dabei keine Rolle, was er letztendlich repräsentiert.

Hierzu siehe auch Erstellen interaktiver Skripts.

DIALOG-Befehl

Verwenden Sie DIALOG-Befehl und den zugehörigen Dialog-Generator, um ein erweitertes Dialogfeld zu erstellen, das Benutzer interaktiv zur Eingabe von einer oder mehreren Skripteingaben auffordert. Jeder Eingabewert wird in einer benannten Variable gespeichert. Die meisten Eingabeoptionen verwenden eine Zeichenvariable.

Über die Optionen des Befehls ACCEPT hinaus erhalten Sie durch den Befehl DIALOG zusätzliche Optionen wie Kontrollkästchen, Optionsfelder und Dropdown-Listen.

Hierzu siehe auch Erstellen interaktiver Skripts.

PARAM-Tag, TABLE-Tag, FIELD-Tag

Für Benutzereingabe in Skripts, die in Robots ausgeführt werden, erstellen Sie einen Analysekopf und verwenden Sie PARAM-Tag, TABLE-Tag oder FIELD-Tag.Robots

Der PARAM-Tag ist die einzige Methode der Variablenerstellung, bei der Sie explizit einen Datentyp der zugehörigen Variable festlegen müssen.

Die TABLE- und FIELD-Tags speichern Eingabewerte in einer Zeichenvariable.

Eingabe von Anmeldeinformationen

PASSWORD-Befehl

Verwenden Sie PASSWORD-Befehl, um ein Dialogfeld zu erstellen, das Benutzer interaktiv zur Eingabe eines Kennworts, eines Tokens oder anderer sensibler Informationen auffordert. Der PASSWORD-Befehl bietet eine sichere Dateneingabe und eine verschlüsselte Speicherung der Anmeldeinformation an einem geschützten Speicherort.

Im Rahmen der sicheren Behandlung von Anmeldeinformationen wird die Variable mit den sensiblen Informationen nicht angezeigt und kann nicht direkt verwaltet werden.

Hierzu siehe auch Erstellen interaktiver Skripts.

Sie können auch den Befehl SET PASSWORD verwenden, um ein Kennwort ohne eine Benutzereingabe direkt anzugeben. Dieses Kennwort erscheint dann aber als unformatierter Text innerhalb des Skripts.

PASSWORD-Tag

Zur Eingabe von Anmeldeinformationen in Skripts, die in Robots ausgeführt werden, erstellen Sie einen Analysekopf und verwenden Sie PASSWORD-Tag.Robots

3. Der Datentyp einer Variable wird automatisch festgelegt.

Wenn Sie den ASSIGN-Befehl verwenden, schreibt der Datentyp des zugewiesenen Werts den Datentyp der Variable vor. Dieser Prozess wird als implizite Typfestlegung bezeichnet. In den meisten Fällen legen Sie den Datentyp von Variablen in Analytics nicht explizit fest.

Tipp

Achten Sie genau auf die Datentypen von Variablen in Ihren Skripts. Skriptfehler entstehen oft durch eine fehlende Übereinstimmung des Datentyps einer Variable und ihrer Verwendung. Weitere Informationen finden Sie unter Die Bedeutung des Datentyps einer Variable.

Arten von Werten, die Sie einer Variable zuweisen können

Sie können einer Variablen einen Literalwert zuweisen oder ein Feld. Im zweiten Fall wird die Variable mit dem Wert des Felds im aktuell ausgewählten Datensatz initialisiert. Es ist auch möglich, dass Sie einer Variablen den aktuellen Wert einer anderen Variablen zuweisen.

Datentypen von Werten

In Analytics hat jeder Datenwert einen der folgenden Datentypen (oder Kategorien):

  • Zeichen

  • Numerisch

  • Datumzeit

  • Logisch

Der Datentyp eines Werts ergibt sich auf eine der folgenden Arten:

  • Literalwert Der Datentyp eines Literalwerts ergibt sich aus dem Vorhandensein oder dem Fehlen von Kennzeichnern, die den Wert umschließen, und durch seine alphanumerischen Zeichen.

  • Feld Der Datentyp der Werte in einem Feld ergibt sich durch den Datentyp des Felds.

  • Variable Der Datentyp der „from“-Variable und ihres Werts ist bereits festgelegt und wird auch zum Datentyp der „to“-Variable. In der Regel ändern Sie die Datentypen von Variablen nicht mehr, sobald Sie die Variablen erstellt haben. Sie werden jedoch nicht daran gehindert.

Beispiele der Verwendung des ASSIGN-Befehls zur Erstellung von Variablen mit unterschiedlichen Datentypen.

Hinweis

Wenn Sie den ACCEPT-Befehl zur Erstellung einer Variable oder die meisten Optionen des DIALOG-Befehls verwenden, hat die Variable einen Zeichendatentyp. Dabei spielt es keine Rolle, welchen Typ ihr Wert hat.

Datentyp der Variable und des Werts Beispiel

Zeichen

Ein Zeichenwert kann alphanumerische Zeichen und Sonderzeichen enthalten.

Ein literaler Zeichenwert muss in einzelne oder doppelte Anführungszeichen gesetzt werden.

Wenn ein Zeichenwert Anführungszeichen enthält, verwenden Sie diesen Ansatz:

  • Falls er doppelte Anführungszeichen enthält, umschließen Sie den gesamten Wert mit einfachen Anführungszeichen.
  • Falls er einfache Anführungszeichen enthält, umschließen Sie den gesamten Wert mit doppelten Anführungszeichen.

Zeichenbeispiel

Weist den Zeichenwert "Lieferantennummer" der Variable v_Eingabetabelle zu.

ASSIGN v_Eingabetabelle = "Lieferantennummer"

Weist den Wert des Zeichenfelds Lieferantennummer im aktuell ausgewählten Datensatz der Variablen v_Bezeichner zu.

ASSIGN v_Bezeichner = Lieferantennummer

Hinweis

Es ist wichtig, den Unterschied zwischen der Zuweisung eines qualifizierten und eines unqualifizierten Feldnamens an eine Variable zu verstehen.

Das Zuweisen von "Lieferantennummer" weist die tatsächliche Zeichenfolge des Feldnamens zu.

Das Zuweisen von Lieferantennummer weist einen der Werte im Feld Lieferantennummer zu.

Numerisch

Ein numerischer Wert kann die Ziffern 0 bis 9, ein Dezimaltrennzeichen und ein negatives Vorzeichen enthalten.

Ein literaler numerischer Wert darf nicht mit Kennzeichnern umschlossen sein.

Numerisches Beispiel

Weist den numerischen Wert 1000 der Variablen v_Min_Betrag zu.

ASSIGN v_Min_Betrag = 1000

Weist den Wert des numerischen Felds Rechnungsbetrag im aktuell ausgewählten Datensatz der Variablen v_laufende_Summe zu.

ASSIGN v_laufende_Summe = Rechnungsbetrag

Datumzeit

Ein Datumzeit-Wert kann ein Datum, eine Zeit oder eine Datumzeit sein. Der Wert muss ein Format haben, das durch Analytics unterstützt wird.

Weitere Informationen über unterstützte Datumzeit-Formate finden Sie unter Format von Datumzeit-Literalen.

Ein literaler Datumzeit-Wert muss durch Backquotes umschlossen sein.

Hinweis

Analytics unterstützt auch Datumzeit-Werte, die den Zeichendatentyp nutzen. Weitere Informationen finden Sie unter Ein Wort zu Datumzeit-Werten.

Datumzeit-Beispiel

Weist den Datumswert `20210101` der Variable v_Startdatum zu.

ASSIGN v_Startdatum = `20210101`

Weist den Wert des Datumzeit-Felds Rechnungsdatum im aktuell ausgewählten Datensatz der Variablen v_Datum zu.

ASSIGN v_Datum = Rechnungsdatum

Logisch

Ein logischer Wert kann entweder T oder F sein.

Ein literaler logischer Wert darf nicht mit Kennzeichnern umschlossen sein.

Logisches Beispiel

Weist den logischen Wert T der Variablen v_Q1 zu.

ASSIGN v_Q1 = T

Weist den Wert des logischen Felds Genehmigt im aktuell ausgewählten Datensatz der Variablen v_genehmigt zu.

ASSIGN v_genehmigt = Genehmigt

4. Variablennamen sind flexibel, haben aber einige Einschränkungen.

Weitgehend können Sie eine Variable so nennen, wie es für Sie am geeignetsten ist.

Freiwillige Konventionen

Durch diese freiwilligen Konventionen sind Skripts einfacher zu lesen und zu verstehen:

  • Geben Sie Variablen einen einfach verständlichen und beschreibenden Namen, der sich direkt auf die Rolle der Variablen in einem Skript bezieht. Ein leicht längerer, aber eindeutig beschreibender Name ist besser als ein kurzer, kryptischer Name, der den Zweck einer Variablen nicht verdeutlicht.

  • Verwenden Sie eine allgemeine Namenskonvention, zum Beispiel indem Sie jeden Variablennamen mit v_ beginnen.

Geltende Beschränkungen

In Analytics gelten die folgenden Beschränkungen für Variablennamen:

  • Maximale Länge 31 Zeichen

  • Gültige Zeichen Alphanumerische Zeichen und der Unterstrich ( _ ). Sonderzeichen und Leerzeichen sind nicht erlaubt und der Name darf nicht mit einer Ziffer beginnen.

    Hinweis

    In den Variablennamen für den Variablenersatz dürfen keine Zeichen verwendet werden, die nicht im englischen Alphabet vorkommen, wie beispielsweise é. Variablennamen, die solche Zeichen enthalten, lassen den Variablenersatz scheitern.

    Nicht englische Versionen dieses Hilfethemas, zum Beispiel die französische, stellen Variablennamen unter Umständen mit Akzentbuchstaben dar. Stellen Sie sicher, in einem tatsächlichen Skript keine Variablennamen mit Akzentbuchstaben für den Variablenersatz zu verwenden.

  • Eindeutigkeit Variablennamen müssen innerhalb eines Analytics-Projekts eindeutig sein, da Variablen global über das gesamte Projekt hinweg funktionieren.Analytics

Bei Variablennamen wird die Groß- und Kleinschreibung nicht beachtet. In ACLScript sind v_Startdatum und v_StartDatum dieselbe Variable.

5. Eine Variable ist global gültig.

Eine Variable, die in einem Analytics-Skript erstellt wurde, ist in allen späteren Teilen des Skripts verfügbar. Sie steht auch allen anderen Skripts innerhalb des Analytics-Projekts zur Verfügung. Dieses Verhalten ist hilfreich, wenn Sie eine Variable in einem untergeordneten Skript verwenden möchten, die in einem übergeordneten Skript definiert ist.

ACLScript unterstützt keine lokale Geltung von Variablen.

6. Eine Variable besteht fort, nachdem das Analytics-Projekt geschlossen wurde.

Eine Variable bleibt im Speicher Ihres Computers, bis Sie sie explizit löschen oder das Analytics-Projekt, das sie enthält, geschlossen wird.

Wenn Sie möchten, dass eine Variable nach dem Schließen eines Projekts fortbesteht und auch verfügbar ist, sobald Sie das Projekt wieder öffnen, können Sie eine permanente Variable erstellen. Stellen Sie dem Variablennamen einen Unterstrich vor, um eine permanente Variable zu erstellen. Zum Beispiel: _v_Startdatum. Sowohl die Variable als auch der in ihr enthaltene Wert bleiben dann bestehen. Eine permanente Variable kann nur wieder entfernt werden, indem sie explizit gelöscht wird.

Hinweis

Permanente Variablen werden in Skripts, die in Robots ausgeführt werden, nicht unterstützt.

7. Eine Variable kann explizit gelöscht werden.

Um eine oder mehrere aktuelle Variablen explizit zu löschen, können Sie die Schaltfläche Löschen auf der Registerkarte Variablen oder den Befehl DELETE verwenden.

Variablen mit der Schaltfläche „Löschen“ löschen

Um eine, mehrere oder alle Variablen in einem Analytics-Projekt explizit zu löschen, verwenden Sie die Schaltfläche Löschen oben auf der Registerkarte Variablen im Navigator.

  1. Öffnen Sie im Navigator die Registerkarte Variablen.

  2. Führen Sie einen der folgenden Schritte aus:

    • Um alle Variablen zu löschen, klicken Sie auf Löschen .

    • Um bestimmte Variablen zu löschen, wählen Sie die Variablen aus und klicken Sie auf Löschen .

      Mit Strg+Anklicken können Sie mehrere, nicht benachbarte Variablen auswählen.

  3. Sie klicken im Bestätigungsdialogfeld auf Ja.

    Die Variablen werden gelöscht.

Variablen mit dem Befehl DELETE löschen

Um eine oder alle Variablen in einem Analytics-Projekt explizit zu löschen, verwenden Sie den Befehl DELETE in der Befehlszeile oder in einem Skript.

So löschen Sie eine bestimmte Variable explizit:

DELETE Variablenname OK

So löschen Sie alle Variablen explizit:

DELETE ALL OK

Was wird gelöscht?

Wenn Sie eine Variable löschen, löschen Sie nur den benannten Container und den Wert, den er enthält, aus dem Speicher Ihres Computers.

Das Löschen einer Variable hat keine Auswirkung auf die Variable in einem Skript. Sie können die Variable im Arbeitsspeicher wieder reaktivieren, indem Sie den Befehl ASSIGN in der Befehlszeile ausführen oder indem Sie das Skript mit der Variablenzuweisung ausführen.

Das Löschen einer Variable und ihres Werts ändert auch nichts an dem Wert, auf den sie verweist. Er existiert außerhalb der Variable, zum Beispiel in einer Analytics-Tabelle.

Beispiel

Die zwei folgenden Beispiele zeigen, wie die Variable und das Element, auf das eine Variable verweist, unterschiedliche Entitäten sind. Das Löschen der einen Entität ändert nichts an der anderen.

Hinweis

Die Beispiele verwenden einen Variablenersatz, um den Variablennamen gegen die Inhalte der Variable selbst auszutauschen.

Im ersten Beispiel wird durch das Löschen der Variable v_Testtabelle der Variablenwert "Laufende_Summen" gelöscht. Die tatsächliche Tabelle Laufende_Summen wird jedoch nicht gelöscht.

ASSIGN v_Testtabelle = "Laufende_Summen"

COMMENT Wird erfolgreich ausgeführt
OPEN %v_Testtabelle%

COMMENT Variable löschen
DELETE v_Testtabelle OK

COMMENT Wird erfolgreich ausgeführt
OPEN Laufende_Summen

Im zweiten Beispiel hat das Löschen der tatsächlichen Tabelle Laufende_Summen keine Auswirkung auf die Variable v_Testtabelle, obwohl die Variable nun auf eine Tabelle verweist, die nicht mehr existiert.

ASSIGN v_Testtabelle = "Laufende_Summen"

COMMENT Wird erfolgreich ausgeführt
OPEN %v_Testtabelle%

COMMENT Tabelle löschen, auf die die Variable verweist
DELETE FORMAT %v_Testtabelle% OK

COMMENT Scheitert mit dem Fehler „Tabelle ‚Laufende_Summen‘ ungültig“
OPEN %v_Testtabelle%

8. Systemvariablen werden automatisch durch einige Analytics-Befehle erzeugt.

Wenn Sie bestimmte Analytics-Befehle ausführen, werden Systemvariablen automatisch erstellt. Beispielsweise erstellt der Befehl COUNT die Systemvariable COUNTn. Sie enthält die Anzahl der gezählten Datensätze. Sie können diese Variablen und die darin enthaltenen Werte in den folgenden Abschnitten eines Skripts verwenden.

Dieses Skript wird beispielsweise automatisch abgeschlossen, wenn der Benutzer eine Tabelle auswählt, die keine Datensätze enthält:

ACCEPT "Wählen Sie eine Eingabetabelle aus:" FIELDS "xf" TO v_Eingabetabelle
OPEN %v_Eingabetabelle%
COUNT
PAUSE "Die von Ihnen ausgewählte Tabelle enthält keine Datensätze. Das Skript wird abgeschlossen." IF COUNT1 = 0
ESCAPE IF COUNT1 = 0
DO SCRIPT Transaktionen_summieren

Weitere Informationen finden Sie unter Durch Analytics-Befehle erstellte Systemvariablen.

Die Bedeutung des Datentyps einer Variable

Wenn ein Analytics-Befehl oder eine Analytics-Funktion eine Variable referenzieren, muss der Datentyp der Variable dem Datentyp des Befehls oder der Funktion entsprechen. Falls die Datentypen nicht übereinstimmen, wird ein Fehler ausgegeben und die Ausführung des Befehls oder der Funktion scheitert.

Um in diesen Situationen einen Fehler zu vermeiden, können Sie Analytics-Funktionen verwenden, welche den gespeicherten Wert einer Variable in einen verwendbaren Datentyp konvertieren. Dieser Ausdruck konvertiert beispielsweise ein Datum in einer Zeichenvariable auf den Datumzeit-Datentyp:

CTOD(v_Zeichendatum)

Dieser Ausdruck konvertiert eine Zahl in einer Zeichenvariable in einen numerischen Datentyp:

VALUE(v_Zeichenzahl; 2)

Weitere Informationen finden Sie unter Konvertierungsfunktionen.

Hinweis

Datumswerte und Zahlen werden in Zeichenvariablen gespeichert, wenn sie durch Benutzer eingegeben werden. Weitere Informationen hierzu finden Sie unter Zur Erstellung einer Variable gibt es mehrere Möglichkeiten.

Ein Wort zu Datumzeit-Werten

In Analytics können Sie Datumzeit-Werte verarbeiten, die entweder den Datumzeit-Datentyp oder den Zeichendatentyp verwenden. Der Datentyp von Datumzeit-Werten ergibt sich normalerweise aus der Art der Daten, die Sie in Analytics importieren.

Welche Auswirkung ergibt sich auf Variablen, die Datum-, Zeit- oder Datumzeit-Werte beinhalten? Sie müssen den Datentyp der zugrunde liegenden Daten, mit denen Sie arbeiten, kennen. In Abhängigkeit vom verwendeten Datentyp muss sich Ihre Skriptsyntax unterscheiden.

Beispiel

Die beiden folgenden Beispiele zeigen die Syntax zum Filtern eines Datumsfelds auf Basis eines Datumsbereichs, der durch den Benutzer angegeben wird.

  • Im ersten Beispiel verwendet das Datumsfeld einen Datumzeit-Datentyp.

  • Im zweiten Beispiel nutzt das Datumsfeld einen Zeichendatentyp.

  • In beiden Beispielen verwenden die Variablen v_Startdatum und v_Enddatum den Zeichendatentyp, weil sie durch den Befehl ACCEPT oder den Befehl DIALOG erstellt wurden.

Im ersten Beispiel müssen Sie die Funktion CTOD( ) verwenden, um die Werte des Datumsbereichs aus dem Zeichendatentyp in den Datumzeit-Datentyp zu konvertieren (CTOD bedeutet „Character to Date“, also „Zeichen auf Datum“). Sie müssen diese Konversion durchführen, damit der Datentyp der Werte innerhalb des Datumsbereichs dem Datentyp des Datumzeit-Datumsfeld entspricht.

SET FILTER TO BETWEEN(Datumzeit-Datumsfeld; CTOD(v_Startdatum); CTOD(v_Enddatum))

Im zweiten Beispiel führen Sie keine Konvertierung der Werte des Datumsbereichs durch, weil sie bereits dem Datentyp des Zeichendatumsfeld entsprechen. Wenn Sie sie konvertieren, stimmen sie nicht mehr überein und Sie erhalten einen Skriptfehler.

SET FILTER TO BETWEEN(Zeichendatumsfeld; v_Startdatum; v_Enddatum)

Variablenersatz

Wenn Sie eine Zeichenvariable als Eingabe für einen Analytics-Befehl oder eine Analytics-Funktion verwenden, müssen Sie den Variablennamen gegen den Wert der Variablen ersetzen. Ohne diesen Ersatz versucht der Befehl oder die Funktion, den tatsächlichen Variablennamen zu verwenden, anstatt den Wert innerhalb der Variable. Das Ergebnis wäre ein Fehler.

Der Variablenersatz ist eine Methode, mit der der Variablenname gegen den Wert innerhalb einer Zeichenvariable ersetzt wird. Um den Variablenersatz zu verwenden, umschließen Sie den Namen der Zeichenvariable mit Prozentzeichen ( % ). %v_Eingabetabelle% ruft beispielsweise den tatsächlichen Tabellennamen ab, der in v_Eingabetabelle gespeichert ist und ersetzt den Variablennamen durch ihn.

Weil die Benutzereingabe für ein Skript oft in einer Zeichenvariable gespeichert wird, wird der Variablenersatz häufig verwendet, um die Benutzereingabe in die Skriptlogik zu übernehmen.

Hinweis

Der Variablenersatz ist nur für Zeichenvariablen vorgesehen, deren Werte Zeichendaten enthalten. Wenn Sie den Variablenersatz mit Variablen anderer Datentypen verwenden oder mit Zeichenvariablen, die Zahlen-, Datumzeit- oder logische Werte enthalten, ist das Ergebnis unzuverlässig oder es wird ein Fehler ausgeworfen.

Beispiel

Sie möchten dem Benutzer in einem Skript ermöglichen, eine Eingabetabelle auszuwählen. Das Skript öffnet dann die Tabelle, die der Benutzer ausgewählt hat. Sie verwenden den Variablenersatz mit dem OPEN-Befehl, damit der Befehl den korrekten Tabellennamen nutzt.

Wenn Sie OPEN %v_Eingabetabelle% eingeben, sieht das Skript tatsächlich:

OPEN Name_der_durch_den_Benutzer_ausgewählten_Tabelle

ACCEPT "Wählen Sie eine Eingabetabelle aus:" FIELDS "xf" TO v_Eingabetabelle
OPEN %v_Eingabetabelle%

Wenn Sie in diesem Beispiel keinen Variablenersatz verwenden, wird das Skript sehr wahrscheinlich scheitern. In diesem Fall würde der OPEN-Befehl versuchen, eine Tabelle namens v_Eingabetabelle zu öffnen, die es jedoch nicht gibt.

ACCEPT "Wählen Sie eine Eingabetabelle aus:" FIELDS "xf" TO v_Eingabetabelle
OPEN v_Eingabetabelle

Verwenden des Variablenersatzes kann schwierig sein

Einige Fälle lassen vermuten, dass ein Variablenersatz notwendig ist, wohingegen dieser einen Fehler verursacht.

Betrachten Sie eines der bereits verwendeten Beispiele:

SET FILTER TO BETWEEN(Zeichendatumsfeld; v_Startdatum; v_Enddatum)

In diesem Beispiel vergleichen Sie die Datumswerte, die als Zeichendaten sowohl in den Variablen als auch dem Feld gespeichert sind. Ein Variablenersatz mit den Variablen sollte also funktionieren:

SET FILTER TO BETWEEN(Zeichendatumsfeld; %v_Startdatum%; %v_Enddatum%)

Warum verursacht der Variablenersatz in dieser Situation also einen Fehler? Die Antwort lautet, dass der Variablenersatz absolut literal ist. Um den Fehler zu beheben, schauen Sie sich die präzisen Werte innerhalb der Variablen an, ersetzen sie manuell in den Ausdruck und betrachten dann den sich ergebenden Ausdruck. Beispiel:

SET FILTER TO BETWEEN(Zeichendatumsfeld; 20000101; 20001231)

Dieser Ausdruck vergleicht Datumswerte, die den Zeichendatentyp verwenden, mit Zahlen, die nach dem Ersatz einen numerischen Datentyp aufweisen. Hierbei handelt es sich um nicht übereinstimmende Datentypen.

Da Sie mit BETWEEN( ) ein Zeichenfeld festgelegt haben, interpretiert die Funktion die Werte in v_Startdatum und v_Enddatum automatisch als Zeichenwerte. Aus diesem Grund ist ein Variablenersatz nicht notwendig.

Weitere Informationen finden Sie unter Problembehandlung.

Eine Ausnahme von der Regel

In einigen Fällen sind Sie möglicherweise in der Lage, den Variablenersatz mit einer numerischen Variable problemlos zu verwenden. Der Vorteil besteht darin, dass der Wert der numerischen Variable im Protokoll erfasst wird, was bei der Fehlerbehebung hilfreich sein kann.

Die folgenden Beispiele weisen beide den Wert der numerischen Variable COUNT1 der numerischen Variable v_Zaehler zu. Im ersten Beispiel wird der tatsächlich zugewiesene Wert aber nicht im Protokoll erfasst, während er im zweiten Beispiel erfasst wird.

COMMENT Protokolleintrag: ASSIGN v_Zaehler = COUNT1
ASSIGN v_Zaehler = COUNT1
COMMENT Protokolleintrag: ASSIGN v_Zaehler = 500
ASSIGN v_Zaehler = %COUNT1%

Manuelles Verwalten von Variablen

Mit dem Dialogfeld Variablen innerhalb des Analytics-Hauptmenüs können Sie Variablen manuell verwalten. Dadurch sind Sie in der Lage, Variablen zu erstellen, umzubenennen, zu duplizieren oder zu löschen und Variablenwerte zu aktualisieren.

Jede durchgeführte Verwaltung wirkt sich nur auf die aktuelle Instanz der Variable im Arbeitsspeicher aus. Wenn Sie beispielsweise eine Variable umbenennen, benennen Sie nur die Instanz der Variable im Arbeitsspeicher um. Dadurch wird nicht die Variable in einem Skript umbenannt.

Hinweis

Manchmal kann es recht hilfreich sein, Variablen über die Benutzeroberfläche manuell verwalten zu können. Die manuelle Verwaltung ermöglicht jedoch keine zusätzlichen Funktionen gegenüber der Verwaltung von Variablen über Befehle.

Die meisten Skriptautoren arbeiten mit Variablen nur im Skript-Editor und den damit verbundenen Funktionen wie der Befehlszeile und der Registerkarte Variablen.

  1. Wählen Sie aus dem Analytics-Hauptmenü Bearbeiten > Variablen.

    Das Dialogfeld Variablen wird geöffnet und zeigt eine Liste aller Systemvariablen sowie benutzerdefinierten Variablen im Projekt an. Systemvariablen sind Variablen, die durch Befehle automatisch erstellt werden.

  2. Führen Sie einen der folgenden Schritte aus:
    Neue Variable erstellen
    1. Klicken Sie auf Neu, um den Ausdruck-Generator zu öffnen.

    2. Geben Sie im Textfeld Ausdruck den Ausdruck oder Wert ein, den Sie der Variablen zuweisen möchten.

      Bei Literalwerten müssen das korrekte Format und die richtigen Kennzeichner (falls notwendig) verwendet werden. Weitere Informationen finden Sie unter Der Datentyp einer Variable wird automatisch festgelegt.

    3. Optional. Klicken Sie auf Prüfen, um zu testen, ob der Wert oder der Ausdruck gültig ist.

    4. Geben Sie im Textfeld Speichern unter den Namen für die Variable ein.

      Weitere Informationen finden Sie unter

      .
    5. Klicken Sie auf OK.

      Die Variable ist erstellt und wird in der Registerkarte Variablen angezeigt.

    Variablenwert aktualisieren
    1. Wählen Sie in der Liste eine Variable aus und klicken Sie auf OK, um den Ausdruck-Generator zu öffnen.

    2. Aktualisieren Sie im Textfeld Ausdruck den Ausdruck oder Wert, der der Variablen zugewiesen ist.

      Bei Literalwerten müssen das korrekte Format und die richtigen Kennzeichner (falls notwendig) verwendet werden. Weitere Informationen finden Sie unter Der Datentyp einer Variable wird automatisch festgelegt.

    3. Optional. Klicken Sie auf Prüfen, um zu testen, ob der Wert oder der Ausdruck gültig ist.

    4. Klicken Sie auf OK.

      Der Wert, welcher der Variablen im Arbeitsspeicher Ihres Computers zugewiesen ist.

    Variable umbenennen
    1. Wählen Sie eine Variable in der Liste aus und klicken Sie auf Umbenennen.

    2. Geben Sie in das Textfeld Umbenennen einen neuen Namen ein, und klicken Sie auf OK.

      Die Variable wird im Arbeitsspeicher Ihres Computers umbenannt.

    3. Klicken Sie auf Abbrechen, um das Dialogfeld Variablen zu schließen.

    Variable duplizieren
    1. Wählen Sie eine Variable in der Liste aus und klicken Sie auf Duplizieren.

      Die Variable und ihr Wert werden im Arbeitsspeicher Ihres Computers dupliziert. Dem Namen der duplizierten Variable wird ein numerisches Suffix angehängt.

    2. Führen Sie einen der folgenden Schritte aus:

      • Klicken Sie auf Fertig, um das Dialogfeld Variablen zu schließen.

      • Klicken Sie auf OK, um den Ausdruck oder Wert, der der Variablen zugewiesen ist, zu aktualisieren.

    Variable löschen
    1. Wählen Sie eine Variable in der Liste aus.

    2. Optional. Mit Umschalten+Anklicken oder Strg+Anklicken können Sie mehrere zu löschende Variablen auswählen.

    3. Klicken Sie auf Löschen.

    4. Klicken Sie wieder auf Löschen.

      Die Variablen werden aus dem Arbeitsspeicher Ihres Computers gelöscht.

    5. Klicken Sie auf Fertig, um das Dialogfeld Variablen zu schließen.

Beispiele für die Verwendung von Variablen

Variablen für die Skriptkonfiguration

Sie möchten ein Skript erstellen, das Umsatzsteuerbeträge berechnet. Es soll flexibel genug sein, um die sich von Zeit zu Zeit ändernden Umsatzsteuersätze zu handhaben.

Erforderliche Variablen

Um die Konfiguration unterschiedlicher Steuersätze und eines Datumsbereichs zu ermöglichen, verwenden Sie ASSIGN-Befehl und erstellen damit die folgenden Variablen.

Variablenname Variableninhalt
v_Steuer_1 Erster Steuersatz
v_Steuer_2 Zweiter Steuersatz
v_Steuer_2_Start Das Datum, ab dem der zweite Steuersatz gilt
v_Steuer_2_Ende Das Datum, ab dem der zweite Steuersatz endet, oder das aktuelle Datum, falls der Steuersatz noch immer gilt.

Das Skript

COMMENT Variablen für Umsatzsteuersätze sowie einen Datumsbereich erstellen und initialisieren
COMMENT Falls erforderlich, können Sie das Skript erweitern, indem Sie zusätzliche Variablen für Steuersätze und Datumsbereiche hinzufügen.
ASSIGN v_Steuer_1 = 0,05
ASSIGN v_Steuer_2 = 0,06
ASSIGN v_Steuer_2_Start = `20210701`
ASSIGN v_Steuer_2_Ende = `20211231`

COMMENT Bedingtes Kalkulationsfeld erstellen, das unterschiedliche Umsatzsteuersätze für zwei verschiedene Zeiträume verwendet
DEFINE FIELD Umsatzsteuer COMPUTED

Rechnungsbetrag * v_Steuer_2 IF BETWEEN(Rechnungsdatum; v_Steuer_2_Start; v_Steuer_2_Ende)
Rechnungsbetrag * v_Steuer_1

Die erstellten und initialisierten Variablen in der Registerkarte „Variablen“

Nach der Ausführung des Skripts werden die erstellten und initialisierten Variablen in der Registerkarte Variablen angezeigt.

Weil der ASSIGN-Befehl die Variablen erstellt, schreibt der Datentyp der zugewiesenen Werte den Datentyp der Variablen vor. In diesem Beispiel gibt es zwei numerische Variablen und zwei Datumzeit-Variablen.

Variablen für Benutzereingaben

Sie möchten ein Skript erstellen, das dem Benutzer die Auswahl einer beliebigen Tabelle in einem Analytics-Projekt, das Filtern der Datensätze in der Tabelle nach einem numerischen Bereich und die Ausgabe der gefilterten Datensätze in eine neue Tabelle ermöglicht.

Erforderliche Variablen

Um die Benutzereingabe für das Skript zu erfassen, verwenden Sie ACCEPT-Befehl und erstellen damit die folgenden Variablen.

Variablenname Variableninhalt
v_Eingabetabelle Der Name der Analytics-Tabelle, die als Eingabe verwendet werden soll
v_Ausgabetabelle Der Name der Analytics-Ausgabetabelle für die gefilterten Datensätze
v_numerisches_Feld Das numerische Feld in der Eingabetabelle, das mit dem numerischen Bereich verwendet werden soll
v_Min_Betrag Das untere Ende des numerischen Bereichs
v_Max_Betrag Das obere Ende des numerischen Bereichs
v_Datumsfeld Das Datumsfeld in der Eingabetabelle, das mit dem Datumsbereich verwendet werden soll
v_Startdatum Das älteste Datum innerhalb des Datumsbereichs
v_Enddatum Das aktuellste Datum innerhalb des Datumsbereichs

Überlegungen bei der Skripterstellung

Da Sie den ACCEPT-Befehl verwenden, um die Benutzer interaktiv zur Eingabe von Werten für das Skript aufzufordern, wird jeder Eingabewert in einer benannten Zeichenvariable gespeichert. Das ist auch dann der Fall, wenn der Wert tatsächlich eine Zahl oder ein Datum ist. Aus diesem Grund müssen Sie an bestimmten Stellen im Skript Analytics-Funktionen verwenden, um den Variablenwert auf den Datentyp zu konvertieren, der durch die Skriptlogik benötigt wird.

Beispiel:

  • Die VALUE( )-Funktion konvertiert die Zahl in v_Min_Betrag von einem Zeichendatentyp in einen numerischen Datentyp:

    VALUE(v_Min_Betrag; 2)
  • Die CTOD( )-Funktion konvertiert das Datum in v_Startdatum von einem Zeichendatentyp in einen Datumzeit-Datentyp:

    CTOD(v_Startdatum)

Sie müssen diese Datentypkonvertierungen vornehmen, weil die Werte in diesen Variablen mit den Werten in Feldern verglichen werden, die einen numerischen oder einen Datumzeit-Datentyp verwenden.

Sie müssen auch den Variablenersatz verwenden, um auf die tatsächlichen Namen von Tabellen und Feldern zuzugreifen, die in einigen Variablen gespeichert sind.

Beispiel:

OPEN %v_Eingabetabelle%

Das Skript

COMMENT Dialogfeld erstellen, das den Benutzer zur Eingabe einer Eingabetabelle und einer Ausgabetabelle auffordert
ACCEPT "Wählen Sie eine Eingabetabelle aus:" FIELDS "xf" TO v_Eingabetabelle; "Geben Sie den Namen einer Ausgabetabelle an (keine Leerzeichen):" TO v_Ausgabetabelle

COMMENT Eingabetabelle öffnen, die der Benutzer ausgewählt hat
OPEN %v_Eingabetabelle%

COMMENT Dialogfeld erstellen, das den Benutzer zur Eingabe eines numerischen Felds und eines numerischen Bereichs auffordert
ACCEPT "Wählen Sie ein numerisches Feld aus, auf dessen Basis gefiltert werden soll:" FIELDS "N" TO v_numerisches_Feld; "Geben Sie einen Mindestbetrag an:" TO v_Min_Betrag; "Geben Sie einen Höchstbetrag an:" TO v_Max_Betrag

COMMENT Dialogfeld erstellen, das den Benutzer zur Eingabe eines Datumsfelds und eines Datumsbereichs auffordert
ACCEPT "Geben Sie ein Datumsfeld ein, nach dem gefiltert werden soll:" FIELDS "D" TO v_Datumsfeld; "Geben Sie ein Startdatum ein (JJJJMMTT):" TO v_Startdatum; "Geben Sie ein Enddatum ein (JJJJMMTT):" TO v_Enddatum

COMMENT Eingabetabelle auf Basis der durch den Benutzer eingegebenen numerischen Bereiche und Datumsbereiche filtern
SET FILTER TO BETWEEN(%v_numerisches_Feld%; VALUE(v_Min_Betrag; 2), VALUE(v_Max_Betrag; 2)) AND BETWEEN(%v_Datumsfeld%; CTOD(v_Startdatum); CTOD(v_Enddatum))

COMMENT Gefilterte Datensätze in die durch den Benutzer angegebene Ausgabetabelle extrahieren
EXTRACT RECORD TO %v_Ausgabetabelle%

COMMENT Ausgabetabelle mit den gefilterten Datensätzen öffnen
OPEN %v_Ausgabetabelle%

Die erstellten und initialisierten Variablen in der Registerkarte „Variablen“

Nach der Ausführung des Skripts werden die erstellten und initialisierten Variablen in der Registerkarte Variablen angezeigt.

Weil die Variablen durch den ACCEPT-Befehl erstellt werden, verwenden Sie selbst dann den Zeichendatentyp, wenn der Variablenwert eine Zahl oder ein Datum ist.

WRITE1 ist eine Systemvariable. In dieser aktuellen Situation entspricht der Wert der Anzahl der Datensätze in der Ausgabetabelle (v_Ausgabetabelle). Weitere Informationen finden Sie unter Durch Analytics-Befehle erstellte Systemvariablen.

Standardwerte für Benutzereingabevariablen

Sie können in einem Benutzereingabefeld einen Standardwert vorgeben, anstatt ihn dem Benutzer leer anzuzeigen. Ein Standardwert kann Zeit sparen und Fehler vermeiden, indem das korrekte Format für einen Eingabewert angezeigt wird.

Um einen Standardwert festzulegen, müssen Sie zuerst ASSIGN-Befehl verwenden und eine Variable mit dem Standardwert initialisieren. Dann verwenden Sie ACCEPT-Befehl mit demselben Variablennamen und gestatten dem Benutzer, den Standardwert optional zu überschreiben.

Das Beispiel entspricht Variablen für Benutzereingaben weiter oben, wobei jedoch ein vorläufiger Abschnitt zur Initialisierung der Variablen mit Standardwerten für den numerischen Bereich und den Datumsbereich hinzugefügt wurde.

Variablen mit Standardwerten initialisieren

Um Variablen mit Standardwerten zu initialisieren, verwenden Sie den ASSIGN-Befehl und erstellen damit die folgenden Variablen.

Variablenname Variableninhalt
v_Min_Betrag Das untere Ende des numerischen Bereichs
v_Max_Betrag Das obere Ende des numerischen Bereichs
v_Anzahl_Monate Die Länge des Datumsbereichs in Monaten
v_Enddatum Das aktuellste Datum innerhalb des Datumsbereichs (berechnet)
v_Startdatum Das älteste Datum innerhalb des Datumsbereichs (berechnet)

Überlegungen bei der Skripterstellung

Da Sie Standardwerte in Feldern vorgeben, die mit dem ACCEPT-Befehl erstellt wurden, müssen diese Werte den Zeichendatentyp haben. Wenn Sie versuchen, Werte mit einem anderen Datentyp vorzugeben, werden diese Werte nicht angezeigt.

Aus diesem Grund müssen Sie unter Umständen Analytics-Funktionen verwenden, um die Standardwerte auf den Zeichendatentyp zu konvertieren. Später im Skript können Sie andere Funktionen verwenden, um die Variablenwerte zurück auf den Datentyp zu konvertieren, der durch die Skriptlogik benötigt wird.

Beispiel:

  • Die STRING( )-Funktion konvertiert die Zahl 5000 in eine Zeichenfolge, die dann in der Variable v_Min_Betrag gespeichert wird:

    ASSIGN v_Min_Betrag = STRING(5000; 4)
  • Die DATE( )-Funktion konvertiert das berechnete Enddatum in eine Zeichenfolge, die dann in der Variable v_Enddatum gespeichert wird:

    ASSIGN v_Enddatum = ALLTRIM(DATE(EOMONTH(TODAY();-1)))

Berechnung des Datumsbereichs

In der Berechnung des Datumsbereichs wird der Standardbereich auf die zwölf vollständigen Monate vor dem aktuellen Datum festgelegt. Um die Länge des Bereichs zu ändern, aktualisieren Sie den Wert, der der Variablen v_Anzahl_Monate zugewiesen wurde. Weitere Informationen über die Funktion, die zur Berechnung des Datumsbereichs verwendet wurde, finden Sie unter EOMONTH( )-Funktion.

Das Skript

COMMENT Datumsformat für die Dauer der Analytics-Sitzung festlegen
SET DATE "JJJJMMTT"

COMMENT Standardwerte für das untere und obere Ende des numerischen Bereichs festlegen
ASSIGN v_Min_Betrag = STRING(5000; 4)
ASSIGN v_Max_Betrag = STRING(100000; 6)

COMMENT Länge des berechneten Datumsbereichs in Monaten festlegen
ASSIGN v_Anzahl_Monate = 12

COMMENT Start- und Enddatum des Standarddatumsbereichs auf Basis des aktuellen Datums und der in v_Anzahl_Monate angegebenen Länge berechnen
ASSIGN v_Enddatum = ALLTRIM(DATE(EOMONTH(TODAY();-1)))
ASSIGN v_Startdatum = ALLTRIM(DATE(EOMONTH(CTOD(v_Enddatum); -v_Anzahl_Monate) + 1))

COMMENT Dialogfeld erstellen, das den Benutzer zur Eingabe einer Eingabetabelle und einer Ausgabetabelle auffordert
ACCEPT "Wählen Sie eine Eingabetabelle aus:" FIELDS "xf" TO v_Eingabetabelle; "Geben Sie den Namen einer Ausgabetabelle an (keine Leerzeichen):" TO v_Ausgabetabelle

COMMENT Eingabetabelle öffnen, die der Benutzer ausgewählt hat
OPEN %v_Eingabetabelle%

COMMENT Dialogfeld erstellen, das den Benutzer zur Eingabe eines numerischen Felds und eines numerischen Bereichs auffordert
ACCEPT "Wählen Sie ein numerisches Feld aus, auf dessen Basis gefiltert werden soll:" FIELDS "N" TO v_numerisches_Feld; "Geben Sie einen Mindestbetrag an:" TO v_Min_Betrag; "Geben Sie einen Höchstbetrag an:" TO v_Max_Betrag

COMMENT Dialogfeld erstellen, das den Benutzer zur Eingabe eines Datumsfelds und eines Datumsbereichs auffordert
ACCEPT "Geben Sie ein Datumsfeld ein, nach dem gefiltert werden soll:" FIELDS "D" TO v_Datumsfeld; "Geben Sie ein Startdatum ein (JJJJMMTT):" TO v_Startdatum; "Geben Sie ein Enddatum ein (JJJJMMTT):" TO v_Enddatum

COMMENT Eingabetabelle auf Basis der durch den Benutzer eingegebenen numerischen Bereiche und Datumsbereiche filtern
SET FILTER TO BETWEEN(%v_numerisches_Feld%; VALUE(v_Min_Betrag; 2), VALUE(v_Max_Betrag; 2)) AND BETWEEN(%v_Datumsfeld%; CTOD(v_Startdatum); CTOD(v_Enddatum))

COMMENT Gefilterte Datensätze in die durch den Benutzer angegebene Ausgabetabelle extrahieren
EXTRACT RECORD TO %v_Ausgabetabelle%

COMMENT Ausgabetabelle mit den gefilterten Datensätzen öffnen
OPEN %v_Ausgabetabelle%

Variablen für temporäre Speicherung

Sie möchten ein Skript erstellen, das eine laufende Summe auf Basis von Werten eines numerischen Felds berechnet. Für jeden eindeutigen Wert in einem Bezeichnerfeld beginnt die laufende Summe bei 0,00.

Erforderliche Variablen

Das Skript verwendet Variablen für drei unterschiedliche Zwecke:

  • Benutzereingabe

  • temporäre Speicherung von Werten

  • Skriptkonfiguration

Benutzereingabe

Um die Benutzereingabe für das Skript zu erfassen, verwenden Sie ACCEPT-Befehl und erstellen damit die folgenden Variablen.

Variablenname Variableninhalt
v_Eingabetabelle Der Name der Analytics-Tabelle, die als Eingabe verwendet werden soll
v_Ausgabetabelle Der Name der Analytics-Ausgabetabelle für die laufenden Summen
v_ID_Feld Das Feld in der Eingabetabelle, das die Bezeichnerwerte, wie Kunden- oder Lieferanten-IDs, enthält
v_numerisches_Feld Das numerische Feld in der Eingabetabelle, das zur Berechnung der laufenden Summen verwendet werden soll
Temporäre Speicherung von Werten und Skriptkonfiguration

Damit die Werte temporär gespeichert werden können, während das Skript die Eingabetabelle einen Datensatz nach dem anderen durchläuft, verwenden Sie ASSIGN-Befehl, um die folgenden zwei Variablen zu erstellen und auch zu aktualisieren. Falls erforderlich, können Sie einen anderen Anfangspunkt als 0,00 für die laufende Summe konfigurieren.

Variablenname Variableninhalt
v_ID_Wert Der Bezeichnerwert im Datensatz, den das Skript im Moment verarbeitet
v_laufende_Summe

Die laufende Summe im Datensatz, den das Skript im Moment verarbeitet

Das Skript

COMMENT
Überschreiben von Dateien erlauben, ohne dass ein Bestätigungsdialog angezeigt wird
END
SET SAFETY OFF

COMMENT
Dialogfeld erstellen, das den Benutzer zur Eingabe einer Eingabetabelle und einer Ausgabetabelle auffordert
END
ACCEPT "Wählen Sie eine Eingabetabelle aus:" FIELDS "xf" TO v_Eingabetabelle; "Geben Sie den Namen einer Ausgabetabelle an (keine Leerzeichen):" TO v_Ausgabetabelle
OPEN %v_Eingabetabelle%

COMMENT
Dialogfeld erstellen, das den Benutzer zur Eingabe eines Zeichenbezeichnerfelds auffordert
END
ACCEPT "Wählen Sie ein Zeichenbezeichnerfeld aus:" FIELDS "C" TO v_ID_Feld

COMMENT
Dialogfeld erstellen, das den Benutzer zur Eingabe eines numerischen Felds auffordert
END
ACCEPT "Wählen Sie ein numerisches Feld aus:" FIELDS "N" TO v_numerisches_Feld

COMMENT
Die Tabelle auf Basis des Zeichenbezeichnerfelds indizieren (sortieren)
END
INDEX ON %v_ID_Feld% TO "ID_Feld_sortiert"
SET INDEX TO "ID_Feld_sortiert"

COMMENT
Den aktuellen Wert des Zeichenbezeichnerfelds der Variable v_ID_Wert zuweisen.
Wenn v_Eingabetabelle erstmals geöffnet wird, ist der aktuelle Wert der erste Wert des Felds. Später hängt der aktuelle Wert von dem Datensatz ab, der durch das Skript gerade verarbeitet wird.
END
ASSIGN v_ID_Wert = %v_ID_Feld%

COMMENT
Anfangswert für die laufende Summe auf 0,00 setzen
END
ASSIGN v_laufende_Summe = 0,00

COMMENT
Die Tabelle einen Datensatz nach dem anderen verarbeiten. Für jeden eindeutigen Bezeichner eine laufende Summe des numerischen Felds berechnen
END
GROUP IF v_ID_Wert = %v_ID_Feld%
  ASSIGN v_laufende_Summe = v_laufende_Summe + %v_numerisches_Feld%
  EXTRACT %v_ID_Feld% %v_numerisches_Feld% v_laufende_Summe AS "%v_numerisches_Feld% laufende Summe" TO %v_Ausgabetabelle%
ELSE
  ASSIGN v_ID_Wert = %v_ID_Feld%
  ASSIGN v_laufende_Summe = 0,00
  ASSIGN v_laufende_Summe = v_laufende_Summe + %v_numerisches_Feld%
  EXTRACT %v_ID_Feld% %v_numerisches_Feld% v_laufende_Summe AS "%v_numerisches_Feld% laufende Summe" TO %v_Ausgabetabelle%
END

COMMENT Ausgabetabelle mit den berechneten laufenden Summen öffnen
OPEN %v_Ausgabetabelle%

COMMENT Standardverhalten wiederherstellen, damit ein Bestätigungsdialog vor dem Überschreiben von Dateien angezeigt wird
SET SAFETY ON

Die erstellten und initialisierten Variablen in der Registerkarte „Variablen“

Nach der Ausführung des Skripts werden die erstellten und initialisierten Variablen in der Registerkarte Variablen angezeigt.

Die mit dem ACCEPT-Befehl erstellten Variablen verwenden den Zeichendatentyp. Die mit dem ASSIGN-Befehl erstellten Variablen (v_ID_Wert, v_laufende_Summe) verwenden den Datentyp des zugewiesenen Werts.

Die Werte, die v_ID_Wert und v_laufende_Summe zugewiesen werden, werden ständig aktualisiert, während das Skript abgearbeitet wird. Die Registerkarte Variablen zeigt die Endwerte an, bevor das Skript abgeschlossen wird.

Informationen über die Systemvariablen ( WRITEn ) und ihr Nummerierungsschema erhalten Sie unter Aufsteigend nummerierte Systemvariablen.

Problembehandlung

Bei der Arbeit mit Variablen in Skripts sind zwei allgemeine Fehlerkategorien am häufigsten:

  • Unerwartete Ergebnisse Das Skript läuft bis zum Schluss ab, doch die Analyse enthält unter Verwendung der Variablen nicht die erwarteten Ergebnisse.

  • Datentypproblem Das Skript scheitert mit einer Fehlermeldung wie „Unterschiedliche Ausdrucksarten“ oder „Alphanumerischer Ausdruck ist erforderlich“.

Unerwartete Ergebnisse

Versuchen Sie bei der ersten Fehlerart die folgende Problembehandlung:

  1. Öffnen Sie im Navigator die Registerkarte Variablen.

  2. In der Analytics-Befehlszeile geben Sie DELETE ALL OK ein, um bestehende Variablen zu löschen.Analytics

    Wenn das Textfeld Befehlszeile nicht sichtbar ist, wählen Sie Fenster > Befehlszeile.

  3. Im Skript-Editor verwenden Sie die Option Schritt , um das Skript Zeile für Zeile zu durchlaufen und das Erstellen jeder Variable sowie die Zuweisung von Werten in der Registerkarte Variablen zu überwachen.

    Dadurch stellen Sie möglicherweise fest, dass einer Variablen nicht der beabsichtigte Wert zugewiesen wird und Ihre Skriptlogik angepasst werden muss. Weitere Informationen finden Sie unter Skripts testen und debuggen.

Hinweis

Eine schrittweise Ausführung von mehrzeiligen Befehlen wie GROUP, LOOP oder DEFINE FIELD . . . COMPUTED ist nicht möglich. Um Skriptlogik in dieser Situation zu testen, kopieren Sie sie ohne die umgebende Befehlssyntax in ein separates Skript.

Datentypproblem

Wenn Sie Skripts entwickeln, die Variablen verwenden, wird es wahrscheinlich zu Fehlern aufgrund nicht übereinstimmender Datentypen kommen. Fehler sind besonders dann wahrscheinlich, wenn Sie Konvertierungsfunktionen und den Variablenersatz in demselben Ausdruck kombinieren.

Es ist normal, dass Fehler auftreten. Man kann sie beheben, indem man verschiedene Ansätze testet und an die folgenden Prinzipien denkt:

  • Achten Sie genau auf die Datentypen in jedem Element eines Ausdrucks. Stimmen alle Datentypen in einem Ausdruck so überein, wie es durch ACLScript verlangt wird?

  • Denken Sie daran, dass der Variablenersatz absolut literal ist. Wenn Sie vermuten, dass der Variablenersatz einen Fehler verursacht, schauen Sie sich den präzisen Wert an, der in einer Variable gespeichert ist, und ersetzen ihn manuell in den Ausdruck. Die Durchführung dieses einfachen Problembehebungsschrittes kann die Problemursache bereits zeigen.

  • Indem Sie den Befehl DISPLAY VARIABLES an verschiedenen Stellen in einem Skript einfügen, können Sie den Status von Projektvariablen zu einem bestimmten Zeitpunkt erfassen.

  • Wenn Sie ein Skript Zeile für Zeile durchlaufen und Haltepunkte festlegen, kann die Problembehebung vereinfacht werden. Weitere Informationen finden Sie unter Skripts testen und debuggen.