El foro de caduceus.es ha sido migrado a meditecs.com. Descubre más sobre el cambio en este post.
🇬🇧 English speaker? Go to Meditecs forums in English!
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
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.
@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?
Sigo necesitando ayuda.... alguna idea?
Gracias!!
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')
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
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
