WebService Delphi-VB

22/01/2004 - 21:49 por Pablo Higuimarán | Informe spam
Hola:

Se me plantea la siguiente situación:
Tengo que acceder a un WebService desarrollado en Delphi
por otra persona.
Si yo entro con el IE a la dirección del webservice me
aparece una lista con las funciones disponibles.
Aparentemente, al desarrollar el componente en Delphi,
este genera ciertas funciones estándar, que son las que
alli aparecen.
Son las siguientes:

SAS_ApplyUpdates(ProviderName,Delta,MaxErrors,ErrorCount,
OwnerData)
SAS_GetRecords(ProviderName,Count,RecsOut,Options,
CommandText,Params,OwnerData)
SAS_DataRequest(ProviderName,Data)
SAS_GetProviderNames()
SAS_GetParams(ProviderName,OwnerData)
SAS_RowRequest(ProviderName,Row,RequestType,OwnerData)
SAS_Execute(ProviderName,CommandText,Params,OwnerData)

Hago lo siguiente (Esto es VFP pero en VB es muy similar)

x = CREATEOBJECT("MSSOAP.SoapClient")
x.MSSoapInit("http://")
* esto funciona OK
miVar=x.SAS_GetProviderNames()

Ahora, hay una funcion que se llama 'Marcas' que me
devuelve una lista a partir de una tabla.
Esta funcion recibe un parámetro que es una contraseña por
el tema de la seguridad.

Al ejecutar la siguiente linea:
pepe=x.SAS_Execute("Marcas","",0,"12")
(el 12 es la contraseña)
Me devuelve un error como que la contraseña no es válida.
La contraseña es esa, el tema es que evidentemente no devo
estar pasandole el parámetro correctamente.

No se si alguien ha trabajado con Delphi y tiene alguna
idea para darme.

Desde ya muchas gracias

Pablo Higuimarán

Preguntas similare

Leer las respuestas

#1 Skar
23/01/2004 - 14:06 | Informe spam
La verdad para poder ayudarte tendria que ver el WSDL, es posible que estes
pasando un parametro de tipo equivocado. Si gustas nos das el URL de el WSDL
y... bueno tratamos de ayudarte


Para mas info en Access visitame
http://www22.brinkster.com/equisbert/
"Pablo Higuimarán" wrote in message
news:2c1901c3e129$486cbb60$
Hola:

Se me plantea la siguiente situación:
Tengo que acceder a un WebService desarrollado en Delphi
por otra persona.
Si yo entro con el IE a la dirección del webservice me
aparece una lista con las funciones disponibles.
Aparentemente, al desarrollar el componente en Delphi,
este genera ciertas funciones estándar, que son las que
alli aparecen.
Son las siguientes:

SAS_ApplyUpdates(ProviderName,Delta,MaxErrors,ErrorCount,
OwnerData)
SAS_GetRecords(ProviderName,Count,RecsOut,Options,
CommandText,Params,OwnerData)
SAS_DataRequest(ProviderName,Data)
SAS_GetProviderNames()
SAS_GetParams(ProviderName,OwnerData)
SAS_RowRequest(ProviderName,Row,RequestType,OwnerData)
SAS_Execute(ProviderName,CommandText,Params,OwnerData)

Hago lo siguiente (Esto es VFP pero en VB es muy similar)

x = CREATEOBJECT("MSSOAP.SoapClient")
x.MSSoapInit("http://")
* esto funciona OK
miVar=x.SAS_GetProviderNames()

Ahora, hay una funcion que se llama 'Marcas' que me
devuelve una lista a partir de una tabla.
Esta funcion recibe un parámetro que es una contraseña por
el tema de la seguridad.

Al ejecutar la siguiente linea:
pepe=x.SAS_Execute("Marcas","",0,"12")
(el 12 es la contraseña)
Me devuelve un error como que la contraseña no es válida.
La contraseña es esa, el tema es que evidentemente no devo
estar pasandole el parámetro correctamente.

No se si alguien ha trabajado con Delphi y tiene alguna
idea para darme.

Desde ya muchas gracias

Pablo Higuimarán
Respuesta Responder a este mensaje
#2 Pablo Higuimarán
23/01/2004 - 20:44 | Informe spam
ok, gracias
voy a conseguir el WDSL y a la brevedad lo coloco en este
hilo
Respuesta Responder a este mensaje
#3 Pablo Higuimarán
23/01/2004 - 22:07 | Informe spam
al entrar a la página 'http://10.0.10.2/ws/articulos.dll'
me abre un html con un monton de información sobre el
webservice.
Aparecen una lista de los PortType:
- IAppServer
- IAppServerApp
- IArticulosDM
- IWSDLPublish

Cada uno de ellos al lado tiene un link con el WSDL
asociado

El de IArticulosDM que creo que es el que interesa lo
adjunto al final.

Por lo que se ve en dicho WSDL Delphi genera varios puntos
de acceso al webservice: -SAS_ApplyUpdates-SAS_GetRecords-
SAS_DataRequest-SAS_GetProviderNames-SAS_GetParams-
SAS_RowRequest-SAS_Execute
El único que me funciona es el SAS_GetProviderNames que me
devuelve una lista con las funciones desarrolladas. Una de
ellas es 'Marcas'

Cualquier ayuda me sería de utilidad para saber como
utilizar este componente.

Desde ya muchas gracias.

<?xml version="1.0" encoding="utf-8" ?>
- <definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
name="IArticulosDMservice"
targetNamespace="http://tempuri.org/"
xmlns:tns="http://tempuri.org/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:ns1="http://www.borland.com/namespaces/Types">
- <types>
- <xs:schema
targetNamespace="http://www.borland.com/namespaces/Types"
xmlns="http://www.borland.com/namespaces/Types">
- <xs:complexType name="TWideStringDynArray">
- <xs:complexContent>
- <xs:restriction base="soapenc:Array">
<xs:sequence />
<xs:attribute ref="soapenc:arrayType"
n1:arrayType="xs:string[]"
xmlns:n1="http://schemas.xmlsoap.org/wsdl/" />
</xs:restriction>
</xs:complexContent>
</xs:complexType>
</xs:schema>
</types>
- <message name="SAS_ApplyUpdates0Request">
<part name="ProviderName" type="xs:string" />
<part name="Delta" type="xs:anyType" />
<part name="MaxErrors" type="xs:int" />
<part name="OwnerData" type="xs:anyType" />
</message>
- <message name="SAS_ApplyUpdates0Response">
<part name="ErrorCount" type="xs:int" />
<part name="OwnerData" type="xs:anyType" />
<part name="return" type="xs:anyType" />
</message>
- <message name="SAS_GetRecords1Request">
<part name="ProviderName" type="xs:string" />
<part name="Count" type="xs:int" />
<part name="Options" type="xs:int" />
<part name="CommandText" type="xs:string" />
<part name="Params" type="xs:anyType" />
<part name="OwnerData" type="xs:anyType" />
</message>
- <message name="SAS_GetRecords1Response">
<part name="RecsOut" type="xs:int" />
<part name="Params" type="xs:anyType" />
<part name="OwnerData" type="xs:anyType" />
<part name="return" type="xs:anyType" />
</message>
- <message name="SAS_DataRequest2Request">
<part name="ProviderName" type="xs:string" />
<part name="Data" type="xs:anyType" />
</message>
- <message name="SAS_DataRequest2Response">
<part name="return" type="xs:anyType" />
</message>
<message name="SAS_GetProviderNames3Request" />
- <message name="SAS_GetProviderNames3Response">
<part name="return" type="ns1:TWideStringDynArray" />
</message>
- <message name="SAS_GetParams4Request">
<part name="ProviderName" type="xs:string" />
<part name="OwnerData" type="xs:anyType" />
</message>
- <message name="SAS_GetParams4Response">
<part name="OwnerData" type="xs:anyType" />
<part name="return" type="xs:anyType" />
</message>
- <message name="SAS_RowRequest5Request">
<part name="ProviderName" type="xs:string" />
<part name="Row" type="xs:anyType" />
<part name="RequestType" type="xs:int" />
<part name="OwnerData" type="xs:anyType" />
</message>
- <message name="SAS_RowRequest5Response">
<part name="OwnerData" type="xs:anyType" />
<part name="return" type="xs:anyType" />
</message>
- <message name="SAS_Execute6Request">
<part name="ProviderName" type="xs:string" />
<part name="CommandText" type="xs:string" />
<part name="Params" type="xs:anyType" />
<part name="OwnerData" type="xs:anyType" />
</message>
- <message name="SAS_Execute6Response">
<part name="Params" type="xs:anyType" />
<part name="OwnerData" type="xs:anyType" />
</message>
- <portType name="IArticulosDM">
- <operation name="SAS_ApplyUpdates">
<input message="tns:SAS_ApplyUpdates0Request" />
<output message="tns:SAS_ApplyUpdates0Response" />
</operation>
- <operation name="SAS_GetRecords">
<input message="tns:SAS_GetRecords1Request" />
<output message="tns:SAS_GetRecords1Response" />
</operation>
- <operation name="SAS_DataRequest">
<input message="tns:SAS_DataRequest2Request" />
<output message="tns:SAS_DataRequest2Response" />
</operation>
- <operation name="SAS_GetProviderNames">
<input message="tns:SAS_GetProviderNames3Request" />
<output message="tns:SAS_GetProviderNames3Response" />
</operation>
- <operation name="SAS_GetParams">
<input message="tns:SAS_GetParams4Request" />
<output message="tns:SAS_GetParams4Response" />
</operation>
- <operation name="SAS_RowRequest">
<input message="tns:SAS_RowRequest5Request" />
<output message="tns:SAS_RowRequest5Response" />
</operation>
- <operation name="SAS_Execute">
<input message="tns:SAS_Execute6Request" />
<output message="tns:SAS_Execute6Response" />
</operation>
</portType>
- <binding name="IArticulosDMbinding"
type="tns:IArticulosDM">
<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http" />
- <operation name="SAS_ApplyUpdates">
<soap:operation soapAction="urn:ArticulosDMod-
IArticulosDM#SAS_ApplyUpdates" style="rpc" />
- <input message="tns:SAS_ApplyUpdates0Request">
<soap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:ArticulosDMod-IArticulosDM" />
</input>
- <output message="tns:SAS_ApplyUpdates0Response">
<soap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:ArticulosDMod-IArticulosDM" />
</output>
</operation>
- <operation name="SAS_GetRecords">
<soap:operation soapAction="urn:ArticulosDMod-
IArticulosDM#SAS_GetRecords" style="rpc" />
- <input message="tns:SAS_GetRecords1Request">
<soap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:ArticulosDMod-IArticulosDM" />
</input>
- <output message="tns:SAS_GetRecords1Response">
<soap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:ArticulosDMod-IArticulosDM" />
</output>
</operation>
- <operation name="SAS_DataRequest">
<soap:operation soapAction="urn:ArticulosDMod-
IArticulosDM#SAS_DataRequest" style="rpc" />
- <input message="tns:SAS_DataRequest2Request">
<soap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:ArticulosDMod-IArticulosDM" />
</input>
- <output message="tns:SAS_DataRequest2Response">
<soap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:ArticulosDMod-IArticulosDM" />
</output>
</operation>
- <operation name="SAS_GetProviderNames">
<soap:operation soapAction="urn:ArticulosDMod-
IArticulosDM#SAS_GetProviderNames" style="rpc" />
- <input message="tns:SAS_GetProviderNames3Request">
<soap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:ArticulosDMod-IArticulosDM" />
</input>
- <output message="tns:SAS_GetProviderNames3Response">
<soap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:ArticulosDMod-IArticulosDM" />
</output>
</operation>
- <operation name="SAS_GetParams">
<soap:operation soapAction="urn:ArticulosDMod-
IArticulosDM#SAS_GetParams" style="rpc" />
- <input message="tns:SAS_GetParams4Request">
<soap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:ArticulosDMod-IArticulosDM" />
</input>
- <output message="tns:SAS_GetParams4Response">
<soap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:ArticulosDMod-IArticulosDM" />
</output>
</operation>
- <operation name="SAS_RowRequest">
<soap:operation soapAction="urn:ArticulosDMod-
IArticulosDM#SAS_RowRequest" style="rpc" />
- <input message="tns:SAS_RowRequest5Request">
<soap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:ArticulosDMod-IArticulosDM" />
</input>
- <output message="tns:SAS_RowRequest5Response">
<soap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:ArticulosDMod-IArticulosDM" />
</output>
</operation>
- <operation name="SAS_Execute">
<soap:operation soapAction="urn:ArticulosDMod-
IArticulosDM#SAS_Execute" style="rpc" />
- <input message="tns:SAS_Execute6Request">
<soap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:ArticulosDMod-IArticulosDM" />
</input>
- <output message="tns:SAS_Execute6Response">
<soap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:ArticulosDMod-IArticulosDM" />
</output>
</operation>
</binding>
- <service name="IArticulosDMservice">
- <port name="IArticulosDMPort"
binding="tns:IArticulosDMbinding">
<soap:address
location="http://10.0.10.2/ws/articulos.dll/soap/IArticulos
DM" />
</port>
</service>
</definitions>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida