Monday, October 8, 2012

Oracle Data Integrator startscenremote.sh : wolf in sheeps clothing?

ODI 11g has a command-line tool called startscenremote.sh (it is not available on Windows). It allows users to provide command-line parameters that are wrapped up into a SOAP message and sent to ODI public web service to start off an ODI scenario. It is understandable that developers will find this useful, but be cautious! It hides a pretty nasty bug.
When you want to pass multiple ODI variable values to your Scenario, the SOAP message asks you to use:


 
     string
     string
 


So for each ODI variable you have to add one element. Eg:



  name-01
  value-01



  name-02
  value-02



    However startscenremote.sh will only pass in the first ODI variable. This is because it creates a structure like :


     name-01
     value-01

     name-02
     value-02

     name-03
     value-03
 


In any case if you are tempted to use this shell script remember that a better option will always be to use an ODI Package that contains an OdiStartScen step. The tools are tightly integrated into ODI ecosystem and will always give you better diagnosability and traceability