Transmitting XML

kirsch59

Member
I have some raw XML that I would like to send to a web service. This one transaction authenticates a user/password and requests product availability. When I use SOAP UI and make the raw XML request it works fine.

In the past I’ve used Webspeed/ABL and the SAX writer to format the XML. I would connect, login and call different web service methods. How do I transmit the following raw XML using Webspeed/ABL.:

Code:
<code>
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="[URL]http://schemas.xmlsoap.org/soap/envelope/[/URL]" xmlns:prod="[URL]http://wsdl.xxx.com/ProductAvailabilityInterface[/URL]" xmlns:us="[URL]http://www.xxx.com/oagis/0[/URL]" xmlns:eek:a="[URL]http://www.openapplications.org/oagis/9[/URL]">
  <soapenv:Header>
   <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="[URL]http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd[/URL]">
  <wsse:UsernameToken wsu:Id="UsernameToken-21985926" xmlns:wsu="[URL]http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd[/URL]">
  <wsse:Username>xxx</wsse:Username>
  <wsse:password Type="yyyyhttp://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">yyyy</wsse:password>
  </wsse:UsernameToken>
  </wsse:Security>
  </soapenv:Header>
  <soapenv:Body>
  <prod:getProductAvailability>
  <GetProductAvailability releaseID="1.0">
  <us:DataArea>
  <us:productAvailability>
  <us:Item>
  <oa:ItemID>
  <oa:ID>UNV10200</oa:ID>
  </oa:ItemID>
  </us:Item>
  </us:productAvailability>
  </us:DataArea>
  </GetProductAvailability>
  </prod:getProductAvailability>
  </soapenv:Body>
</soapenv:Envelope>
</code>
 
Last edited by a moderator:

RealHeavyDude

Well-Known Member
What version you are talking about? Come OpenEdge 10 ( over 10 years ago ) Progress added the web services capabilities to the technology ( ABL ). It comes with a bprowsdldoc shell script that will generate the ABL code for you.

Heavy Regards, RealHeavyDude.
 

kirsch59

Member
I'm running 10.1C03. I've used bprowsdldoc in the past; however, it does not write out all the files properly when I run it against the WSDL. I've had this problem with another web service a long time ago.

I've used SOAP UI 5.0 with the raw XML listed above and confirmed that it works. I'm not sure how to translate it into ABL. What do I Connect to? What method do I run?
 

RealHeavyDude

Well-Known Member
Unfortunately OpenEdge 10.1c is very, very, very old software. Did you try it with a more recent version ( 11.3 )?

You say that it does not generate all necessary files properly - what files are you missing, do you get an error message?

Heavy Regards, RealHeavyDude.
 

kirsch59

Member
I do not have access to OpenEdge 11.3.

When I run the command

bprowsdldoc -show100style http://ppd2-wsdl.ussco.com/xmlo/001/ProductAvailabilityWebService.wsdl

DataTypes.html and OperationIndex.html files are missing and I get a protrace dump.

Here's the contents of the protrace file:

//=====================================================
PROGRESS stack trace as of Tue May 13 08:51:13 2014
//=====================================================
Exception code: C0000005 ACCESS_VIOLATION
Fault address: 1003DFD0 01:0003CFD0 C:\Progress\OpenEdge\bin\prosoap.dll
Registers:
EAX:00000000
EBX:01A10170
ECX:00000008
EDX:197B0001
ESI:0012FC54
EDI:017B9C28
CS:EIP:001B:1003DFD0
SS:ESP:0023:0012FA64 EBP:7813ED1F
DS:0023 ES:0023 FS:003B GS:0000
Flags:00010206
Call Stack:
Address Frame
1003DFD0 7813ED1F WSDLArray_Empty+10990
E8781B4F A0680C6A 0000:00000000

=====================================================
PROGRESS stack trace as of Tue May 13 08:51:13 2014
=====================================================
Startup parameters:
-pf C:\Progress\OpenEdge\startup.pf,-cpinternal ISO8859-1,-cpstream ISO8859-1,-cpcoll Basic,-cpcase Basic,-d dmy,-numsep 44,-numdec 46,-d mdy,(end .pf)
Exception code: C0000005 ACCESS_VIOLATION
Fault address: 1003DFD0 01:0003CFD0 C:\Progress\OpenEdge\bin\prosoap.dll
Registers:
EAX:00000000
EBX:01A10170
ECX:00000008
EDX:197B0001
ESI:0012FC54
EDI:017B9C28
CS:EIP:001B:1003DFD0
SS:ESP:0023:A0680C72 EBP:7813ED1F
DS:0023 ES:0023 FS:003B GS:0000
Flags:00010206
Call Stack:
Address Frame
1003DFD0 00000000 WSDLArray_Empty+10990
E8781B4F FFFFFFFF 0000:00000000

** ABL Stack Trace **
** Persistent procedures/Classes **
 

TomBascom

Curmudgeon
Are you running this on an ancient and unpatched Windows XP desktop?

This sort of sounds like something that used to work, but has stopped working. One of the risks of not keeping Progress up to date is that the platform changes around it and, especially in the Windows world, that might mean that stuff breaks. Especially as Windows has attempted to patch up its security over the last 10 years.

You can get an eval of 11.3 easily enough to try it out -- but you'd want to install it on a relatively modern OS.
 

kirsch59

Member
I'm running bprowsdldoc on a Windows Server 2003 R2.

I'm also running 10.1c on an AIX 5.1 server. I just tried the bprowsdldoc command and it worked - all the files were written and no protrace dump.

Thanks for your help.
 
Top