Invoke ODI Scenario using OdiInvokeWebService

Invoke ODI Scenario using OdiInvokeWebService:

In my earlier post i have written, how to invoke odi scenario using webservice by taking the help of Java EE Agent. Today I will show you how to do the same using local agent and with the help of odi tool named as “OdiInvokeWebService”.

Please ensure that you have started the localgent. To verify this, use below URL in your browser. If you see wsdl screen then we are good to go.

http://localhost:20910/oraclediagent/OdiInvoke?wsdl

odiinvokewebservice1

In ODI package drag and drop the OdiInvokeWenService and provide the URL. Next click on Advanced Button.

odiinvokewebservice2

Click on the earth button to connect.

odiinvokewebservice3

 

Now you can see all the methods available in left panel. Here we will go with requestPortType. In this post, our objective is to  invoke an ODI Scenario using OdiInvokeWebservice.

 

Okay, select the invokeStartScen in left panel and provide the parameters as per your repository information. If you dont have any variables/parameters then just delete it.  Next click on the green earth button ( location 4) to invoke the odi scenario.

odiinvokewebservice4

 

Immediately you can see the response which includes the session id information.

 

 

odiinvokewebservice5

To verify this execution, go to operator and see the session history.  You can see the scenario must be started with session ID 2520091 ( you might have different session id 😀 ).

Want a response file ? Then just provide the file information as given below.

odiinvokewebservice6

Contents of the response file

<?xml version = ‘1.0’ encoding = ‘UTF-8’?>
<ns2:OdiStartScenResponse xmlns:ns2=”xmlns.oracle.com/odi/OdiInvoke/”>
<Session>2521091</Session>
</ns2:OdiStartScenResponse>

 

Thats all for today.

Thanks for reading.

1 Thank you for your recommendation.

About the author

Bhabani(http://dwteam.in) - Currently Bhabani is working as Sr Development Engineer at Harman International. He has good expertise on Oracle, Oracle Data Integrator, Pervasive Data Integrator, MSBI, Talend and Java. He is also contributing in ODI-OTN forum for last 5 years. He is from India. If you want to reach him then please visit contact us page. If you have any doubts or concerns on the above article, please put your question here. Dw Team will try to respond it as soon as possible. Also dont forget to provide your comments / suggestions / feedback for further improvement. Thanks for your time.

Similar Posts

18 comments

Hi Ranjan ,

When i try to click on earth button to connect to it , i am getting below error .

Com.sunopsis.wsinvocation.SnpsWSInvocationException: Cannot connect

Can you plese help me on this ?

Regards,
Karthik

Anindya Chatterjee / Reply

Hi Bhabani,
For my case I’m using invokeStartScenWithCallback operation.But here the confusion comes what is SessionName and Keywords and how to capture these inside variable?
Thanks
Anindya
sample req:-

SUPERVISOR
xxxxxx
WORKREPo

Execute_Interface
001
GLOBAL
true


5

Anindya Chatterjee / Reply

oh ho payload not showing:-
\\\\\\\

SUPERVISOR
xxxxxx
WORKREPo

Execute_Interface
001
GLOBAL
true

5

//////////////////////

Anindya Chatterjee / Reply

Sorry Bhabani,
Can’t upload the payload please just told me what is SessionName and Keywords inside request xml payload and how to capture them?

Thanks

Anindya Chatterjee / Reply

Hi Bhabni,
Any update?
Thanks
Anindya

Pramod Somvanshi / Reply

Hi Sir,

I have a requirement where i need to dynamically build SOAP request from table data and use it to INVOKE Fusion Application web services through ODI InvokeWebservice tool. Please suggest optimal way to do this. If it can be done using procedure (by modifying the target generated xml to make it a soap request using procedure) then please enlighten the way to it. Any help would be greatly appreciated.

Thanks

Hi Sir,
I have a requirement where i need to dynamically build SOAP request from table data and use it to INVOKE Fusion Application web services through ODI InvokeWebservice tool. Please suggest optimal way to do this. If it can be done using procedure (by modifying the target generated xml to make it a soap request using procedure) then please enlighten the way to it. Any help would be greatly appreciated.

Hi Sir,

I am using the ODI Utility “OdiInvokeWebService” to call MSMDPUMP.DLL service.

WSDL URL: file:/dump/ocs/misc/xmla.wsdl
port type: MsXmlAnalysisSoap
operation: Execute
XML Request:

PRD1
Destination

ProcessUpdate
UseExisting

Request file: Empty
Storage Mode for response:New File
File for Encoding response File: empty
Xml Encoding For Response File: UTF-8
Response File: file:/dump/ocs/misc/response.xml
Response File Format= XML

Error Message:
com.sunopsis.wsinvocation.SnpsWSInvocationException: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Error during saving a multipart message
at oracle.odi.wsinvocation.client.impl.jaxws.OdiJaxwsParserImpl.createMessage(OdiJaxwsParserImpl.java:361)
at com.sunopsis.wsinvocation.client.impl.AbstractJWSDLParserImpl.getWebServiceMessage(AbstractJWSDLParserImpl.java:285)
at com.sunopsis.wsinvocation.client.impl.AbstractJWSDLParserImpl.getWebServiceRequestByOperation(AbstractJWSDLParserImpl.java:297)
at com.sunopsis.dwg.tools.common.WebserviceUtils.invoke(WebserviceUtils.java:99)
at com.sunopsis.dwg.tools.InvokeWebService.actionExecute(InvokeWebService.java:327)
at com.sunopsis.dwg.function.SnpsFunctionBase.execute(SnpsFunctionBase.java:296)
at oracle.odi.runtime.agent.execution.SessionTask.execIntegratedFunction(SessionTask.java:942)
at oracle.odi.runtime.agent.execution.SessionTask.executeOdiCommand(SessionTask.java:575)
at oracle.odi.runtime.agent.execution.cmd.OdiCommandExecutor.execute(OdiCommandExecutor.java:44)
at oracle.odi.runtime.agent.execution.cmd.OdiCommandExecutor.execute(OdiCommandExecutor.java:20)
at oracle.odi.runtime.agent.execution.TaskExecutionHandler.handleTask(TaskExecutionHandler.java:50)
at oracle.odi.runtime.agent.execution.SessionTask.processTask(SessionTask.java:214)
at oracle.odi.runtime.agent.execution.SessionTask.doExecuteTask(SessionTask.java:135)
at oracle.odi.runtime.agent.execution.AbstractSessionTask.execute(AbstractSessionTask.java:856)
at oracle.odi.runtime.agent.execution.SessionExecutor$SerialTrain.runTasks(SessionExecutor.java:2004)
at oracle.odi.runtime.agent.execution.SessionExecutor.executeSession(SessionExecutor.java:544)
at oracle.odi.runtime.agent.processor.TaskExecutorAgentRequestProcessor$1.doAction(TaskExecutorAgentRequestProcessor.java:709)
at oracle.odi.runtime.agent.processor.TaskExecutorAgentRequestProcessor$1.doAction(TaskExecutorAgentRequestProcessor.java:624)
at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:203)
at oracle.odi.runtime.agent.processor.TaskExecutorAgentRequestProcessor.doProcessStartAgentTask(TaskExecutorAgentRequestProcessor.java:789)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:330)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$2700(StartSessRequestProcessor.java:80)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:957)
at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:177)
at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:110)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
at oracle.odi.runtime.agent.execution.job.OdiJob.call(OdiJob.java:73)
at oracle.odi.runtime.agent.execution.job.OdiJob.call(OdiJob.java:73)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Error during saving a multipart message
at com.sun.xml.internal.messaging.saaj.soap.MessageImpl.saveChanges(MessageImpl.java:1124)
at oracle.odi.wsinvocation.client.impl.jaxws.OdiJaxwsParserImpl.createMessageUsingSAAJ(OdiJaxwsParserImpl.java:499)
at oracle.odi.wsinvocation.client.impl.jaxws.OdiJaxwsParserImpl.createMessage(OdiJaxwsParserImpl.java:249)
… 32 more
Caused by: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Unable to get header stream in saveChanges:
at com.sun.xml.internal.messaging.saaj.soap.MessageImpl.saveChanges(MessageImpl.java:1101)
… 34 more
Caused by: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: SOAP exception while trying to externalize:

