Invoke ODI Scenario using Web Service

Invoke ODI Scenario using Web Service:

Here is the post  with brief description on invoking ODI scenario from third party applications. This will help to call scenarios, loadplans etc based on custom requirement that can be triggered from a different applications all together.

Ok to start with, you need to have Weblogic 10.3.6 and Jdeveloper installed on your computer. If you do not know where to download, click on this link.
Keep in mind that when you are going to install Jdeveloper, install it in a different directory rather than the existing middleware home.
 Additionally, you need to ensure that you have configured Java EE Agent and it is up and running at the moment. If you have not configured then go through this link set it up. 

Now if your Java EE Agent is up then login to the weblogic admin console and click the deployments as shown in below screenshots





Click on OdiInvoke and then go to Testing tab. Right now you can see the WSDL and Test client link. If you click on Test client you can see the page in web browser where we can directly invoke scenarios, loadplans,scenario call back, scenario get status etc. You just have to change the parameter available in soap envelope. Once done, click on the invoke button. This will lunch the scenario in ODIStudio.

If you click on it, it will open with a test client as shown below. Thats quite intuitive as you have the flexibility to execute it right away.

If you want store the file then curl it or check it on a browser.

Now you can use odi studio or any third party application to invoke it. In my case I am creating a generic project in Jdeveloper.

Now create one webservice in the new project where we will be using the WSDL we got from admin console.

Copy the WSDl and paste it in the URL to see the available methods odi webservice.



Here we will go with OdiInvoke. For call back you must have another application listening on specific port.

Bangon!! Did you notice the auto generated code for wsdl methods. That is definitely going to save some of your time. And yes thats the point of using an IDE.

Make sure the import is marked with green tick mark. If you see any warnings then you need to fix it before moving to next step.

Anyway at this point we have everything setup. Lets start the service and wait untill HTTP Analyzer comes up.


Okay. Does everything looks perfect to you ???? Nope ?


Hmmm, the WSDL seems to be incorrect to me. Its not exactly like we saw in the browser. So lets fix it first before we move to to next step.
Follow the steps to correct it.


Steps to change the URL:


Select odiInvokeScen from Operation drop  down ( to start the scenario ). Provide the correct parameters and hit the send request button.


Woohoo !!!  Here is the session id 2356091 of the scenario currently started.


Open ODIStudio to verify the session details. There you can see the same session id we got in JDeveloper.

Thats all for the day.  Comments are always welcome. See you in my next post friends.
Cheers 🙂

About Bhabani 86 Articles
Bhabani has 12 plus years of experience in Data warehousing and Analytics projects that has span across multiple domains like Travel, Banking and Financial, Betting and Gaming Industries. Solution areas he focuses on designing the data warehouse and integrating it with cloud platforms like AWS or GCP. He is also a Elite level contributor at OTN forum more than 9 years. He loves to do experiment and POC on different integration tools and services. Some of his favorite skills are Redshift, Big Query, Python, Apache Airflow, Kafka, HDFS, Map Reduce ,HIVE, Habse, Sqoop, Drill, Impala.


    • I believe you can develop a java program to call the webservice and another option could be to call it from plsql.
      In my blog i have already posted how to call from plsql. If i get some time i will try to develop custom java code to call the webservice.

  1. Hello,

    My requirement is to read soap request and and based on that request need to capture all response that will get invoked to oracle table.

    Now I have implemented this. For webservice calling – took ODIInvokewebservice to read output file that has been stored in directory with xml extention.
    2. Able to read xml file and based on the value invoked that to target table.

    I am very new to oracle tool ODI. I did all these parts with the help of google.

    My question is like, every time my input will get changed with that particular wsdl, how can i get the updated value everytime.
    Again is there any approach in ODI where I can define the step which after what will have the flow.

    1. Read wsdl –> read data from xml–> then push to target.
    Please let me know in detailed. Thank you in advance..!!

  2. Hi, this is a very informative tutorial. Is there a way to encrypt the password and invoke the scenario. It is not a good practice to hard-coded password in web service call.
    Thanks in advance

Comments are closed.