Lesen und beachten Sie die Automation Anywhere-Dokumentation

Automation Anywhere Automation 360

Inhalt schließen

Inhalte

Inhalt öffnen

Erstellen Sie einen Iterator mithilfe des Package SDK

  • Aktualisiert: 4/23/2021
    • Automation 360 v.x
    • Erstellen
    • RPA Workspace

Erstellen Sie einen Iterator mithilfe des Package SDK

In Automation 360können Sie mit dem SDK-Paket einen Iterator erstellen. Ein Iterator wird zum Durchschleifen mehrerer Objekte ähnlichen Typs verwendet und wird zusammen mit dem Loop Paket verwendet. Es besteht aus zwei Methoden, Next und hasNext, die das eigentliche Objekt und einen booleschen Wert zurückgeben.

Erforderliche Anmerkungen

Wenn Iterator verwendet wird, gibt die nächste Methode den nächsten verfügbaren Wert zurück. Wenn keine weiteren Werte verfügbar sind, wird eine Ausnahme angezeigt. Die Methode hasNext prüft auf andere Werte und gibt FALSE zurück, wenn keine weiteren Werte verfügbar sind. In Automation 360wird bei der Ausführung der Schleife hasNext () zuerst aufgerufen, und next() wird nur dann aufgerufen, wenn hasNext() einen wahren Wert zurückgegeben hat.

Zum Erstellen eines Iterators sind die folgenden Anmerkungen erforderlich.

Anmerkung Nutzung
BotCommand Verwenden Sie die BotCommand -Anmerkung mit einem Iterator als commandType . Dadurch wird sichergestellt, dass das reine alte Java-Objekt (POJO) für die Erstellung eines Automation 360 Iterators geeignet ist.
CommandPkg Geben Sie beim Erstellen eines Pakets einen Namen, eine Bezeichnung und eine Beschreibung für die Anmerkung ein.
Idx Notieren Sie alle erforderlichen Parameter und Elementvariablen, die bei der Validierungsprüfung hilfreich sind, oder sie können in der Benutzeroberfläche für die Eingabe angezeigt werden. Geben Sie die IDX und den Typ an.
Paket Notieren Sie alle Parameter und Elementvariablen, die in der Benutzeroberfläche angezeigt werden. Diese Anmerkung wird ignoriert, wenn sie nicht vom IDXbegleitet wird.
HasNext Die Methode, die zum Testen aufgerufen werden muss, wenn die Iteration mehr Elemente enthält (gibt true zurück, wenn next() ein Element zurückgibt, anstatt eine Ausnahme zu werfen). Es muss einen booleschen Wert zurückgeben.

Wenn die Methode Parameter akzeptiert, müssen sie mit der IDXbeschriftet werden. Die Methode hasNext überprüft dies und gibt FALSE zurück, wenn keine weiteren Werte verfügbar sind. InAutomation 360, wenn Loop ausgeführt wird, wird hasNext() zuerst aufgerufen. Next() wird nur aufgerufen, wenn hasNext() einen wahren Wert zurückgibt.

Weiter Die Methode gibt den nächsten verfügbaren Wert in der Iteration zurück. Der Rückgabetyp ist ein Wert. Wenn kein weiterer Wert verfügbar ist, wird eine Ausnahme angezeigt.
Anwendungsbeispiel

Das Beispiel Use Case durchläuft die Anzahl der Male, zum Beispiel für das Java-Konstrukt ( int i=0; i<n; i++ ). Er akzeptiert den Wert von n aus dem Bot Creator , wenn der Bot erstellt wird.

  1. Erstellen Sie die POJO-Klasse mit der Geschäftslogik.

    Stellen Sie sicher, dass POJO über eine Methode verfügt und einen booleschen Wert zurückgibt. Dies wird als Vergleichsmethode dienen.

    @BotCommand(commandType=CommandType.Iterator)
    @CommandPkg(return_label = "Return the value in variable", node_label = ": {{times}} times", 
    label = "Iterator demo", description = "Iterate number of times", name = "iteratorTypeDemo", return_type = DataType.NUMBER)
    public class IteratorTypeDemo {
        @Idx(index = "1", type = AttributeType.NUMBER)
        @Pkg(label = "times", default_value = "10", default_value_type = DataType.NUMBER)
        @GreaterThanEqualTo("0")
        @NumberInteger
        @NotEmpty
        @Inject
    	private Double times = 10d;
    
    	private Double counter = 0d;
    
        @HasNext
        public boolean hasNext() {
    		return counter < times;
        }
    
        @Next
        public Value<Double> next() throws Exception{
    		if (counter >= times)
    			throw new Exception("Counter '"+ counter +"' is exceed the times limit '"+times+"'");
    
    		counter++;
            NumberValue result = new NumberValue();
            result.set(counter);
            return result;
        }
    
        public void setTimes(Double times) {
            this.times = times;
        }
    }
  2. Kommentieren Sie die POJO-Klasse, um sie für den Automation 360 Iterator zu aktivieren und ein Paket zu erstellen.
    @BotCommand(commandType = CommandType.Iterator)
    @CommandPkg(return_label = "Return the value in variable", node_label = ": {{times}} times",
    	label = "Iterator demo", description = "Iterate number of times", name = "iteratorTypeDemo", return_type = DataType.NUMBER)
    public class IteratorTypeDemo {
    
    	private Double times = 10 d;
    	private Double counter = 0 d;
    
    	public boolean hasNext() {
    		return counter < times;
    	}
  3. Kommentieren Sie die Methoden hasNext() und Next() entsprechend.
    @HasNext
    public boolean hasNext() {
    	return counter < times;
    }
    
    @Next
    public Value < Double > next() throws Exception {
    	if (counter >= times)
    		throw new Exception("Counter '" + counter + "' is exceed the times limit '" + times + "'");
    
    	counter++;
    	NumberValue result = new NumberValue();
    	result.set(counter);
    	return result;
    }

    Der Methoden werden einfach zu verwenden benannt und sind parallel zum Java-Verfahren Iterator-Schnittstelle. Es gibt keine Einschränkungen seitens des SDK bei der Benennung Methoden.

    Verwenden Sie in einem Iterator keine Parametermethoden, sondern die Setter-Injektion.

  4. Kommentieren Sie die Variablen mit IDX und Pkg.

    Fügen Sie @NotEmpty hinzu, um sicherzustellen, dass der Wert nicht Null ist, und fügen Sie @GreaterThanEqualTo hinzu, um sicherzustellen, dass der Wert immer größer als 0ist.

    @Idx(index = "1", type = AttributeType.NUMBER)
    @Pkg(label = "times", default_value = "10", default_value_type = DataType.NUMBER)
    @GreaterThanEqualTo("0")
    @NotEmpty
    @Inject
    private Double times = 10 d;

    Der Attributtypnummer gibt ein Doublezurück.

Feedback senden