Can you plese help me on this ?
Regards,
Sona

Sona,
What version of ODI you are using? Can you please explain bit more like what you did and at what time you see this error?

Sona / Bhabani,

Is this issue been fixed? I am encountering this ODI error and wondering what you all did to fix this. I am using ODI 12c by the way.

com.sunopsis.wsinvocation.SnpsWSInvocationException: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Error during saving a multipart message
at oracle.odi.wsinvocation.client.impl.jaxws.OdiJaxwsParserImpl.createMessage(OdiJaxwsParserImpl.java:361)
at com.sunopsis.wsinvocation.client.impl.AbstractJWSDLParserImpl.getWebServiceMessage(AbstractJWSDLParserImpl.java:285)
at com.sunopsis.wsinvocation.client.impl.AbstractJWSDLParserImpl.getWebServiceRequestByOperation(AbstractJWSDLParserImpl.java:297)

Hi Olan, I havnt had time to see this issue.I have updated Sona on this. She might tell you the update. Otherwise raise one SR.

Bhabani, I really appreciate the prompt response! Yes, I have already placed an SR in Oracle Support. Thanks!

Bhabani,
Sorry There is Problem in http://dwteam.in/invoke-odi-scenario-using-odiinvokewebservice/ , so i had emailed you.
please check your mailbox.

Very good explanation.

Hi ,
Should this be executed from inside the package.
Can we generate a scenario of this package and execute ?

Hi,
Thank you for your Answers.
I’ve solved this problem.
now I have this error in executing in local Agent mode:
ODI-30000: Error while parsing request file.
I am using the ODI Utility “OdiInvokeWebService”
to invoke MSMDPUMP.DLL service.
I have a WSDL file in : file:///C:\SSAS\xmla_1.wsdl
and Request File is : C:/SSAS/request_1.xml
Thank you in advance

Hi Everyone
Please guide how to call the webservice dynamically in odi uisng package.

Leave a replay to Pramod Somvanshi Cancel reply

required*

Are you a human? *