Crear el modelo de mensaje para el analizador IDoc

Para utilizar la posibilidad de WebSphere Message Broker de transformar datos de IDoc de SAP, debe modelar los datos de segmento del IDoc en WebSphere Message Broker.

Los mensajes enviados a las aplicaciones SAP y recibidos de dichas aplicaciones los procesa el analizador IDoc, que necesita un modelo de mensaje para interpretar los datos correctamente. Este tema documenta cómo crear el modelo de mensaje. Se proporciona una versión de ejemplo creada previamente de un modelo de mensaje en el SupportPac IA0F.

Obtención del IDoc

Utilice el procedimiento siguiente para crear un archivo de importación de los datos de IDoc necesarios para que lo utilice el Kit de herramientas de Message Brokers:
  1. Inicie la sesión en un sistema SAP
  2. Ejecute la transacción proporcionada we60 que extrae los datos de IDoc como un archivo de cabecera C:
    1. Para NombreObjeto seleccione el tipo IDoc de interés, por ejemplo MATMAS02.
    2. Seleccione la versión del tipo de registro. Un IDoc de la versión 4 es el tipo 3.
    3. Seleccione Cabecera C en el menú Documentación.
    4. Entre el nombre de archivo para la salida de la transacción cuando se le solicite. La representación C del IDoc se guarda en este archivo.
  3. Utilice el script Perl hdrfiddle.pl, proporcionado en el SupportPac IA0F, para asegurarse de que el formato del archivo de salida que ha creado es el correcto para importarlo al Kit de herramientas de Message Brokers.

Creación de modelo del IDoc

Utilice el procedimiento siguiente para crear el modelo de mensaje:

  1. Utilice el asistente de Nuevo proyecto de conjunto de mensajes para crear un conjunto de mensajes para el IDoc, por ejemplo matmas02, y crear un formato físico CWF (Formato físico personalizado).
  2. Utilice el editor de conjunto de mensajes para cambiar la propiedad Analizador de ejecución del conjunto de mensajes a IDOC.
  3. Utilice el asistente de Nuevo archivo de definición de mensajes o el mandato mqsicreatemsgdefs para importar la representación C del IDoc al nuevo conjunto de mensajes. Cuando esté utilizando el asistente o el mandato, especifique los valores siguientes:
    • Cree mensajes para los segmentos que aparecen en el IDoc.
    • Utilice la opción Codificación de serie de caracteres para importar matrices de caracteres como series de caracteres de longitud fija.
    • Utilice la opción Carácter de relleno para serie de caracteres para convertir el espacio (" ") en el carácter de relleno utilizado.
    El apartado Importación desde C contiene información sobre cómo utilizar el asistente de Nuevo archivo de definición de mensajes.
  4. Redenomine cada mensaje para que tenga el nombre del segmento que representa en letras mayúsculas. Por ejemplo, para un segmento denominado E2MARAMM, el mensaje se debe denominar E2MARAMM.

El conjunto de mensajes se debe añadir a un archivo archivador de intermediario y desplegar en un grupo de ejecución de intermediario, porque el analizador IDoc utiliza el analizador MRM para analizar los segmentos de IDoc que se han definido.

Cuando se crea un flujo de mensajes para procesar un IDoc, se utilizan la propiedad Analizador de ejecución, el nombre de conjunto de mensajes y el nombre de Formato físico personalizado. Éstos aparecen como los valores de las propiedades Dominio de mensajes, Conjunto de mensajes y Formato del mensaje respectivamente de un nodo MQinput. No proporcione una propiedad Tipo de mensaje en el nodo MQInput, porque el analizador IDoc utiliza el contenido del campo IDoc DD definido por SAP segnam para proporcionar el nombre del mensaje.

Acceso a campos del IDoc utilizando ESQL

Utilice la Ayuda de contenido del Editor ESQL para rellenar los campos definidos por SAP del IDoc. Invoque la Ayuda de contenido desde el menú Editar o, en algunos sistemas, pulsando Control+Espacio, si esta combinación de teclas no se ha asignado a otra función.

Al llegar al código sdatatag de una sentencia ESQL, el siguiente código es MRM, que se debe entrar manualmente y, a continuación, el nombre de campo que se debe manipular. Aquí, especifique el nombre del campo dentro del segmento de mensaje, en lugar del 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';     
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2006 Última actualización: 22/08/2006
ac20030_