Enviar resultados p...
 

Enviar resultados por webservice  

  RSS

(@rosam)
Miembro Eminente
Registrado: hace 4 meses
Respuestas: 16
11 octubre, 2019 10:08  

Hola a todos,

Necesito consultar a un webservice y obtener una lista de pacientes, una vez obtenga el resultado necesito enviar un XML por paciente a otro webservice.

Alguien me puede dar alguna idea de cómo hacerlo? de momento que he creado un conector que hace una consulta a un webservices y en el response creo un xml con los resultados de cada paciente, lo que no sé es como enviar cada xml de paciente a otro webservice.

 

Espero vuestra ayuda!

Muchas gracias


Citar
Nikkator
(@nsoria)
Miembro Moderator
Registrado: hace 4 años
Respuestas: 42
11 octubre, 2019 10:22  

En este puedes usar otro canal que procese cada paciente por separado utilizando el modo batch (fíjate en la captura adjunta).

De esta forma, podrás procesar cada paciente por separado enviando un único mensaje XML desde el canal de origen. Para ello, deberás configurar el modo batch de forma que se construya un mensaje por cada primer nodo hijo del XML enviado.


ResponderCitar
(@rosam)
Miembro Eminente
Registrado: hace 4 meses
Respuestas: 16
11 octubre, 2019 11:32  

@nsoria, ya he creado el nuevo canal con los parámetros que me has dicho.

Pero me falta un detalle, como le envío el XML generado en el primer canal al segundo que hará el bach?

 


ResponderCitar
(@rosam)
Miembro Eminente
Registrado: hace 4 meses
Respuestas: 16
14 octubre, 2019 10:19  

Sigo necesitando ayuda.... alguna idea?

Gracias!!


ResponderCitar
Nikkator
(@nsoria)
Miembro Moderator
Registrado: hace 4 años
Respuestas: 42
15 octubre, 2019 08:25  

La comunicación entre canales se realiza mediante conectores de tipo Channel Writer (éste deberá enviar un único mensaje XML conteniendo todos los submensajes) -> Channel Reader (éste es el que tiene que tener activado el modo 'batch')


ResponderCitar
(@johansanchez)
Miembro Eminente
Registrado: hace 6 meses
Respuestas: 18
6 noviembre, 2019 15:17  
Respondido por: @rosam

Hola a todos,

Necesito consultar a un webservice y obtener una lista de pacientes, una vez obtenga el resultado necesito enviar un XML por paciente a otro webservice.

Alguien me puede dar alguna idea de cómo hacerlo? de momento que he creado un conector que hace una consulta a un webservices y en el response creo un xml con los resultados de cada paciente, lo que no sé es como enviar cada xml de paciente a otro webservice.

 

Espero vuestra ayuda!

Muchas gracias

Hola Rosam

Como va todo amigo?

puedes por favor conpartirme la idea de como recibes el wsdl y lo operas .... Te cuento yo solo necesito escuchar el wsdl externo (HIS) y luego pasar la informacion que trae a una base de datos o tambien enviarlo por wsdl a otro sistema... gracias por compartir


ResponderCitar
(@rosam)
Miembro Eminente
Registrado: hace 4 meses
Respuestas: 16
7 noviembre, 2019 08:11  

Hola @johansanchez,

En los conectores de destino he creado uno de tipo web service sender donde realizo la consulta al webservice. Después en el Response Transformer obtengo el mensaje del web service que he consultado y donde lo iré tratando de la siguente manera:

var xmlResponse = new XML(response.getMessage());
var env = new Namespace('http://xxxxx'); //En xxx se copia el http del soap Envelope del ws
var m = new Namespace('http://xxxx'); //En xxx se copia el http del soap body del ws

Después realizo un bucle para ir tratando todos los resultados:

for each (newMSG in xmlResponse.env::Body.m::xxx) //En xxx se pone el primer tag después del SOAP:Body

{

                for each (element in newMSG.<nombre etiqueta de los resultados>.item){

                 //aquí vas obteniendo todos los resultados y los puedes ir guardando en tu base de datos, por   ejemplo:

                 element.NOMBRE.text();

                }

}

Una manera de ver claramente los tags que tienes que utilizar y los http que tienes que poner es probando el webservice en SOAP UI.

Espero que te haya ayudado.

Un saludo


ResponderCitar
Share:
caduceusadminForum