In an Oracle Data Integrator “Package” it is possible to invoke web services using the OdiInvokeWebService activity. However, a while back I noticed that it didn’t work in ODI 126.96.36.199.0.
The problem was that the request message wasn’t send out correctly by ODI: the XML elements were put into an empty namespace. For example, if you happen to have a web service that needs the following XML as input:
<?xml version = '1.0' encoding = 'UTF-8'?> <ns1:inputElement xmlns:ns1="http://www.whitehorses.nl/test"> <query>some data</query> </ns1:inputElement>
ODI would sent out:
<?xml version = '1.0' encoding = 'UTF-8'?> <inputElement xmlns="http://www.whitehorses.nl/test"> <query xmlns="">some data</query> </inputElement>
Clearly this “query”-element is causing problems now because of the empty namespace. This “feature” is now known as:
BUG 12702144 – ODI-20161: STANDARD REVERS-ENGINEERING FAILED IN ODI 188.8.131.52
BUG 12784671 – ODI 184.108.40.206 INVOKEWEBSERVICE GENERATES WRONG PAYLOAD FILE
Luckily last week it was finally solved. The SR took a while (I guess they were busy with OFM ps 5 😉 ). So if you happen to run into this problem, and are using ODI 220.127.116.11.0, or 18.104.22.168.1, there is now a patch available. For ODI 22.214.171.124.0 OUI installs, you first have to patch to 126.96.36.199.1 using patch 10288265. Afterwards, there is the one-off interim patch 13329774. These patches can of course be downloaded from the Oracle Support website.
Happy integrating!Invoking WebServices from ODI 11g: fixed at last!,