Saturday, September 5, 2015

HCM: WebService integrations

 

I am turning over a new leaf and starting with Oracle's Fusion HCM Cloud Service, looking into its integration system. Looks like Oracle does not want developers to use its webservices, because there seems to be no concise document available on how to set up a simple webservice integration. After sifting through numerous blogs and forums, I finally decided to explore the Oracle Enterprise Repository for information. And this seems to be the unwritten golden rule for Fusion applications: if you need information, go to OER.

After logging into OER as guest, run a quick query in the left pane to get started. If you want to know about Fusion HCMs webservices, select "ADF Service" under Type, and "Human Capital Management" under Product Family. You can also choose an appropriate Version, though everyone will be on the latest version anyway.

cleartext.blogspot.com

tmpFC7B

Running the query gives a  list of Fusion ADF services which can be used for external integrations. For main Employee related webservices, choose the Worker services at the end of the list.

cleartext.blogspot.com

tmp44A3

To find the WSDL address of this service, choose the detail tab and go to the end of the page.

tmpC152

tmpD2

And there, right at the end of the page, is the logical address of the service. You will have to replace the <hcm server> part with the actual hostname of your cloud service.

Simply entering this URL in a browser gives us the WSDL:

cleartext.blogspot.com

tmp688B

And providing this URL in SOAPUI downloads the WSDL and schema. The WSDL is very big, SOAP UI takes a couple of minutes to completely consume the WSDL and generate the sample messages.

cleartext.blogspot.com

image

 

And now for the really tricky part. The search request has to be built in the SOAP message so that the system can respond with data. After trying numerous combinations, I just tried a simple empty SOAP request. And…it returned successfully !

 

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://xmlns.oracle.com/apps/hcm/employment/core/workerServiceV2/types/" xmlns:typ1="http://xmlns.oracle.com/adf/svc/types/">
   <soapenv:Header/>
   <soapenv:Body>
      <typ:findWorker>
         <typ:findControl>
       </typ:findControl>
      </typ:findWorker>
   </soapenv:Body>
</soapenv:Envelope>

cleartext.blogspot.com

 

tmpDE5

cleartext.blogspot.com

 

 

Important: The userid and password has to be provided either in the soapenv:Header section, or in the userid/password fields of SOAP UI. If you enter a wrong password, the fusion system does not respond with an error message or exception. Instead, it simply sends back the request which it received. Completely. Without any indication of any error. So if you start getting back your request payload in the response, check the credentials.

Wednesday, September 2, 2015

Joy of Programming

 

The past four weeks have been very rewarding for me. After spending eight years as a Siebel consultant, and the last one year on various Oracle cloud technologies (Taleo, HCM) , I somehow ended up with a pure coding project. No packaged-application-configuration nonsense. No composer-nonsense. No fast formulas, and no flex fields. Just pure windows programming, in dot net C sharp (C#), and REST apis. I was tasked with exploring some new cloud apis, and how they can/should be leveraged via integration. After almost nine years away from pure programming language projects, I was sceptical if I could pull it off. But the last many weeks I have been tapping away in Visual studio's IDE, googling the interwebs for code snippets, and going back to the watch window in debug mode.

Boy I missed it.

I am going back to pure programming after more than 10 years now. And a lot of things have changed. I only recently learned that Microsoft have become generous with their tool offerings, there is now an express edition of Visual studio or the community edition. It is more than enough for you general coding needs, and it is completely free. All you need is an outlook email address to register. And the Visual studio system too has had multiple facelifts. You can now develop mobile apps for Windows on it. The IDE does on the fly syntax checks and even pretty prints the code as you type. The language itself has grown, now you can code a windows application with very few lines , its leaner than ever ! I remember when used the Win32 api bible to code things…and then was relieved to see MFC reducing the final code. And today even VB.NET has new functions borrowed from C languages…like local exception control..try catch. Code written in VB.NET is very easily convertible to C#.NET , this was never the case. And even support for integration standards like REST has never been better. Developers today can achieve much more writing very few lines of code, and therefore focus on the application design, instead of worrying about type casting variables and handling database cursors.

Even on the open source world, new languages are coming up designed for simpler and leaner code, which can achieve more functionality. And the community support is awesome, every problem I faced was solved looking at community code.

Now I have to check whether Oracle was able to keep up with the others, I am going to try Oracle PaaS services, their Java Cloud service and Integration Cloud service. Personally I hate the creepy world of Java, the multi-line error codes still scare me. But there is no denying that there is a special Joy in Programming, when you are able to create things without constraints.