• Bharani
  • NEWBIE
  • 0 Points
  • Member since 2013

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 0
    Questions
  • 1
    Replies

Hello,

 

We have been able to connect ODI (Oracle Data Integrator) tool to a Salesforce Developer account and perform a reverse engineering process to load salesforce objects' data models into ODI.

 

We have developed an apex class with a web service method to call another batch apex class method available in the Salesforce developer account.

 

Our requirement is to call the web service method (hence the batch apex) from ODI. In salesforce, we have downloaded the partner.wsdl and generated the wsdl file for global apex class which contains the web service method. In ODI, there is a tool called ODiInvokeWebService which can be used to call a wsdl file. When we referenced the wsdl file for the apex class and invoke the method which will call the batch apex, we are having the following error message in ODI:

 

com.sunopsis.wsinvocation.SnpsWSInvocationException: INVALID_SESSION_ID: Invalid Session ID found in SessionHeader: Illegal Session

 at com.sunopsis.wsinvocation.client.a.a.d.requestReply(d.java)
 at com.sunopsis.graphical.wsclient.f.b(f.java)
 at com.sunopsis.graphical.tools.utils.swingworker.v.call(v.java)
 at edu.emory.mathcs.backport.java.util.concurrent.FutureTask.run(FutureTask.java:176)
 at com.sunopsis.graphical.tools.utils.swingworker.l.run(l.java)
 at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
 at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
 at java.lang.Thread.run(Thread.java:662)

at com.sunopsis.wsinvocation.client.a.a.d.requestReply(d.java)

 at com.sunopsis.graphical.wsclient.f.b(f.java) at com.sunopsis.graphical.tools.utils.swingworker.v.call(v.java)

 at edu.emory.mathcs.backport.java.util.concurrent.FutureTask.run(FutureTask.java:176)

 at com.sunopsis.graphical.tools.utils.swingworker.l.run(l.java)

 at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)

at java.lang.Thread.run(Thread.java:662)

 

 

The issue is that, we are also able to initiate a login using the partner.wsdl in ODI but we do not know how to pass the session ID value to the global apex class wsdl. The only method in the global apex class wsdl available to call from ODI, is the web service method to call the batch apex. There is no login method as such as in partner.wsdl.

 

Can you please tell us a way to create a valid session which will allow us to call the batch apex in Salesforce?

 

Thanks and Regards,

Shamina