Hey guys,
I googled for nearly 3 hours - but no result...
We run a web-service and want to reach that service from Access. In the
following part you see the wsdl content and the automatically generated
class. I need advice to get the input/output running for this service.
Thanks for your help
Thomas
Option Compare Database
'************************************************* ****************
'Diese Klasse wurde vom Microsoft Office 2003 Web Services Toolkit,
erstellt.
'
'Erstellt: 9/13/2006 09:14:08 AM
'
'Beschreibung:
'Diese Klasse ist eine VBA-Klassenrepräsentation des Webdienstes
'
'Verwendung:
'Dimensionieren Sie eine Variable als neues "clsws_uamconnect"-Objekt,
und schreiben Sie dann Code für
'unter Verwendung der Methoden, die von der Klasse bereitgestellt
werden.
'Beispiel:
' Dim ExampleVar as New clsws_uamconnect
' debug.print ExampleVar.wsm_getUamOperation("Beispieleingabe")
'
'Weitere Informationen erhalten Sie unter "Komplexe Typen" in der Hilfe
zum Microsoft Office 2003
'Web Services Toolkit .
'
'Änderungen am Code dieser Klasse führen möglicherweise zu falschem
Verhalten der Klassenobjekte.
'
'************************************************* ****************
'Dimensionieren von privaten Klassenvariablen.
Private sc_uamconnect As SoapClient30
Private Const c_WSDL_URL As String = "http://[cesnored
;)]wd.soa.uamconnector/UamConnector?wsdl"
Private Const c_SERVICE As String = "uamconnect"
Private Const c_PORT As String = "UamConnectorPort"
Private Const c_SERVICE_NAMESPACE As String =
"http://www.example.org/uamconnect/"
Private Sub Class_Initialize()
'************************************************* ****************
'Diese Unterroutine wird immer dann aufgerufen, wenn ein Objekt
dieser Klasse instanziiert wird.
'Erstellt "sc_ComplexTypes" als neues "SoapClient30"-Objekt.
Anschließend initialisiert
'das "sc_ComplexTypes.mssoapinit2"-Objekt mithilfe der WSDL-Datei
unter
'http://[censored ;)].wd.soa.uamconnector/UamConnector?wsdl.
'************************************************* ****************
Dim str_WSML As String
str_WSML = ""
Set sc_uamconnect = New SoapClient30
sc_uamconnect.MSSoapInit2 c_WSDL_URL, str_WSML, c_SERVICE, c_PORT,
c_SERVICE_NAMESPACE
'Verwenden Sie den Proxyserver, der in den LAN-Einstellungen von
Internet Explorer festgelegt ist,
'indem Sie für "ProxyServer" den Wert <CURRENT_USERfestlegen.
sc_uamconnect.ConnectorProperty("ProxyServer") = "<CURRENT_USER>"
'Proxyeinstellungen werden automatisch erkannt, wenn für Internet
Explorer die automatische Erkennung für
' aktiviert ist, indem für "EnableAutoProxy" der Wert "True"
festgelegt wird.
sc_uamconnect.ConnectorProperty("EnableAutoProxy") = True
End Sub
Private Sub Class_Terminate()
'************************************************* ****************
'Diese Unterroutine wird immer dann aufgerufen, wenn für ein
Objekt dieser Klasse der Destruktor aufgerufen wird.
'Setzt das "sc_ComplexTypes"-Objekt auf "Nothing".
'************************************************* ****************
'Fehlerbehebung
On Error GoTo Class_TerminateTrap
Set sc_uamconnect = Nothing
Exit Sub
Class_TerminateTrap:
uamconnectErrorHandler ("Class_Terminate")
End Sub
Private Sub uamconnectErrorHandler(str_Function As String)
'************************************************* ****************
'Diese Unterroutine ist der Fehlerhandler für die Klasse. Sie kann
von jeder Unterroutine oder Funktion der Klasse
'aus aufgerufen werden, wenn in der betreffenden Unterroutine oder
Funktion ein Fehler auftritt. In diesem Fall wird das Fehlerobjekt auf
den Fehler und den
'Namen der aufrufenden Unterroutine bzw. Funktion gesetzt.
'************************************************* ****************
'SOAP-Fehler
If sc_uamconnect.FaultCode <"" Then
Err.Raise vbObjectError, str_Function,
sc_uamconnect.FaultString
'Nicht SOAP-bezogener Fehler
Else
Err.Raise Err.Number, str_Function, Err.Description
End If
End Sub
Public Function wsm_getUamOperation(ByVal any_UamSearchRequest As
MSXML2.IXMLDOMNodeList) As MSXML2.IXMLDOMNodeList
'************************************************* ****************
'
'"wsm_getUamOperation, any_UamSearchRequest" ist als XML definiert.
Siehe "Komplexe Typen: XML-Variablen" in
'der Hilfe zum Microsoft Office 2003 Web Services Toolkit, um
weitergehende Informationen zur Implementierung von XML-Variablen zu
erhalten.
'************************************************* ****************
'Fehlerbehebung
On Error GoTo wsm_getUamOperationTrap
Set wsm_getUamOperation =
sc_uamconnect.getUamOperation(any_UamSearchRequest )
Exit Function
wsm_getUamOperationTrap:
uamconnectErrorHandler "wsm_getUamOperation"
End Function
<wsdl:definitions name="uamconnect"
targetNamespace="http://www.example.org/uamconnect/">
-
<wsdl:types>
-
<xsd:schema targetNamespace="http://[censored ;)]/types">
-
<xsd:complexType name="UamUserType">
-
<xsd:sequence maxOccurs="1" minOccurs="1">
<xsd:element maxOccurs="1" minOccurs="1" name="userCode"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="1" name="firstName"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="1" name="lastName"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="1" name="phoneNo"
type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
-
<xsd:element name="UamSearchRequest">
-
<xsd:complexType>
-
<xsd:sequence maxOccurs="1" minOccurs="1">
<xsd:element maxOccurs="1" minOccurs="1" name="UserPK" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
-
<xsd:element name="UamSearchResult">
-
<xsd:complexType>
-
<xsd:sequence maxOccurs="1" minOccurs="1">
<xsd:element maxOccurs="1" minOccurs="0" name="UamUaser"
type="tns:UamUserType"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
-
<xsd:element name="UamSearchFault">
-
<xsd:complexType>
-
<xsd:sequence maxOccurs="1" minOccurs="1">
<xsd:element maxOccurs="1" minOccurs="0" name="Reason"
type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
-
<wsdl:message name="UamFaultMessage">
<wsdl:part element="types:UamSearchFault" name="fault"/>
</wsdl:message>
-
<wsdl:message name="getUamResponseMessage">
<wsdl:part element="types:UamSearchResult"
name="getUamResponseMessagePart"/>
</wsdl:message>
-
<wsdl:message name="getUamRequestMessage">
<wsdl:part element="types:UamSearchRequest"
name="getUamRequestMessagePart"/>
</wsdl:message>
-
<wsdl:portType name="uamconnect">
-
<wsdl:operation name="getUamOperation">
<wsdl:input message="tns:getUamRequestMessage"/>
<wsdl:output message="tns:getUamResponseMessage"/>
<wsdl:fault message="tns:UamFaultMessage" name="UamFault"/>
</wsdl:operation>
</wsdl:portType>
-
<wsdl:binding name="uamconnectSOAP" type="tns:uamconnect">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
-
<wsdl:operation name="getUamOperation">
<soap:operation
soapAction="http://www.example.org/uamconnect/getCSOrder"/>
-
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
-
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
-
<wsdl:fault name="UamFault">
<soap:fault name="UamFault" use="literal"/>
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
-
<wsdl:service name="uamconnect">
-
<wsdl:port binding="tns:uamconnectSOAP" name="UamConnectorPort">
<soap:address location="[censored
;)]wd.soa.uamconnector/UamConnector"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>