Hi Rick,
I seem to be doing something wrong here...
After reading another page (https://www.west-wind.com/wsdlgenerator/docs/_2tz19ezkl.htm)
and another thread ( https://support.west-wind.com/Thread6860SNG8S.wwt )
I'm trying to create an instance of the SOAP Header so I can set the needed username and password properties.
DO SwiftUploadV2Proxy
LOCAL loProxy
loProxy = CREATE("SwiftUploadV2Proxy")
LOCAL loBridge as wwDotNetBridge
loBridge = loProxy.oBridge
LOCAL loService as SwiftUploadV2.SwiftUploadV2
loService = loProxy.oService
loService.Url = m.lcUrl
*** Create the SOAP header instance
loBridge.CreateInstanceOnType(loService,"SwiftUploadCredentialsValue","SwiftUploadV2.SwiftUploadCredentials")
loBridge.SetPropertyEx(loService,"SwiftUploadCredentialsValue.UserName",m.lcUserName)
loBridge.SetPropertyEx(loService,"SwiftUploadCredentialsValue.Password",m.lcPassword)
Following the execution of the code in the VFP debugger all seems to work okay up to a point.
The code errors when I attempt to CreateInstanceOnType() I get an OLE Error Code 0x80020006: Unknown Name
I have been provided a sample file to show the structure of the SOAP Header and Request as follows
<?xml version="1.0"?>
<!-- Sample SOAP Request for Upload Method -->
.........
<soapenv:Header>
<swif:SwiftUploadCredentials>
<swif:Password>Valid Password</swif:Password>
<swif:UserName>Valid Username</swif:UserName>
</swif:SwiftUploadCredentials>
</soapenv:Header>
<soapenv:Body>
<swif:UploadRequest>
<swif:FileName>MyFile.XML</swif:FileName>
<swif:ORINumber>AB1234567</swif:ORINumber>
<swif:File>
<![CDATA[Binary string]]>
</swif:File>
</swif:UploadRequest>
</soapenv:Body>
</soapenv:Envelope>
Inclusive in the documentation is the following:
- All data inputs are wrapped in SOAP (Simple Object Access Protocol) envelopes and the SOAP header contains an object called SwiftUploadCredentials of type Credentials that has two parameters: UserName and Password. NOTE: Due to the inclusion of a username and password, the method must be executed in SSL. *
Perhaps it is just the way they worded it, however this language makes it sound like the UserName and Password are not properties of the SwiftUploadCredentials object but the sample code that I'm using appears to be attempting to set them as properties.
How do I determine the proper 'name' to use in that CreateInstanceOnType() method call so I can get past this error or do I need to use a different approach to getting the UserName and Password set in the header? Clearly I'm confused here....
Thanks
Alec
I imagine the name of the type is SwiftUploadCredentials
not SwiftUploadCredentialsValue
, but you need to check and see what is actually defined in the .NET proxy type using Reflector or similar.
+++ Rick ---