Utilice ESQL desde un nodo Compute para copiar el IDoc entrante en el IDoc saliente y manipular el mensaje.
Un mensaje IDoc válido sale del SAP en el flujo y se envía al enlace MQSeries para R/3.
Cuando este IDoc se ha confirmado satisfactoriamente en la cola de WebSphere MQ de salida, el nodo de entrada del flujo de mensajes lo lee en dicha cola y genera el árbol de elementos de sintaxis.
El nodo Compute manipula este árbol de elementos de sintaxis y, cuando ha finalizado, pasa el mensaje de salida a los nodos subsiguientes del flujo de mensajes. Cuando el mensaje llega al nodo de salida, se invoca el analizador IDOC para que vuelva a crear la corriente de bits a partir del árbol.
El flujo de mensajes debe crear un mensaje de salida en un formato similar al del mensaje de entrada.
Consulte el tema Nombres de campo de las estructuras del analizador IDOC para conocer los nombres de campos de la DC (estructura de control) y la DD (Estructura de datos) reconocidos por el analizador IDOC.
SET OutputRoot = InputRoot; SET OutputRoot.IDOC.DC[1].tabnam = 'EDI_DC40 '; SET OutputRoot.IDOC.DD[2].sdatatag.MRM.maktx = 'Buzzing all day';
La primera línea del código copia el IDoc de entrada en el IDoc de salida.
La segunda línea establece el nombre de tabla de la primera DC.
La tercera línea utiliza el segundo segmento DD, que en este ejemplo es de tipo E2MAKTM001, y establece el campo maktx.
Después del código sdatatag en una sentencia ESQL, el siguiente código es MRM, que debe entrar manualmente, seguido del nombre de campo que se va a manipular. Aquí, especifique el nombre del campo dentro del segmento de mensaje, no el nombre del segmento de mensaje.
Por ejemplo, el código siguiente establece el nombre de segmento del IDoc:
SET OutputRoot.IDOC.DD[I].segnam = 'E2MAKTM001';El ejemplo siguiente establece el campo msgfn dentro del segmento E2MAKTM001:
SET OutputRoot.IDOC.DD[I].sdatatag.MRM.msgfn = '006';