Vorheriges Thema: Unterbrechen eines Schleifen-OperatorsNächstes Thema: Indizieren der Schleifenanzahl für andere Zwecke


Schleifen durch indizierte Elemente eines Datensatzfelds

Anstatt die integrierten Systemvariablen CurrentLoopIteration und OverallLoopDuration zu verwenden, können Sie anwenderspezifische Schleifenvariablen erstellen und sie selber verwalten. Für Vorgängerversionen von CA Process Automation ist diese Methode erforderlich. Zum Beispiel könnten Sie Logik erstellen, um die Dauer von der Startzeit der ersten Iteration einer Schleife zur aktuellen Zeit für jede Schleife berechnen. Sie könnten sogar Vor- und Nachbearbeitungscodes verwenden, um die Eingabe in eine Schleife festzulegen, wie z. B.:

Um eine Schleife durch alle Elemente eines indizierten Datensatzfelds laufen zu lassen, verwenden Sie zunächst einen Operator "JavaScript ausführen" in der Gruppe "Hilfsprogramme", um das Element "CurrentIndex" für das Datensatzfeld auf 0 zu initialisieren. (Beispielsweise initialisiert der folgende Ausdruck das "CurrentIndex"-Element für die Prozessvariable "X" auf 0.)

Process.X.CurrentIndex=0;

So lassen Sie Schleifen durch indizierte Elemente eines Datensatzfelds laufen:

  1. Verbinden Sie die Ausgangsverknüpfung "Erfolgreich" des Operators "JavaScript ausführen" mit dem Operator, der in einer Schleife ausgeführt werden soll.
  2. Verwenden Sie im Auswahlmenü "Datensatz" des gewünschten Operators auf der Registerkarte "Schleife" eine Größenelementeinstellung für das indizierte Feld als Wiederholungsanzahl. Beispiel:
    Process.X.Size.
    
  3. Um die "CurrentIndex"-Einstellung nach jeder neuen Schleifeniteration zu erhöhen, verwenden Sie einen Ausdruck des Nachbearbeitungscode. Beispiel:
    Process.X.CurrentIndex=Process.X.CurrentIndex+1;
    

    In diesem Fall ist das Element "CurrentIndex" der Zähler für die Schleife. Sie können die "CurrentIndex"-Einstellung verwenden, um auf Elemente des indizierten Felds in berechneten Ausdrücken zuzugreifen. Beispiel:

    Process.X[Process.X.CurrentIndex];
    

    Hinweis: Wenn Sie Programmiersprachen wie z. B. Visual BASIC gewöhnt sind, die Arrays auf der Basis von 1 verwenden, denken Sie daran, dass ein indiziertes Datensatzfeld ein Array auf der Basis von 0 ist. Bei Arrays auf der Basis von 1 wird das erste Element mit 1 und das letzte Element mit der Anzahl der Elemente indiziert. Das erste Element eines indizierten Datensatzfelds wird mit 0 indiziert, und das letzte Element erhält einen Index, der um einen Wert kleiner ist als der Wert des Größenelements für das Feld.

Zusätzlich zum Zugriff auf Elemente eines indizierten Datensatzfeldes können Sie die Iterationszahl während Schleifenverarbeitung für andere Zwecke nachverfolgen. Verwenden Sie eine Prozessvariable wie z. B. process.i für die Indexvariable. Initialisieren Sie die Prozessvariable in einem Berechnungsoperator des Interpretationsmoduls, der vor dem Operator "Schleife" steht, auf seinen Startwert. Zum Beispiel: process.i=1. Um die Indexvariable nach jeder neuen Schleifeniteration zu erhöhen, verwenden Sie einen Ausdruck im Nachbearbeitungscode für den Operator. Beispiel:

Process.i=Process.i+1;

Hinweis: Die Schritte in diesem Thema sind nicht mehr erforderlich. Allerdings sind sie als Referenz mit dem Legacy-Code enthalten. Wenn die neueren Systemvariablen verwendet werden, gilt nur Schritt 2, und Schritt 3 wird folgendermaßen ersetzt. Verwenden Sie die Variable CurrentLoopIteration des Schleifen-Operators, um auf Elemente des indizierten Felds in berechneten Ausdrücken zuzugreifen. Beispiel:

Process.X[Process[OpName].CurrentLoopIteration];