Integración TCP/IP: Escanear datos de 2 puertos diferentes, comparar los datos y luego imprimir de forma condicional.
Pregunta
En una integración, ¿se puede leer datos de 2 fuentes diferentes, comparar los datos y luego imprimir un documento de forma condicional según el resultado de la comparación?
Respuesta
Sí, esto es totalmente posible. A continuación tienes un ejemplo (usando sockets TCP/IP).
1.-
El siguiente archivo de integración muestra cómo podrías crear una integración ya sea por TCP/IP o por puerto serie para escanear un primer conjunto de datos (que permanecerá en %EventData%), y luego crear una acción adicional que escanee un segundo conjunto de datos (que he guardado en una variable llamada %SecondScan%).
Una vez que tienes ambos conjuntos de datos, puedes compararlos mediante un script de PowerShell:
$First = "%EventData%"
$Second = "%SecondScan%"
$Result = $First.equals($Second)
$Result
El resultado se guarda en una tercera variable de integración llamada %Result%.
Finalmente, puedes realizar una acción condicional de "Imprimir documento", basada en el valor de %Result%. Si es True, entonces el documento se imprimirá (en mi ejemplo usé "Empieza con" T porque la comparación "Igual a" True no estaba funcionando).
2.-
Algunas capturas de pantalla:
La detección inicial por TCP/IP está configurada para dejar de leer después de 5 caracteres:
La segunda lectura desde el socket de red (esta vez como una acción), funciona exactamente igual, pero abre una nueva conexión:
El comando de PowerShell para realizar la comparación:
La acción condicional de Imprimir documento:
Más información (Interno)
El archivo de integración y el archivo Hydrashok (que es una herramienta de Seagull utilizada para enviar datos por puerto serie o TCP/IP) se pueden descargar desde aquí:
https://seagull/confluence/pages/viewpage.action?pageId=36799556
En cuanto a la configuración de Hydrashok, he creado 2 disparadores, uno que se activa a los 5 segundos y que proporcionará datos para la integración TCP/IP, y el segundo que se activa a los 15 segundos, y que proporcionará los datos para la acción "Leer desde el socket de red".