I searched high and low for documentation on connecting to Integration Broker(IB) with asp.net v4.x and I found some documentation out there but even google didn’t recover anything useful on how to get a basic asp.net web application to display Integration Broker SOAP web service data and I found none which really covered how to truly get this working. I was finally able, with some help of a tutorial and a savvy administrator to get IB content into formatted asp.net output, I eventually used WSDL.exe from Microsoft to create a flat asp.net proxy service but the first goal was a proof of concept where some data PeopleSoft Job Posting data was loaded into a web page.
For the IB setup you do need to work through getting a WSDL output file to show up in a browser window. I’d recommend setting up an intranet no auth required solution first, something like jobs or job_description. I’m not going to get into the how of this part of the process, it take a little time but there’s a lot of documentation out there. on this part of the process. Basically you get the wsdl for SOAP. Once you have the service definition you’d expect it to be pretty straight-forward, but these are complex types and the both the request and response have a corresponding XSDs so if you are writing code you’ve either got to use a proxy or send multiple requests to retrieve this data.
SOAPUI to the rescue! For working with SOAP complex types this is a terrific tool. Once you have the working WSDL you create a SOAP project and copy the WSDL URL into SOAPUI and whalla SOAPUI will display the XML which is returned for each of the five service operations. I’d suggest you start with for _G for getting an individual object and _F for finding all operations, so for example one operation may be personal_datav2_G, basically Get Individual Record details.
So you want to pull a list or single data item from IB into a web page or console app what next? Most of what I found pointed to BizTalk for all integrations of PeopleSoft IB and asp.net. But what if you don’t want to make the leap to having to spin up, support and provide the server resources required to run BizTalk, learn and provision BizTalk just to grab a little data. After taking several paths I found one that worked well. I was able to get Visual Studio to consume the WSDL with a Service Reference advanced options > web service. I did have much luck using the Service Reference in Visual Studio for this. To get this working I ended up having to manually create the WSDL with the wsdl.exe creation tool. Once this was created you can then write code using this proxy. You create an object based on the proxy, which is kind of ugly, code below.
One important change you may need to edit your proxy class string collections, older versions of WSDL conversion utility contained a bug. To do this replace [ ][ ] of each array/list object with [ ]. This is a bug in the wsdl creation code and it was not at all clear this problem existed so look for this problem. You code for FIND _F_OperationName operation will blow up on a number of object calls which are trying to store. Here is the code which worked.
Find__CompIntfc_CI_POS_DESCTypeShape findJobs = new Find_CompIntfc_CI_POS_DESCTypeShape(); JOBCODETypeShape2 job2 = new JOBCODETypeShape2(); job2.Value = ""; findJobs.JOBCODE = job2; CI_POS_DESC_PortTypeClient clt = new CI_POS_DESC_PortTypeClient(); CI_POS_DESCComplexTypeShape1[] compT = new CI_POS_DESCComplexTypeShape1[1000]; compT = clt.CI_CI_FAHC_POS_DESC_F(findJobs); jobLen = compT.Length; jobTotal = jobLen; for (int j = 0; j < compT.Length; j++) { jobList.Add(compT[j].JOBCODE.Value, compT[j].DESCR.Value); } string jsonJobs = JsonConvert.SerializeObject(jobList); return jsonJobs;