Using Application Classes From Java to PeopleCode
You call a Java program from an Application Class the same way you do using any other PeopleCode program, that is, by using one of the existing Java class built-in functions.
Calling an Application Class from a Java program has the following considerations:
-
Application Classes must be accessed using the object built-in functions, such as CreateObject, ObjectDoMethod, ObjectGetProperty, and so on.
-
You cannot declare a variable of type HR.Package.SomeClass in your Java program. The variable must be of type Object.
-
There is no pre-pending the word ‘get’ or ‘set’ for properties. All classes, methods, and properties are passed as strings.
The following is an example of how to call an Application Class from a Java program.
This is the Java program:
package com.peoplesoft.pcode;
import PeopleSoft.PeopleCode.*;
public class foo {
public foo() {
}
public String getString() {
Object foo = Func.CreateObject("GTP:Foo", new Object[]{});
return (String)Func.ObjectDoMethod((Peer)foo, "GetString", new Object[]{});
}
}
The following is the Application Class Foo, in the Application Package Foo:
class Foo
method GetString() Returns string;
end-class;
method GetString
/+ Returns String +/
Return "Hello";
end-method;
The following is the PeopleCode program that starts it all:
Local JavaObject &foo = CreateJavaObject("com.peoplesoft.pcode.foo");
GTP_PARSER.GTP_STR_RESULT = &foo.getString();