CI to Java Interface
In this example we will see that how a Component Interface developed in PeopleSoft system can be used in other languages. Here, we have showed it for Java API's.
Once the CI development is completed, then first build the API's.
Select the API's to Build.
All
the Java API’s will be generated under C:\Deepak\javaprograms\PeopleSoft\Generated\CompIntfc
Once the API's are built, generate the Java Template.
Place
this file D91_USERPRFL_CI.java under - C:\Deepak\javaprograms\src
Folder
Structure
Set
the classpath environment variable to -
C:\PT8.50\web\psjoa\psjoa.jar;C:\pt8.50\class;C:\Deepak\javaprograms\class
Compile
the java API’s
Navigate
to the folder where all the java api’s are stored.
Compile
the java API’s and place all the class files under C:\Deepak\javaprograms\class
Javac
–d C:\Deepak\javaprograms\class *.java
Compile
the java template
Before
compiling, modify the java template to create a package –
javac
-d C:\Deepak\javaprograms\class D91_USERPRFL_CI.java
The
java template file will be generated under the package DKR_JavaPrograms
Now
run the java template file.
C:\Deepak\javaprograms\src>java
src.DKR_JavaPrograms.D91_USERPRFL_CI
Enter
Application Server Machine Name: 192.168.88.130
Enter
Application Server Port
Number: 9000
Enter
PeopleSoft UserID: PS
Enter
PeopleSoft UserID Password: PS
Enter
Oprid: PS
And here we get the output.
Compiling and Running in Eclipse
First, create a new project.
Click
Apply and OK
Click
on Libraries and the psjoa.jar file from PS_HOME/web/psjoa/psjoa.jar
Click
Add External JAR’s
Click
on Finish.
Build
the API’s
Now,
refresh the project folder.
Now, open the class and copy it into the above modified java template.
The
only change is the change in the package.
Now,
run this program.
And, here we get the outpu.
Hi, thanks for the details explanation. We have some security concerns sharing PS login to external apps. Is there a way to use a different OPRID? If yes, what roles the user will need, other than giving full access to the CI's used.
ReplyDeleteThanks
Jag
It depends on the transaction you are performing through CI... You need to take care of data level security (row level security) for the user that you will be creating for the integration... Apart from that I don't think so anything else would be required...
DeleteI have some problem with consuming a PeopleSoft Component Based WSDL , to a third party Java application in a remote machine. Below is the description
ReplyDeleteIntroduction of assignment :
I have a soap WSDL from PeopleSoft which is based on PeopleSoft Component Interface.
This WSDL is supposed to provide the service to generate the case-ID based on valid user form, otherwise return failure message.
Input takes:
A form data from user.
Output is:
Case Id if user data validation is ok.
My problem in understanding PeopleSoft WSDL:
The WSDL I got it does not have implementation of
Component Interface(which has Service methods definition), it is only providing me the contract, no implementation of service methods.
My Questions:
1) Do I need to write the implementation for the Component Interface?
2) If yes, what will be the implementation contents(High level concept only)?
3) If no, and implementation of CI is in PeopleSoft code, how can I Instantiate the
implementation class to call the service method, as I don’t know the implementation class name?
4) What are the extra custom environment setups needed in this scenarios to make a successful call for the
service method of PeopleSoft WSDL and get response.
Hi Sumita,
DeleteI am sorry for delayed response. I hope you would have resolved the issues by now.
You don't need any separate implementation for CI. When the third party will consume the WSDL generated in PeopleSoft then depending on that systems language appropriate objects will get created to consume this WSDL.
Can you open the CI in app designer and see all the methods are available? Also, have you given security to service operation and does the user in anonymous node have access to service operation and ci?
Hi Deepak
ReplyDeleteI would be very thankful to you if you can reply me back with answer. I am very new in this field and can't move ahead right now. So, any help would be highly appreciated.
Thanks Bobby