Aktivitäten
Neuestes
False
Ausführen statischer und Objektmethoden
Entwickleraktivitäten
Letzte Aktualisierung 23. Apr. 2024
Ausführen statischer und Objektmethoden
To exemplify how to use this activity package, we have built an automation process which showcases its capabilities of running both static and object methods, split into two parts:
- Im ersten Teil wird eine Java-Bibliothek mit der Aktivität Java Scope initialisiert, dann wird eine
.jar
-Datei mit dem Java-Code mit Load Jargeladen. Eine statischegetArrayInt
-Methode wird ausgeführt, indem die Aktivität Invoke Java Method verwendet wird, ein Array von Integern zurückgegeben und in einem benutzerdefiniertenJavaObject
-Datentyp gespeichert wird. Anschließend wird mithilfe der Aktivität „ Convert Java Object “JavaObject
in ein .NET-Array von Integern konvertiert – eineInt32[]
-Variable. Jeder darin enthaltene Wert wird dann über eine For Each -Aktivität in das Ausgabe -Panel geschrieben. Dies zeigt, wie einfach es ist, zwischen bestimmten Java- und .NET-Datentypen zu wechseln und deren Werte dann nach Belieben zu ändern. - Im zweiten Teil wird innerhalb desselben Java-Scopes wie oben erwähnt eine Create Java Object- Aktivität verwendet, um ein weiteres
JavaObject
zu erstellen, das eineCoordinate
-Klasse enthält. Durch die Verwendung einer anderen Aktivität „ Invoke Java Method “ wird die MethodegetCoordinateSum
ausgeführt. Object-Methoden können ähnlich wie statische Methoden aufgerufen werden, aber anstelle von TargetTypewird diesmal die TargetObject- Eigenschaft verwendet, da wir jetzt eineJavaObject
-Variable anstelle eines Arrays von Integern verwenden. Die Methode gibt ihre Werte in einem drittenJavaObject
zurück und wird mithilfe einer anderen „Convert Java Object “-Aktivität wieder in eine .NET-VariableDouble
konvertiert. Der letzte Schritt besteht darin, ein Meldungsfeld anzuzeigen, das den Wert in der VariablenDouble
enthält.
So kann die Demo aufgebaut werden:
- Studio öffnen und einen neuen Prozess starten.
- Ziehen Sie eine Aktivität Java-Bereich ( Java Scope ) in den Workflow-Designer (Workflow Designer). Da in der Eigenschaft Java-Bibliothekspfad ( Java Library Path ) kein Pfad angegeben ist, verwendet der Bereich zum Initialisieren der Java-Bibliothek per Standard die Umgebungsvariable PATH (Path).
- Ziehen Sie eine Aktivität Jar laden (Load Jar) in das Panel Designer (Designer).
- Ordnen Sie den Pfad im Eigenschaftsfeld Jar-Pfad (JarPath) der Datei
Objects.jar
zu. - Ziehen Sie eine Aktivität Invoke Java Method unter Load Jar.
-
Geben Sie den Namen der Methode in die Eigenschaft Name der Methode (MethodName) ein und tragen Sie dann in das Feld Zieltyp (TargetType) den Namen des Java-Pakets ein und die Klasse, die Sie verwenden möchten.
Hinweis: Die Eigenschaft TargetType muss im Formatpackage.name.ClassName
angegeben werden. Wenn wir beispielsweise ein Paket namenscom.package.example
haben, das die KlasseUser.Profile
enthält, und wir es verwenden möchten, sollte die TargetType- Eigenschaft wiecom.package.example.User.Profile
aussehen. - Erstellen Sie eine Variable
JavaObject
mit dem NamenJavaObjectResultStaticMethod
zum Speichern der von der Aktivität Java-Methode aufrufen (Invoke Java Method) zurückgegebenen Werte und stellen Sie diese in das Eigenschaftsfeld Ergebnis (Result). - Fügen Sie dem Workflow eine Variable zum Konvertieren von Java-Objekten hinzu und platzieren Sie die Variable
JavaObjectResultStaticMethod
im Eigenschaftsfeld JavaObject . - Wählen Sie im Eigenschaftsfeld TypeArgument den Variablentyp
System.Int32[]
aus. - Erstellen Sie eine
Int32[]
-Variable mit dem NamenResultStaticMethod
und fügen Sie diese im Eigenschaftsfeld Ergebnis (Result) hinzu. - Ziehen Sie eine Aktivität Für Jeden (For Each) in das Panel Designer (Designer).
- Legen Sie die TypeArgument- Eigenschaft auf
Int32
fest, und weisen Sie die VariableResultStaticMethod
dem Eigenschaftsfeld Werte zu. Auf diese Weise können Sie jede ganze Zahl Ihres Arrays durchgehen. - Ziehen Sie eine „Write Line“ -Aktivität in den Textkörper der „ For Each “-Aktivität und weisen Sie
value.ToString
in deren Text -Eigenschaft zu. Auf diese Weise können Sie zur Laufzeit alle Werte in die VariableResultStaticMethod
im Ausgabe -Panel schreiben.
Ihr Workflow sollte folgendermaßen aussehen:
- Fügen Sie dem Workflow unter der im vorigen Beispiel verwendeten Aktivität Java-Bereich (Java Scope) eine Aktivität Java-Objekt erstellen (Create Java Object) hinzu.
- Verwenden Sie den Namen des Java-Pakets und die Klasse
Coordinate
, um die Eigenschaft TargetType (uipath.java.test.Coordinate
) auszufüllen. - Erstellen Sie eine Variable im Eigenschaftsfeld Ergebnis , indem Sie die Tastenkombination Strg + K verwenden, und nennen Sie sie
JavaObject
. - Ziehen Sie eine Aktivität Java-Methode aufrufen (Invoke Java Method) in das Panel Designer (Designer).
- Um die Summe der Daten abzurufen, die von der Klasse
Coordinate
eingegeben wurde, schreiben Sie die MethodegetCoordinateSum
in die Eigenschaft Name der Methode (MethodName). - Erstellen Sie eine Variable im Eigenschaftsfeld Ergebnis , indem Sie die Tastenkombination Strg + K verwenden, und nennen Sie sie
JavaObjectResultObjectMethod
. - Fügen Sie die Variable
JavaObject
zum Feld Zielobjekt (TargetObject) hinzu. - Fügen Sie eine Aktivität Java-Methode konvertieren (Convert Java Method) zu dem Workflow hinzu.
- Fügen Sie die Variable
JavaObjectResultObjectMethod
zum Feld Java-Objekt (JavaObject) hinzu. - Wählen Sie in der Dropdownliste TypeArgument -Eigenschaft den Datentyp
System.Double
aus. - Erstellen Sie eine neue Variable
Double
mit dem NamenObjectMethodResultValue
und fügen Sie diese im Eigenschaftsfeld Ergebnis (Result) hinzu. - Ziehen Sie ein Meldungsfenster in das Panel Designer (Designer).
- Weisen Sie der Text -Eigenschaft
ObjectMethodResultValue.ToString
zu, um die Werte in der VariablenDouble
anzuzeigen. Zur Laufzeit wird dieJavaObject
erstellt, die dieCoordinate
-Klasse enthält, dann wird diegetCoordinateSum
-Methode ausgeführt und ihre Ergebnisse werden in einer anderenJavaObject
zurückgegeben. Die Ergebnisse werden dann in eine .NETDouble
-Variable konvertiert, die dann in einer MessageBoxangezeigt wird.
Der endgültige Workflow sollte folgendermaßen aussehen: