Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Consumir WebService. Ayuda con XML,WSDL,XSD,SOAP (https://www.clubdelphi.com/foros/showthread.php?t=71490)

josemmerida 22-12-2010 17:49:38

Consumir WebService. Ayuda con XML,WSDL,XSD,SOAP
 
Buenas a todos.

Resulta que yo era muy feliz tratando con la Agencia Tributaria con una DLL con la que le enviaba textos planos(Mensajes EDI) y ahora me imponen trabajar con Web Services. Realmente no tengo ni la más mínima idea de como afrontar este tema y resulta imprescindible para mi empresa

Me explico. Los principios teóricos son literalmente:

"Estructura de los mensajes será descrita sobre la base de la creación de esquemas XML con recomendación W3C"

"Con relación a SOAP se utilizará SOAP V1.1... NOTA W3C "

" SOAP-1.1 estilo modo “document” no "rpc...(style=”document”) sin ningún tipo de codificación (use=”literal”)"

" descripción de los servicios utilizaremos WSDL 1.1 como NOTA W3C "


Les explico las piezas con las que tengo que montar el proyecto(este es uno de los servicios hay un monton más):

Servicio WEB

https://www1.agenciatributaria.gob.e...ns.IE315P2SOAP

Servicio Implementado en

https://www2.agenciatributaria.gob.e...s/IE315V3.wsdl

Los "Esquemas comunes a todos los esquemas" son:

Common schemas.

Documentation (doc.xsd): Documentation Elements.

https://www2.agenciatributaria.gob.e.../ensws/doc.xsd

Simple Types XSD: ICS Simple Types (simple_types_ics.xsd) and Interdomain Simple Types (simple_types.xsd) .

https://www2.agenciatributaria.gob.e..._types_ics.xsd

https://www2.agenciatributaria.gob.e...mple_types.xsd

Technical Codelists XSD: ICS Technical Code Lists (tcl_ics.xsd) and Interdomain Codelists (tcl.xsd).

https://www2.agenciatributaria.gob.e...ws/tcl_ics.xsd

https://www2.agenciatributaria.gob.e.../ensws/tcl.xsd
Common Complex Types XSD (Complex_types_ics.xsd): ICS Common Simple Data Groups.

https://www2.agenciatributaria.gob.e..._types_ics.xsd

ConsENSV2Dat.xsd. Applicable to Entry Summary Declaration Information Request service.

https://www2.agenciatributaria.gob.e...nsENSV2Dat.xsd


El diseño del esquema de entrada se puede consultar en la dirección:

https://www2.agenciatributaria.gob.e...IE315V3Ent.xsd

El diseño del esquema de salida IE328V3Sal.xsd se puede consultar en la dirección

https://www2.agenciatributaria.gob.e...IE328V3Sal.xsd

:mad: Vaya plomo estoy soltando

Esquematizando creo que debo hacer:

1- Crear un archivo XML segun la definicion del archivo IE315V3Ent.xsd
2- Firmar el archivo XML generado con un certificado de FNMT.
3- Enviar el archivo+firma al servicio WEB IE315P2SOAP implementado por IE315V3.wsdl
4- Recepcionar el archivo XML de vuelta segun la definicion del archivo IE328V3Sal.xsd

Hasta aquí el rollo teórico. Hasta hace 5 días todo esto me sonaba más o menos a chino (si me sacais de mi Firebird y mi delphi básico me pierdo...).:D Por favor si me estoy equivocando os rogaría que me lo indicarais.

Gracias a la ayuda de delphi y a la busqueda en los foros he hecho unos avances:

Voy a File->New->Others->WEb Services->WSDL Importer, allí me sale un Wizard donde introduzco la direccion de la implementación del WEB Service (IE315V3.wsdl) y casi magicamente se crea una unit de más de 4000 lineas que define clases TRemotable, con la que toricamente se atacará al servicio.
Esta unidad no compila por hace referencia a unos tipos de datos desconocidos por la unidad.Por ejemplo "Alphanumeric_Max14"

Voy a File->New->Others->XML->XML Data Binding y empiezo a importar los archivos XSD de esquemas comunes. Allí vuelve a salir un wizard para hacerlo, pero este no es tan mágico.

Pongo la direccion de uno de los archivos XSD(https://www2.agenciatributaria.gob.e...mple_types.xsd), y la cosa promete ya me ofrece para importar tipos del estilo "Alphanumeric_Maxnn" que intentará convertir en Widestring. Pero al darle a siguiente salta el error: "No bindable Datatypes found or selected".
El sistema no me ofrece alternativas, todos los Datatypes los intenta convertir a Widestring... No se que pasa.

¿Alguien me puede ayudar?

El camino va a ser largo pero parece que esta tecnología se va a imponer en las relaciones con agencia tributaria, ya que son consensuadas a nivel de la Unión Europea y no creo que delphi me vaya a dejar tirado.:confused: Solo haría falta que me tuviera que pasar a VB o como se llame...;)


Muchas gracias

Ahhh, uso delphi 2007 (lo he intentado con mi delphi 7 antiguo y da más errores)

ElKurgan 23-12-2010 11:35:51

Pues hombre, no estoy muy puesto en estas cosas, pero puedes sacar alguna idea de estas páginas, a ver si te pueden ayudar:

Web Services Architecture
Crear y consumir un Web Service
Consumir Web service con acceso a base de datos

También, en esta página de embarcadero explicaban como usar los XML devueltos desde ADO .Net en DBgrid de Delphi, pero no se si este es tu caso.

Del mismo Deepak Shenoy están estos Web Services Avanzados, por si te sirven para algo

Habrá que seguir investigando...

Saludos

josemmerida 23-12-2010 13:37:16

Gracias por contestar.

Bueno.. vaya navidades que me esperan... A estudiar.

Os comentaré mis avances.

Saludos


La franja horaria es GMT +2. Ahora son las 08:04:47.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi