activities
latest
false
- Overview
- Cryptography
- Database
- Java
- Python
- WebAPI
Running Static and Object Methods
Developer Activities
Last updated Oct 22, 2024
Running Static and Object Methods
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:
- For the first part, a Java library is initialized by using the Java Scope activity, then a
.jar
file containing the Java code is loaded by using Load Jar. A StaticgetArrayInt
method is run by using the Invoke Java Method activity, returning an array of integers and storing it in aJavaObject
custom data type. Then, by using the Convert Java Object activity, theJavaObject
is converted to a .NET array of integers - anInt32[]
variable. Each value it contains is then written in the Output panel via a For Each activity. This shows how easy it is to switch between specific Java and .NET data types and then manipulate their values any way you want. - In the second part, inside the same Java Scope mentioned previously, a Create Java Object activity is used to create another
JavaObject
containing aCoordinate
class. By using another Invoke Java Method activity, thegetCoordinateSum
method is run. Object methods can be called similarly to static methods but, instead of using the TargetType, this time the TargetObject property is used, as we are now utilizing aJavaObject
variable instead of an array of integers. The method returns its values in a thirdJavaObject
and is converted back to a .NETDouble
variable by using another Convert Java Object activity. The final step is to display a Message Box which contains the value in theDouble
variable.
This is how the demo can be built:
- Open Studio and start a new Process.
- Drag a Java Scope activity to the Workflow Designer. Because no path is specified in the Java Library Path property, the Scope defaults to using the PATH environmental variable to initialize the Java Library.
- Drag a Load Jar activity to the Designer panel.
- Assign the path to the
Objects.jar
file in the JarPath property field. - Drag an Invoke Java Method activity after Load Jar.
-
Input the method name in the MethodName property and then fill in the TargetType field with the Java package name and the class you want to use.
Note: The TargetType property must be specified in the formpackage.name.ClassName
. For example, if we have a package calledcom.package.example
which contains the classUser.Profile
and we want to use it, then the TargetType property should look likecom.package.example.User.Profile
. - Create a
JavaObject
variable, calledJavaObjectResultStaticMethod
, to store the values returned by the Invoke Java Method activity and place it into the Result property field. - Add a Convert Java Object variable to the workflow and place the
JavaObjectResultStaticMethod
variable into the JavaObject property field. - In the TypeArgument property field, select the
System.Int32[]
variable type. - Create a new
Int32[]
variable, calledResultStaticMethod
, and add it in the Result property field. - Next, drag a For Each activity to the Designer panel.
- Set the TypeArgument property to
Int32
, and assign theResultStaticMethod
variable to the Values property field. This enables you to go through each integer of your array. - Drag a Write Line activity into the Body of the For Each activity and assign
value.ToString
into its Text property. This helps you write all the values in theResultStaticMethod
variable in the Output panel, at runtime.
Your workflow should look like this:
- Add a Create Java Object activity to the workflow, under the Java Scope activity used in the previous example.
- Use the name of the Java package and the
Coordinate
class to fill in the TargetType property -uipath.java.test.Coordinate
. - Create a variable in the Result property field by using the Ctrl + K hotkey and name it
JavaObject
. - Drag an Invoke Java Method activity to the Designer panel.
- To get the sum of the data returned by the
Coordinate
class, write thegetCoordinateSum
method into the MethodName property. - Create a variable in the Result property field by using the Ctrl + K hotkey and name it
JavaObjectResultObjectMethod
. - Add the
JavaObject
variable in the TargetObject field. - Add a Convert Java Object activity to the workflow.
- Add the
JavaObjectResultObjectMethod
variable in the JavaObject field. - In the TypeArgument property drop-down, select the
System.Double
datatype. - Create a new
Double
variable, calledObjectMethodResultValue
, and add it to the Result property field. - Drag a Message Box to the Designer panel.
- Assign
ObjectMethodResultValue.ToString
to the Text property to display the values inside theDouble
variable. At runtime, theJavaObject
is created, containing theCoordinate
class, then thegetCoordinateSum
method is run and its results are returned in anotherJavaObject
. The results are then converted to a .NETDouble
variable which is then displayed in a MessageBox.
The final workflow should look like this: