Hope this gives you some tips.
I have got this working on a OpenEdge 10.1c machine which doesn't route this through a proxy. (still have a problem with the domain for the proxy-user)
Code:
[LEFT]define variable hWebService as handle no-undo.
define variable hVolumeUnitSoap as handle no-undo.[/LEFT]
[LEFT]create server hWebService.
hWebService:connect
("-WSDL http://www.webservicex.net/convertVolume.asmx?WSDL -Service VolumeUnit")
/* ("-WSDL C:\temp\wsdlAnalyzer\ConvertVolume\convertVolume.wsdl -Binding VolumeUnitSoap -SOAPEndpoint http://www.webservicex.net/convertVolume.asmx")*/
.
message hwebservice:connected() view-as alert-box. [/LEFT]
[LEFT]run VolumeUnitSoap set hVolumeUnitSoap on server hWebService.[/LEFT]
[LEFT]DEFINE VARIABLE VolumeValue AS int64 no-undo init 5000.
DEFINE VARIABLE fromVolumeUnit AS CHARACTER no-undo init 'deciliter'.
DEFINE VARIABLE toVolumeUnit AS CHARACTER no-undo init 'liter'.
DEFINE VARIABLE ChangeVolumeUnitResult AS CHARACTER NO-UNDO.[/LEFT]
[LEFT]FUNCTION ChangeVolumeUnit RETURNS CHARACTER
(INPUT VolumeValue AS int64,
INPUT fromVolumeUnit AS CHARACTER,
INPUT toVolumeUnit AS CHARACTER)
IN hVolumeUnitSoap.[/LEFT]
[LEFT]/* Function invocation of ChangeVolumeUnit operation. */
ChangeVolumeUnitResult = ChangeVolumeUnit(VolumeValue, fromVolumeUnit, toVolumeUnit).[/LEFT]
[LEFT]message ChangeVolumeUnitResult
view-as alert-box.[/LEFT]
[LEFT]delete object hVolumeUnitSoap no-error.
hWebservice:disconnect() no-error.
delete object hWebservice.[/LEFT]
This is a free webservice, so you should be able to get this working as wel.
Perhaps change the int64 to int for 9.1
Furthermore look into the Progress Web-services manual dvwsv.pdf.
There are some usefull tips there about wsdl-analyzer, which can generate example code and SoapSpy which can be used for debugging.
Good luck