Sie sind auf Seite 1von 12

Manual para la creacion de IDOCs

1 Qu es un Idoc? 2 Definicin de la estructura de Idocs, segmentos de control, datos y estado. 3 Creacin de un nuevo tipo de IDoc en SAP. 3.1 Creacin de los elementos de datos 3.2 Creacin de Segmentos 3.3 Creacin del Tipo Base de IDoc 3.4 Liberacin del Tipo de Segmento y Tipo Bsico de IDoc 3.5 Transporte de Segmentos y Tipo Base de IDocs 4 Extensin de un IDoc. 4.1 Configuracin el procesamiento Outbound 4.2 Configuracin el procesamiento Inbound 5 Creacin de destinos RFC, puertos y sistemas lgicos. 5.1 Definicin de Destinos RFC 5.2 Definicin de puerta. 5.3 Definicin de sistemas lgicos 5.3.1 Asignar sistema lgico a mandante 6 Creacin de los acuerdos de interlocutores. 7 Creacin de un nuevo tipo de Mensaje en SAP. 8 Relacin entre un tipo de Mensaje y un Tipo de IDoc 9 Creacin de un modelo de distribucin. 10 (G) Creacin de un Idoc de salida 10.1 Creacin de Idocs desde un programa ABAP 10.2 Creacin de Idocs utilizando Punteros de Modificacin (Change Pointers) 10.2.1 Activacin de punteros de modificacin en forma global 10.2.2 Activacin de punteros de modificacin por Tipo de Mensaje 10.2.3 Definicin de campos relevantes para la generacin de Punteros de Modificacin 10.2.4 Relacin entre el Tipo de Mensaje y el Mdulo de Funcin 10.2.5 Crear un mdulo de funcin para leer los punteros de modificacin y crear los Idocs. 10.3 Creacin de Idocs desde un Mensaje de Logstica 11 Creacin de un Idoc de entrada 11.1 Configuracin de Workflow 11.1.1 Crear un nuevo Objeto de Aplicacin Idoc 11.1.2 Crear una nueva tarea basada en el Objeto de Aplicacin Idoc 11.2 - Configuracin de la Interfaz de entrada 11.2.1 Transaccin: WE81 11.2.2 Camino Lgico: Desde el rea de men de EDI (transaccin WEDI), seleccionar Men SAP Desarrollo Tipos de mensajes 11.2.3 Camino Lgico: Desde el rea de men de EDI (transaccin WEDI), seleccionar Men SAP -> Desarrollo -> Tipo IDoc / Mensaje 11.2.4 Definicin de Cdigo de Operacin 11.2.5 Definicin de Mdulo de Funcin

Manual para la creacin de Idocs

El objetivo de este documento es servir de gua para la creacin de interfaces entre dos sistemas R/3 o entre un R/3 y un legacy, utilizando Idocs.

1 - Qu es un Idoc?

Los IDoc permiten intercambiar informacin entre distintos sistemas. Se lo puede ver como un archivo de texto plano, con registros. Un Idoc es por ejemplo los datos de un proveedor , o una oferta. Contiene una cabecera y posiciones, pero todos los datos pertenecen a la misma entidad. O sea, para transmitir datos de ms de un proveedor, hara falta ms de un IDoc. Los IDocs se crean y luego se envan. Este envo se realiza en un segundo paso; o sea que podra haber IDOCs que todava no se hayan enviado. Un Idoc, como se mencion ms arriba, est formato por dos bloques: Un registro de Control. Una tabla con los datos del IDOC . El registro de control contiene toda la informacin administrativa del IDOC, como el origen y el destinatario, y qu tipo de IDOC es. Sera algo as como el sobre que acompaa a cualquier carta. Este registro es muy importante ya que es necesario para saber, entre otras cosas, cul ser el destinatario del IDOC. La tabla SAP donde se guardan es la EDIDC. Los registros de datos se guardan en la tabla EDID4 en un campo de 1000 caracteres. Para saber interpretar esa cadena, el registro cuenta con un campo que informa cul es la estructura con la que se deben interpretar los datos. El nombre de dicha estructura existe en SAP y se la puede ver desde la transaccin SE11. Desde la transaccin WE30 se puede ver el formato de los Idocs. Por ejemplo, para el Idoc MATMAS01, el formato es el siguiente: MATMAS01 E1MARAM E1MAKTM E1MARCM E1MARDM E1MARMM E1MEANM E1MBEWM E1MLGNM E1MVKEM E1MLANM E1MTXHM E1MTXLM Maestro material Maestro material datos generales (MARA) Maestro material - textos breves (MAKT) Maestro material segmento C (MARC) Maestro material almacn/segmento lotes (MARD) Maestro material unidades de medida (MARM) Maestro mat. nmeros art. europeos (MEAN) Maestro material valoracin stocks (MBEW) Maestro mat. datos por nm.almacn (MLGN) Maestro material datos de ventas (MVKE) Maestro material clasif. impuestos (MLAN) Maestro material texto explicativo cabecera Maestro material texto explicativo lnea

Cada uno de los nombres que ac se muestran son estructuras que se pueden ver desde la SE11.

O sea que por ejemplo, para un registro de datos que tiene estructura E1MARAM, para saber cul es el formato con el que hay que interpretarlos, se puede ir a la transaccin SE11 y ver qu campos componen a esa estructura. Dado que la cadena de 1000 caracteres est formada por los datos de un campo atrs del otro, es solo cuestin de saber en qu posicin de la cadena se encuentra cada campo. Generalmente, varios registros de estado se adjuntan a un IDOC. El sistema automticamente asigna registros de estado durante todo el proceso, a medida que el IDOC va alcanzando diversos puntos de control. Contienen informacin de estado, tal como cdigo de estado, fecha y hora en que el punto de control es alcanzado. Estos registros de estado existen solamente en SAP y no son almacenados en el archivo de salida. La estructura de los registros de estado est definida por la estructura del DDIC EDI_DS40. La tabla es EDIDS.

2 - Definicin de la estructura de Idocs, segmentos de control, datos y estado.


La estructura de un IDoc consiste de varios segmentos, y los segmentos consisten de una secuencia de campos. La estructura de un tipo de IDoc define la sintaxis de los datos al especificar la organizacin de los segmentos, atributos de los segmentos y formatos de cada uno de sus campos. En ejecucin, un IDoc consiste de la siguiente secuencia de tres tipos de registros: a Un nico registro de Control Contiene toda la informacin de control del IDoc, incluyendo el nmero de IDoc, emisor y receptor, otra informacin de control tal como el tipo de mensaje que representa y el tipo de de IDoc. La estructura del registro de control es idntica para todos los IDocs y est definida por SAP. Son automticamente creados e insertados por el sistema en tiempo de ejecucin. La estructura del registro de contol est definida por la estructura del DDIC EDI_DC40: Cantidad de campos: 36 Total longitudes de campo: 524

Componente

Tipo

Long.

Tipo

Texto breve

CHAR TABNAM EDI4TABNAM 10 MANDT DOCNUM CLNT 3 EDI4MANDT

Nombre de la estructura de tabla Mandante Nmero del IDOC Release SAP del IDOC Status del IDOC EDI4DIRECT Modo de salida Sustitucin en Entrada EDI4TEST Nombre del tipo base Ampliacin (definida por los clientes) Tipo de mensaje Variante de mensajes Funcin de mensaje Estndar EDI, indicador Estndar EDI, versin y release Tipo de mensajes EDI Tipo de interlocutor EDI del remitente Funcin interlocutor EDI del remitente SNDPOR CHAR 10 EDI4SNDPOR Indicador test Sentido

CHAR EDI4DOCNUC 16

CHAR DOCREL EDI4DOCREL 4 STATUS DIRECT CHAR EDI4STATUS 2 CHAR 1

CHAR OUTMOD EDI4OUTMOD 1 EXPRSS TEST CHAR EDI4EXPRSS 1 CHAR 1

CHAR IDOCTYP EDI4IDOCTP 30 CIMTYP MESTYP CHAR EDI4CIMTYP 30 CHAR EDI4MESTYP 30

CHAR MESCOD EDI4MESCOD 3 MESFCT STD CHAR EDI4MESFCT 3 CHAR EDI4STD 1

CHAR STDVRS EDI4STDVRS 6 STDMES CHAR EDI4STDMES 6

Puerta remitente (System, subsystem externo

CHAR SNDPRT EDI4SNDPRT 2 SNDPFC SNDPRN CHAR EDI4SNDPFC 2 CHAR EDI4SNDPRN 10

Los datos del registro de control se almacenan en la tabla SAP EDIDC. La clave de esta tabla es el mandante (MANDT) y nmero de Idoc (DOCNUM). b Uno o ms registros de Datos Un IDoc puede contener mltiples registros de datos, segn haya sido definida la estructura del Tipo de IDoc. En ejecucin, los segmentos son convertidos por el sistema a registros de datos. Un registro de datos contiene informacin de la aplicacin (maestro de proveedores, peticin de oferta, oferta, pedidos, etc.). La estructura de los registros de datos est definida por la estructura del DDIC EDI_DD40: Estructura de campo

Cantidad de campos: 7 Total longitudes de campo: 1063 Componente SEGNAM MANDT DOCNUM SEGNUM PSGNUM HLEVEL SDATA CHAR 30 CLNT 3 CHAR 16 CHAR 6 NUMC 6 CHAR 2 LCHR 1000 Tipo EDI4SEGNAM EDI4MANDT EDI4DOCNUC EDI4SEGNUC EDI4PSGNUC EDI4HLEVEC EDI4SDATA Long. Tipo Segmento (nombre externo) Mandante Nmero del IDOC Nmero de segmento Nmero del segmento padre superior Nivel de jerarqua de segmento SAP Datos de la aplicacin Texto breve

_______________________________________________________________________

La seccin de datos es una cadena de 1000 bytes, y es el lugar donde los datos realmente residen. La seccin de datos es mapeada en ejecucin a un tipo de segmento, segn haya sido definida la estructura del tipo de IDoc, a fin de interpretar la estructura de los datos en esta cadena. Los datos de los registros de datos se almacenan en la tabla SAP EDID4. La clave de la tabla es el mandante (MANDT), el nmero de IDoc (DOCNUM), y el nmero de segmento (SEGNUM). c Uno o ms registros de Estado Generalmente, varios registros de estado se adjuntan a un IDoc. El sistema automticamente asigna registros de estado durante todo el proceso, a medida que el IDoc va alcanzando diversos puntos de control. Contienen informacin de estado, tal como cdigo de estado, fecha y hora en que el punto de control es alcanzado. Estos registros de estado existen solamente en SAP y no son almacenados en el archivo de salida. La estructura de los registros de estado est definida por la estructura del DDIC EDI_DS40. Estructura de campo Cantidad de campos: 24 Total longitudes de campo: 562 Componente TABNAM MANDT DOCNUM LOGDAT LOGTIM STATUS STAMQU STAMID STAMNO STATYP STAPA1 STAPA2 STAPA3 STAPA4 STATXT UNAME REPID ROUTID SEGNUM SEGFLD REFINT REFGRP REFMES ARCKEY CHAR 12 CHAR 30 CHAR 30 CHAR 6 CHAR 30 CHAR 14 CHAR 14 CHAR 14 CHAR 70 DATS 8 TIMS 6 CHAR 2 CHAR 3 CHAR 20 NUMC 3 CHAR 1 CHAR 50 CHAR 50 CHAR 50 CHAR 50 CHAR 10 Tipo EDI4TABNAM CLNT 3 CHAR 16 EDI4LOGDAT EDI4LOGTIM EDI4STATUS EDI4STAMQU EDI4STAMID EDI4STAMNO EDI4STATYP EDI4STAPA1 EDI4STAPA2 EDI4STAPA3 EDI4STAPA4 CHAR 70 EDI4UNAME EDI4REPID EDI4ROUTID EDI4SEGNUC EDI4SEGFLD EDI4REFINT EDI4REFGRP EDI4REFMES EDI4ARCKEY Long. Tipo EDI4MANDT Mandante EDI4DOCNUC Nmero del IDOC Fecha de la informacin de status Hora de la informacin de status Status del IDOC Cualificador para mensaje en registro de status Nro. de mensaje para mensaje de status: Clase mensaje Nmero de mensaje en mensaje de status Tipo de mensaje (A, W, E, S, I) en el mensaje de status Primer parmetro de un mensaje en registro de status Segundo parmetro de un mensaje en registro de status Tercer parmetro de un mensaje en registro de status Cuarto parmetro de un mensaje en registro de status EDI4STATXT Texto para status Nombre del usuario Programa Subrutina (rutina, mdulo de funciones) Nmero de segmento Campo de segmento Fichero de transmisin (EDI Interchange) Grupo de mensajes (EDI Message Group) Mensaje (Mensaje EDI) Clave del archivo de mensajes externo Texto breve

Nombre de la estructura de tabla

Los datos de los registros de estado se almacenan en la tabla SAP EDIDS. La clave de la tabla es el mandante (MANDT), nmero de Idoc (DOCNUM), fecha (LOGDAT), hora (LOGTIM), y un contador de registro (COUNTR).

3 - Creacin de un nuevo tipo de IDoc en SAP.

Para la creacin de un nuevo tipo de IDoc en SAP debe seguirse una secuencia de 5 pasos: 3.1 Creacin de los elementos de datos Deben crearse los elementos de datos necesarios para la definicin de los segmentos. La necesidad de crear elementos de datos debera ser mnima dado que los datos ya existen en SAP y por lo tanto estn representados por sus propios elementos de datos. Sin embargo, los segmentos no admiten cualquier tipo dato y por lo tanto debern definirse nuevos elementos en caso que los existentes no sean de alguno de los siguientes tipos: Tipo de Datos CHAR CLNT CUKY Cliente Campo moneda, referenciado por campos CURR Descripcin String de caracteres

DATS LANG NUMC TIMS

Campo fecha (YYYYMMDD), almacenado como char(8) Clave de idioma Campo carcter con dgitos solamente Campo fecha (HHMMSS), almacenado como char(6)

3.2 Creacin de Segmentos Los segmentos son creados por medio del Editor de Segmentos: Transaccin: WE31. Camino lgico: Desde el rea de men de EDI (transaccin WEDI), seleccionar Men SAP Desarrollo Segmentos IDoc. Pasos: 3.2.1 - Ejecutar la transaccin WE31. Ingresar el nombre del tipo de segmento (debe comenzar con Z1) y seleccionar la opcin Crear (F5). 3.2.2 Entrar una descripcin breve y los valores para los distintos campos. Este paso completa la definicin del segmento. El sistema automticamente asigna un nombre a la definicin del segmento, basado en el nombre del tipo de segmento. Ej.: si el tipo de segmento es Z1WKDET, la definicin del segmento ser Z2WKDET. 3.2.3 Guardar las entradas. Volver a la pantalla anterior y repetir el mismo procedimiento para todos los segmentos que se necesiten crear para el tipo de IDoc. 3.3 Creacin del Tipo Base de IDoc Una vez creados todos los segmentos, el siguiente paso es crear el Tipo Base de IDoc. Los tipos base de IDocs se crean con el Editor de IDocs: Transaccin: WE30 Camino Lgico: Desde el rea de men de EDI (transaccin WEDI), seleccionar Men SAP Desarrollo Tipos IDoc. Pasos: 3.3.1 Ejecutar la transaccin WE30. Ingresar el nombre del tipo base de IDoc (debe comenzar con Z). Seleccionar la opcin Tipo base y Crear (F5). 3.3.2 En la siguiente pantalla, seleccionar la opcin Crear nuevo e ingresar una descripcin para el tipo base de IDoc. Presionar Continuar. 3.3.3 Posicionar el cursor sobre el nombre del IDoc y seleccionar Crear (Shift+F6). Ingresar a continuacin el tipo de segmento y sus atributos. Al presionar Enter, el sistema transfiere el nombre del tipo de segmento al editor de IDoc. 3.3.4 Para ingresar ms segmentos, repetir el procedimiento del punto 3.3. Luego de haber creado el primer segmento, debe indicarse para los restantes el nivel (mismo nivel o nivel hijo) en el cual se quiere insertar el nuevo segmento. 3.3.5 Guardar el tipo base de IDoc. 3.4 Liberacin del Tipo de Segmento y Tipo Bsico de IDoc Una vez terminada la definicin de la estructura del IDoc y sus segmentos, ambos objetos deben ser liberados a fin de que se encuentren disponibles para su transporte a los sistemas de testing y produccin. Primero deben liberarse los segmentos y despus el tipo base de IDoc. Para liberar un segmento, ejecutar la transaccin WE31. Ingresar el tipo de segmento y seleccionar Tratar, Liberar. El sistema automticamente completa el check box en el bloque de definiciones del segmento. Para liberar un tipo base de IDoc, ejecutar la transaccin WE30. Ingresar el tipo base de IDoc y seleccionar Tratar, Liberar. Una vez que el segmento / tipo base de IDoc es liberado, ya no pueden ser modificados. En caso de ser necesario introducir modificaciones debe cancelarse la liberacin. Los pasos para cancelar la liberacin son los mismos a los indicados para la liberacin. 3.5 Transporte de Segmentos y Tipo Base de IDocs Las modificaciones a los tipos base de IDocs y segmentos son automticamente registradas en una orden de transporte. Luego de transportados los objetos, los mismos pueden volverse a transportar manualmente desde el editor de segmentos / IDoc seleccionando: Segmento Transportar. Al transportarse un segmento se transportan automticamente todas sus definiciones y documentacin. Sin embargo, al transportarse un tipo base de IDoc no se transportan automticamente todos sus segmentos.

4 - Extensin de un IDoc.
Las ampliaciones de IDocs son componentes que se utilizan para extender tipos de IDoc base ya existentes de una forma predefinida. Estas extensiones slo pueden ser realizadas por el cliente ya que los tipos de ampliacin no son proporcionados por SAP. Para crear un tipo de ampliacin: Transaccin: WE30 Camino Lgico: Desde el rea de men de EDI (transaccin WEDI), seleccionar Men SAP Desarrollo Tipos IDoc. En el editor de IDOC, elegir el componente Tipo de ampliacin e introducir el nombre en el campo Objeto. Seleccionar Objeto desarrollo Crear. En ste momento, la ventana de dilogo Crear un tipo de ampliacin se mostrar por pantalla. Elegir una de las siguientes tres opciones: Crear nuevo. Crear como copia. Crear como sucesor. Introducir los nombres de la personas responsables as como una breve descripcin del nuevo tipo de ampliacin a crear. Seleccionar Continuar. 1 - Para aadir segmento ampliado a un segmento de referencia, colocar el cursor sobre el segmento de referencia siguiente a donde se pretenda aadir el nuevo segmento y seleccionar Crear. Aparecer un mensaje indicando que los segmentos creados despus de un segmento de referencia slo pueden ser creados como segmentos hijos. La secuencia en la cual aparecen los segmentos de referencia en el tipo de ampliacin es irrelevante. Lo realmente importante es que dichos segmentos existan en el tipo de IDoc base que est siendo ampliado. Las ampliaciones de cliente realizadas utilizando tipos de ampliacin pueden soportarse cuando el sistema se actualice a una nueva versin R/3. Los sucesores a tipos de IDoc base de versiones anteriores se combinan automticamente con los tipos de ampliacin que ya estn siendo utilizados. No se requiere un mantenimiento manual. Los tipos de IDoc base implementados por el cliente y sus ampliaciones permanecen sin cambios en la actualizacin. 4.1 - Configuracin el procesamiento Outbound Por cada segmento extendido, tiene que haber una extensin en el cdigo del mdulo de funcin de outbound, que inserte los datos indicados en la extensin del segmento.

El programa o funcin que genere el Idoc puede o no ser un estandar SAP. En caso de serlo, habr que insertar el cdigo necesario para manejar las extensiones en una User Exit. Para hacer esto usar la transaccin CMOD. Si es un programa Z, solo habr que actualizarlo para que considere la extensin. Por otro lado, habr que actualizar los Acuerdos de Interlocutores que utilicen el Idoc extendido, especificando el nombre de la extensin creada. 4.2 - Configuracin el procesamiento Inbound Por cada segmento extendido, tiene que haber una extensin en el cdigo del mdulo de funcin de inbound, que considere el tipo de segmento extendido recibido entre los datos para poder procesarlo. El programa o funcin que genere el Idoc puede o no ser un estandar SAP. En caso de serlo, habr que insertar el cdigo necesario para manejar las extensiones en una User Exit. Para hacer esto usar la transaccin CMOD. Si es un programa Z, solo habr que actualizarlo para que considere la extensin. Por otro lado, habr que actualizar los Acuerdos de Interlocutores que utilicen el Idoc extendido, especificando el nombre de la extensin creada.

5 - Creacin de destinos RFC, puertos y sistemas lgicos.


5.1 - Definicin de Destinos RFC Transaccin: SM59 Camino Lgico: Desde el rea de men de EDI (transaccin WEDI), seleccionar Men SAP Gestin Destino RFC. Dependiendo del sistema destino, la conexin RFC ser de distinto tipo. En general, para envi de Idocs, se crean conexiones del tipo TCP/IP, especificando el nombre del servidor destino y el puerto TCP destino. 5.2 - Definicin de puerta. (A lo largo de este documento se usar la palabra Puerto o Puerta, indistintamente) Transaccin: WE21 Camino Lgico: Desde el rea de men de EDI (transaccin WEDI), seleccionar Men SAP Gestin Descripcin Puerta. Para una descripcin detallada, buscar en SAP Library: Port Definition: Configuring Ports Los Idocs pueden ser enviados y recibidos a travs de diferentes medios. Con el objetivo de no acoplar la definicin de las caractersticas del medio con la aplicacin que lo est utilizando, el medio es accedido va puertos. En otras palabras, un puerto es un nombre lgico para un dispositivo de entrada/salida. Los programas se comunican con un puerto a travs de una interfaz estndar. En vez de definir el medio de comunicacin directamente en el Acuerdo de Interlocutor (Partner Profile), se asigna un nmero de puerto, y es este puerto el que designa realmente al medio. Esto permite definir las caractersticas de los puertos individualmente y usar un puerto en mltiples Acuerdos de Interlocutores. Los cambios en un puerto se reflejarn automticamente en todos los acuerdos que lo estn utilizando. Al menos un puerto debe existir para cada sistema externo. La siguiente figura muestra cmo los Idocs son enviados a dos sistemas va tres puertos. Los tipos de puertos ms comunes son los siguientes: Ficheros (File Interface) Permite intercambiar Idocs a travs de archivos del sistema operativo. El sistema que enva el IDoc crea un archivo en el file system. Luego notifica al sistema receptor via RFC sincrnico que el archivo ha sido transferido, que est localizado en un deteminado directorio, y que tiene un determinado nombre. SAP recomienda no usar nombres de archivos estticos, dado que el archivo es sobreescrito cada vez que el Idoc se enva. Se recomienda usar el mdulo de funciones EDI_PATH_CREATE_CLIENT_DOCNUM, el cual genera el nombre del archivo a partir del mandante y nro. de Idoc. RFC Transaccional Se usa para escenarios de distrubucin ALE. El nombre del puerto se puede definir a mano o dejar que SAP lo elija. Adems del puerto, hay que definir el destino RFC. Archivo XML Enva documentos en formato XML. Para utilizar este tipo de puerto, es necesario definir el nombre del puerto, el formato del XML, y el nombre del archivo a generar. Al igual que con el tipo de puerto Fichero, se puede invocar a la funcin EDI_PATH_CREATE_CLIENT_DOCNUM para que genere los nombres del archivo en forma dinmica. XML-HTTP En vez de definir el nombre del archivo XML, se especifica un destino RFC. 5.3 - Definicin de sistemas lgicos Transaccin: BD54 Camino Lgico: Desde la transaccin SALE, seleccionar Preparar sistemas receptores y de envo Preparar sistemas lgicos Nombrar sistema lgico. Asignar sistema lgico a mandante Cuando el sistema lgico es un R/3, se lo debe asignar a un mandante. Transaccin: SCC4 Camino Lgico: Desde la transaccin SALE, seleccionar Preparar sistemas receptores y de envo Preparar sistemas lgicos Asignar sistema lgico a un mandante. Hacer doble click sobre el mandante que al que se desea asignar, y posteriormente completar con el nombre del sistema lgico.

6 - Creacin de los acuerdos de interlocutores.

Transaccin: WE20 Camino Lgico: Desde la transaccin WEDI, seleccionar Men SAP Gestin Acuerdo de Interlocutores EDI Un interlocutor ALE es un sistema SAP remoto o un sistema legacy con el que se intercambian datos. El acuerdo de interlocutor especifica varias de las caractersticas de los datos que se intercambian incluyendo el modo de operacin y la organizacin o persona responsable por el manejo de los errores. Cuando los datos son intercambiados entre interlocutores, es importante que el emisor y el receptor estn de acuerdo en la sintaxis y semntica de los datos intercambiados. Este acuerdo es lo que se llama Acuerdo de Interlocutor, y es lo que le informa al receptor de la estructura de los datos enviados y cmo los contenidos deben ser interpretados. La datos definidos en un acuerdo de interlocutor son: Tipo de Idoc y Tipo de mensaje, los cuales son el identificador clave del acuerdo de interlocutor. Nombre del Emisor y Receptor que intercambiarn los Idocs para el tipo de Idoc y mensaje. Puerto por el cual el emisor y el receptor se comunicarn. En el interlocutor se definen datos especficos de cada mensaje a transmitir en los parmetros de salida o entrada segn corresponda. Mediante la transaccin WE20 se crea el acuerdo de interlocutor con el sistema lgico.

7 - Creacin de un nuevo tipo de Mensaje en SAP.


Transaccin: WE81

Camino Lgico: Desde el rea de men EDI (transaccin WEDI), seleccionar Men SAP Desarrollo Tipos de Mensajes En este paso se asigna un tipo de mensaje a los contenidos de datos a ser transferidos en el IDoc. Los mensajes de usuario deben ser nombrados comenzando con Z.

8 - Relacin entre un tipo de Mensaje y un Tipo de IDoc

Transaccin: WE82 Camino Lgico: Desde el rea de men de EDI (transaccin WEDI), seleccionar Men SAP Desarrollo Tipo Mensaje/IDoc En este paso se asigna el tipo de mensaje creado en el paso anterior a un tipo de IDoc. Esta asociacin no slo sirve a fin de documentar el mensaje en que est basado cada tipo de IDoc, sino que adems verifica esta asociacin el momento en que el IDoc es generado. Creacin de un modelo de distribucin. La relacin entre sistemas lgicos, tipos de mensajes, BAPIs y filtros estn definidas en el Modelo de Distribucin. Las aplicaciones y la capa ALE usan el modelo de distribucin para determinar los receptores y para controlar la distribucin de datos. Los escenarios de distribucin definen los tipos de IDocs y los pares de Interlocutores que participan en una distribucin ALE. El escenario de distribucin es la referencia para determinar qu datos sern replicados y quienes sern los receptores. El modelo de distribucin es compartido entre todos los interlocutores participantes. Por lo tanto solo puede ser mantenido en uno de los sistemas, el cual lo podemos llamar el sistema lder. Solo uno de los sistemas es el sistema lder, pero puede ser seteado para cualquiera de los interlocutores en cualquier momento, an si el escenario ya se encuentra activo. Puede haber varios escenarios para diferentes propsitos. Por otro lado se puede poner todo en un solo escenario. Lo ms recomendable es crear un escenario por administrador. Si hay un solo administrador ALE, no tiene mucho sentido tener ms de un escenario. Pero si hay varios departamentos con diferentes requerimientos, ser ms til crear un escenario por departamento.

9 - Pasos para crear un Modelo de Distribucin:

Transaccin: BD64 Camino Lgico: Desde la transaccin SALE, seleccionar Aplication Link Enabling (ALE) Modelar e implementar modelos empresariales Actualizar modelos de Distribucin y Distribuir Vistas -Ir a la transaccin BD64 -Pasar al modo modificacin -Presionar el botn Crear Modelo Vista (Ctrl+F4) Aparecer la siguiente ventana: -Completar el texto breve y el nombre tcnico para el modelo de distribucin y presionar continuar. -Seleccionar el registro recin creado y presionar el botn Insertar Tipo Mensaje (CTRL+F7) Aparecer la siguiente ventana: -Completar el campo Emisor con el nombre del Sistema lgico que transmitir el mensaje. -Completar el campo Destinatario con el nombre del Sistema lgico que recibir el mensaje. -Completar el campo Tipo de mensaje con el mensaje que se transmitir entre estos sistemas lgicos. Importante No se puede mantener un tipo de mensaje entre el mismo emisor y receptor en ms de un modelo de distribucin. 10,- Creacin de un Idoc de salida Existen tres formas de creacin de Idocs: Desde un programa ABAP (desarrollo Z). Desde un puntero de modificacin (Change Pointer). Desde mensajes de logstica. Observacin: Los pasos para: Crear de un nuevo tipo de IDoc en SAP. Extender un Idoc. Crear sistemas lgicos, puertos y destinos RFC. Crear acuerdos de interlocutores. Crear un nuevo tipo de Mensaje en SAP. Relacionar un tipo de Mensaje con un tipo base de Idoc. Crear de un modelo de distribucin. fueron explicados ms arriba, por lo cual solamente se proceder a explicar los mnimos pasos necesarios para crear un Idoc. 10.1 - Creacin de Idocs desde un programa ABAP Los pasos a seguir para la creacin de un IDoc de salida desde un programa ABAP son los siguientes: 1- Seleccionar la informacin de la base de datos de acuerdo a los parmetros de seleccin ingresados. 2- Completar la informacin correspondiente al registro de control. 3- Completar una tabla interna de tipo EDIDD con los registros de datos de los segmentos correspondientes. 4- Llamar al servicio de la capa ALE (MASTER_IDOC_DISTRIBUTE) para crear los IDOCs en la base de datos. 5- Ejecutar COMMIT WORK. 6- Enviar el Idoc invocando al programa RSEOUT00. A continuacin se detalla un ejemplo con los pasos 2, 3,4 y 5 * DECLARACION DE DATOS DATA: c_message_type LIKE edidc-mestyp VALUE 'ZINVRV',"Tipo Mensa c_base_idoc_type LIKE edidc-idoctp VALUE 'ZINVRV01',"Tipo de Id c_invrev_segname(7) TYPE C VALUE 'Z1INVRV',"Nombre Seg c_rcvprn LIKE edidc-rcvprn VALUE 'SAPBCD',"Interloc. IDOC_CONTROL LIKE EDIDC, T_COMM_CONTROL LIKE EDIDC OCCURS 0 WITH HEADER LINE, IDOC_DATA LIKE EDIDD OCCURS 0 WITH HEADER LINE. * CAMPOS DE CONTROL DEL IDOC idoc_control-doctyp = c_message_type."Tipo Mensaje idoc_control-mestyp = c_message_type."Tipo Mensaje idoc_control-idoctp = c_base_idoc_type."Tipo de Idoc

idoc_control-serial = space. idoc_control-direct = '1'. idoc_control-serial = sy-datum. idoc_control-serial+8 = sy-uzeit. idoc_control-rcvprn = c_rcvprn"Nro Interlocutor Desti idoc_control-rcvprt = 'LS'"Tipo interlocutor dest APPEND idoc_control. * CAMPOS DE DATOS DEL IDOC * Esta seccin la repite una vez por cada registro de datos a insertar * en el IDoc. * Indica cul es el tipo de segmento IDOC_DATA-SEGNAM = C_INVREV_SEGNAME."Nombre Segmento * Completa los datos de la estructura del segmento CLEAR Z1INVRV. Z1INVRV-CAMPO_01 = VALOR_01 ... ... ... Z1INVRV-CAMPO_NN = VALOR_NN * Mueve la estructura con los datos del segmento al nico campo de datos IDOC_DATA-SDATA = Z1INVRV."Datos del Segmento * Inserta el registro actual a la tabla interna de datos del Idoc APPEND IDOC_DATA. *--- Call the distribute function with the required parameters CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE' EXPORTING MASTER_IDOC_CONTROL = IDOC_CONTROL TABLES COMMUNICATION_IDOC_CONTROL = T_COMM_CONTROL MASTER_IDOC_DATA = IDOC_DATA EXCEPTIONS ERROR_IN_IDOC_CONTROL =1 ERROR_WRITING_IDOC_STATUS =2 ERROR_IN_IDOC_DATA =3 SENDING_LOGICAL_SYSTEM_UNKNOWN =4 OTHERS = 5. if sy-subrc = 0. COMMIT WORK. endif. Una vez completados estos pasos, queda creado el Idoc. El mismo se guarda fsicamente en las tablas EDIDC y EDID4. Se lo puede ver desde la transaccin WE05. Para enviar el Idoc a su destinatario, se invoca al programa RSEOUT00. 10.2 - Creacin de Idocs utilizando Punteros de Modificacin (Change Pointers) Toda vez que se crean o modifican datos maestros, tal como datos maestros de materiales, proveedores, etc., el sistema escribe "punteros de modificacin" (change pointers) como registro de cada una de estas modificaciones para cada documento. El reporte estndar RBDMIDOC es ejecutado a fin de procesar todas las entradas en la tabla de punteros de modificacin. Para generar los IDocs, este programa llama a un mdulo de funcin especifico para cada mensaje. Los pasos a seguir para la creacin de un Idoc de salida utilizando Punteros de Modificacin son los siguientes: 10.2.1 - Activar los punteros de modificacin en forma global. 10.2.2 - Activar los punteros de modificacin para nuestro tipo de mensaje. 10.2.3 - Definir los campos relevantes para la generacin de punteros de modificacin. 10.2.4. - Relacionar el tipo de mensaje con el mdulo de funcin. 10.2.5 - Crear un mdulo de funcin para leer los punteros de modificacin y crear los Idocs. 10.2.1 - Activacin de punteros de modificacin en forma global Transaccin: BD61 Camino Lgico: Desde la configuracin de ALE en el IMG (transaccin SALE), seleccionar Modelar e Implementar procesos empresariales Configurar distribucin de datos maestros Configurar reproduccin de datos modificados Activacin general de puntero de modificacin. Marcar el Flag: Puntero modificacin general activado y grabar. 10.2.2 - Activacin de punteros de modificacin por Tipo de Mensaje Transaccin: BD50 Camino Lgico: Desde la configuracin de ALE en el IMG (transaccin SALE), seleccionar Modelar e Implementar procesos empresariales Configurar distribucin de datos maestros Configurar reproduccin de datos modificados Activar puntero modificacin por tipo mensaje. Agregar una entrada para el mensaje deseado, y marcarla como activa. 10.2.3 - Definicin de campos relevantes para la generacin de Punteros de Modificacin Transaccin: BD52 Camino Lgico: Herramientas ALE Desarrollo ALE IDoc Servicio de Modificaciones Actualizar campos relevantes para modificacin Ingresar entradas para los campos sobre los cuales se quieran crear Punteros de Modificacin. Primero completar el tipo de mensaje y presionar continuar. Luego se desplegar una pantalla para ingresar los campos: - Objeto de Modificacin -Tabla -Campo 10.2.4 - Relacin entre el Tipo de Mensaje y el Mdulo de Funcin

Transaccin: BD60 Camino Lgico: Herramientas ALE Desarrollo ALE IDoc Filtrado de datos Actualizar filtrado mediante clases. En este paso se relaciona el tipo de mensaje con el mdulo de funcin desarrollado para analizar/procesar los punteros de modificacin. Ejecutar la transaccin BD60 e ingresar una entrada para el tipo de mensaje deseado, y el mdulo de funcin que se utilizar para procesar ese Puntero de Modificacin. En otras palabras, cuando se ejecute el programa estandar RBDMIDOC para procesar los Punteros de Modificacin y se detecte que uno de los campos que se insertaron en el paso anterior (campos relevantes para la generacin de Punteros de Modificacin) se modific, se invocar a la funcin que se est definiendo en este paso. 10.2.5 - Crear un mdulo de funcin para leer los punteros de modificacin y crear los Idocs. Esta funcin contiene la lgica para la generacin de los IDocs a partir de punteros de modificacin. Es invocada desde el programa RBDMIDOC, a partir de la configuracin realizada en el punto anterior. La lgica del programa contiene los siguientes pasos: 123456789Leer los punteros de modificacin generados usando la funcin CHANGE_POINTERS_READ. Analizar los punteros de modificacin para determinar cules documentos son vlidos. Determinar la clave del documento de aplicacin del paso 2. Seleccionar datos de aplicacin de la base de datos, usando la clave de objeto identificada en el paso 3. Completar la informacin del registro de control del IDoc. Completar una tabla interna de estructura EDIDD con registros de datos para todos los segmentos. Llamar al servicio de la capa ALE (MASTER_IDOC_DISTRIBUTE) para crear los datos en la base de datos. Actualizar el estado de los punteros de modificacin Ejecutar un COMMIT WORK.

Generalmente se utiliza una funcin estndar, salvo que se est extendiendo un Idoc. Igualmente, en caso de estar extendiendo, lo que se hace generalmente es copiar una funcin estndar y agregarle la lgica necesaria para que se considere el segmento extendido al momento de crear el Idoc. 10.3 - Creacin de Idocs desde un Mensaje de Logstica El proceso lgico de generacin de Idocs de salida desde Mensajes de Logstica es el siguiente: Un programa ABAP (desarrollo Z) o transaccin estndar crea un mensaje en la tabla NAST. El mensaje es procesado por el programa ABAP estndar RSNAST00, el cual lee el mensaje desde la tabla NAST, y llama al mdulo de funcin adecuado para crear el Idoc, invocando a la funcin MASTERIDOC_DISTRIBUTE. El Idoc es enviado a su destinatario al ejecutar el programa RSEOUT00. Se puede usar el concepto de Mensajes R/3 para disparar la creacin de Idocs de la misma manera que se dispara la impresin de SapScripts. La tabla utilizada para esto es la NAST. Esta tabla guarda recordatorios escritos por aplicaciones. Estos recordatorios son llamados Mensajes (messages). Cada vez que una aplicacin ve la necesidad de pasar informacin a un sistema externo, un mensaje es escrito en la tabla NAST. Un controlador de mensajes (message handler) eventualmente chequear las entradas en esta tabla y ejecutar la accin apropiada. Un mensaje NAST de salida es guardado en un solo registro en la tabla NAST. El registro guarda toda la informacin que es necesaria para crear el Idoc. Esto incluye, entre otras cosas, una clave de objeto para identificar al objeto procesado, el emisor y receptor del mensaje.

11 - Creacin de un Idoc de entrada

La configuracin de la interfaz de entrada incluye una seccin de Configuracin de Workflow para el manejo de excepciones. Podemos dividir esta tarea en dos partes: 11.1 - Configuracin de Workflow. 11.2 - Configuracin de la Interfaz de entrada. 11.1 - Configuracin de Workflow La configuracin de workflow es necesaria para el manejo de excepciones en el proceso de entrada. Los pasos que deben llevarse a cabo son: 1 Crear un nuevo Objeto de Aplicacin IDoc en el Business Object Builder con eventos de triggering y de finalizacin. 2 Crear una nueva tarea basada en el objeto de aplicacin Idoc. 3 Crear el link de los eventos. 11.1.1 - Crear un nuevo Objeto de Aplicacin Idoc Transaccin: SWO1 Camino Lgico: Herramientas SAP Business Workflow Desarrollo Herramientas def. Business Object Builder 1 Seleccionar el botn Buscar (ctrl.+F) y expandir las opciones de seleccin seleccionando el botn Selecciones (todas). Ingresar IDOCAPPL en el campo Tipo super y Ejecutar. 2 Seleccionar cualquier objeto y seleccionar Business Objects Copiar. El objeto seleccionado debe tener los eventos INPUTERROROCCURRED e INPUTFINISHED. 3 Asignar un nombre al Tipo de Objeto y al programa 4 Hacer doble clic sobre la nueva entrada creada. Seleccionar el cono de Datos bsicos y Modificar. Modificar el nombre y descripcin del objeto de manera que coincidan con los del IDoc. Generar y liberar el Tipo de objeto. 11.1.2 - Crear una nueva tarea basada en el Objeto de Aplicacin Idoc Observacin: Si al ejecutar este paso, llega a aparecer el mensaje: el problema es el siguiente: Las tareas y papeles, as como las definiciones workflow necesitan un ID, unvoco para todo el sistema y el mandante. De esta manera es posible realizar un transporte de estos objeltos de un sistema a otro, en todo momento y sin restricciones. Desde el punto de vista tcnico, esta uniformidad se realiza mediante un "nmero prefijo". Para cada sistema y cada mandante puede definirse un nmero prefijo propio. Esto se realiza en la tabla T78NR. Falta entrada para sistema NNN, mandante XXX

La transaccin es la OOW4. Una tarea de workflow define los atributos de la tarea que debe ser ejecutada cuando ocurre un error de aplicacin. Una tarea apunta a un mtodo a ser ejecutado y a un evento de triggering que comienza la tarea. La mejor opcin para definir una nueva tarea es copiar una existente, tal como ORDERS_ERROR (TS00008046). 1 Ejecutar la transaccin PFTC_COP. Transaccin: PFTC_COP Camino Lgico: Herramientas SAP Business Workflow Desarrollo Herramientas def. Tareas/Grupos de Tareas Copiar Seleccionar Tarea estndar para el tipo de tarea e ingresar algn nmero de tarea (ej: 74508518) como tarea. Seleccionar el cono Copiar. 2 Ingresar una abreviatura y nombre para la tarea. Presionar Enter. Esto debera copiar la tarea. Tomar nota del nmero creado (ejemplo: 90000001). Ejemplo de Sigla y Denominacin: Sigla: ZQOTE_ERROR Denominacin: ZQOTE Error de Entrada 3 Ejecutar la transaccin PFTC_CHG. Transaccin: PFTC_COP Camino Lgico: Herramientas SAP Business Workflow Desarrollo Herramientas def. Tareas/Grupos de Tareas Modificar Seleccionar Tarea estndar como tipo de tarea, y el nmero de tarea del paso 2 en el campo Tarea. Seleccionar Modificar. 4 Reemplazar el campo Tipo de Objeto con el Objeto de aplicacin IDoc creado ms arriba, ZIDOCZQOTE. 5 El siguiente paso es modificar el evento de Triggering. Seleccionar la solapa Event. Desencadenantes. Borrar el/los eventos existentes y crear otro basado en el Tipo de Objeto: Tipo de Objeto: ZIDOCZQOTE Evento: INPUTERROROCCURRED 6 Debe ahora definirse el link de datos entre el evento de triggering y la tarea. Seleccionar la lnea correspondiente al evento de triggering y presionar el cono Defin. Flujo datos. Aceptar los valores propuestos para los campos Expresin y Excepcin. 7 Activar el link 8 Definir ahora el evento de terminacin. Seleccionar la solapa Event. Finalizadores. Borrar el eventos existente y crear otro basado en el Tipo de Objeto: Tipo de Objeto: ZIDOCZQOTE Evento: INPUTFINISHED Elemento: WIOBJECT_ID (la nica opcin disponible) 9 Definir la tarea como Tarea General de modo tal que pueda ser ejecutada por todos. Seleccionar Datos adicionales Asign. Responsable Actualizar. Seleccionar la opcin Tarea General y grabar. 11.2 - Configuracin de la Interfaz de entrada Luego de definir la configuracin de workflow, deben llevarse a cabo los siguientes pasos para la configuracin del proceso de entrada: 1 - Definir un nuevo tipo de mensaje. 2 - Relacionar el tipo de mensaje al tipo de IDoc. 3 - Asignar el mdulo de funcin al tipo de mensaje lgico y Idoc. 4 - Definir los atributos para el mdulo de funcin de entrada. 5 - Definir un nuevo Cdigo de Operacin. 6 - Asignar mtodos de entrada. 7 - Definir o modificar un acuerdo de interlocutor . 8 - Definir Puerta. 9 - Definir Mdulo de Funcin. 11.2.1 - Definicin de mensaje Transaccin: WE81 Camino Lgico: Desde el rea de men de EDI (transaccin WEDI), seleccionar Men SAP Desarrollo Tipos de mensajes En este paso se asigna un tipo de mensaje a los contenidos del IDoc y se le da una descripcin corta. Definir un tipo de mensaje. Por ejemplo: ZQUOTE (Oferta). Ver detalles del procedimiento ms arriba en este mismo documento: Creacin de un nuevo Tipo de Mensaje Relacin entre el tipo de mensaje y el tipo de Idoc Transaccin: WE82 11.2.2 - Camino Lgico: Desde el rea de men de EDI (transaccin WEDI), seleccionar Men SAP -> Desarrollo -> Tipo IDoc / Mensaje En este paso se asigna el tipo de mensaje creado en el paso anterior al tipo de IDoc. Para este ejemplo, relacionar el tipo de mensaje (ej: ZQUOTE) con el tipo base de IDoc ( ej: ZQUOTE01). Ver detalles del procedimiento ms arriba en este mismo documento: Relacin entre un Tipo de Mensaje y un Tipo Base de IDoc. Relacin entre el mdulo de funcin y el tipo de mensaje Transaccin: WE57 11.2.3 - Camino Lgico: Desde el rea de men de EDI (transaccin WEDI), seleccionar Desarrollo Mensaje / Obj.Apl. Esta configuracin establece un link entre el mdulo de funciones, variante de mensaje (tipo de mensaje, variante lgica de mensaje y funcin lgica de mensaje). Observacin: En el caso de mensajes de salida, esta relacin es establecida en el acuerdo de interlocutor. Para mensajes de entrada, no existe entrada para el tipo de IDoc en el acuerdo de interlocutor, por lo que esta configuracin es usada para establecer un tipo de IDoc, mensaje y business object vlidos para el mdulo de funcin. 1 Crear un mdulo de funcin (o sea una funcin). No es recomendable crearla de cero. Copiarla de alguna existente, ya que los parmetros de la funcin son estndar. Por ejemplo, copiar el mdulo de funcin IDOC_INPUT_ORDERS a Z_IDOC_INPUT_ZQUOTE, y asignarlo a algn grupo de funciones Z. 2 Crear una nueva entrada en la transaccin WE57. Los valores de Mdulo, Tipo Base, Tipo Mensaje y Tipo Objeto mostrados a continuacin son de ejemplo, pero el Tipo y Sentido se deben respetar. Mdulo: Tipo: Tipo Base: Tipo Mensaje: ZQUOTE Z_IDOC_INPUT_ZQUOTE F (mdulo de funcin) ZQUOTE01

Tipo Objeto: Sentido: font size = "4">Definir atributos del Mdulo de Funcin</font>

ZIDOCZQOTE 2 (Salida)

Transaccin: BD51 Camino Lgico: Herramientas => ALE Desarrollo ALE => IDoc => Proceso de Entrada => Mdulo de Funciones => Actualizar atributos Crear una nueva entrada, con el siguiente detalle: Mdulo de funcin de entrada: Z_IDOC_INPUT_ZQUOTE Tipo de Entrada: 2 (Entrada indiv. Con bloqueo de IDoc en transaccin CALL) Dilogo posible: X El flag de dilogo posible indica si el IDoc puede ser procesado en modo de dilogo luego de un error. Si esta opcin est seteada, el usuario puede reprocesar el juego de datos en modo visible. 11.2.4 - Definicin de Cdigo de Operacin Transaccin: WE42 Camino Lgico: Desde el rea de men de EDI (transaccin WEDI), seleccionar Men SAP Desarrollo Parametrizaciones Entrada Cd. operacin proceso de entrada En este paso se asigna el cdigo de operacin de proceso al mdulo de funcin creado para el proceso de entrada. El cdigo de operacin de proceso es un medio indirecto de identificar al mdulo de funcin. Definir el cdigo de operacin (Ej: ZQUOT), segn el siguiente detalle: Descripcin: Mdulo de Funcin: Cantidad mxima de repeticiones: Marcar el flag Proceso con servicio ALE Marcar el flag Procesamiento c. Mdulo de funciones Asignar mtodos de entrada Transaccin: BD67 Este paso crea un link entre el cdigo de proceso definido en el paso previo y el mdulo de funcin. Adems, se definen parmetros adicionales que la componente de workflow utiliza para manejo de errores, as como programacin avanzada de workflow. Definicin de Acuerdo de Interlocutor Transaccin: WE20 Camino Lgico: Desde el rea de men de EDI (transaccin WEDI), seleccionar Men SAP Gestin Acuerdo entre interlocutores EDI. Crear un Acuerdo de Interlocutor con la siguiente informacin: Nro. Interlocutor EDI: Tipo de Interlocutor EDI: Tipo de Autor: Autor: Presionar Grabar. Adicionar parmetro de entrada con la siguiente informacin: Opciones de Salida: Tipo de interlocutor EDI: Funcin interlocutor EDI: Tipo de mensaje: Cd. Oper.: Verif. Sintax.: Lanzamiento inmediato: Definicin de Puerta Transaccin: WE21 Camino Lgico: Desde el rea de men de EDI (transaccin WEDI), seleccionar Gestin Descripcin Puerta Se crea una puerta, (Ejempo EDI_ZQOT02) de tipo fichero, para definir el destino fsico del IDOC una vez generado y transmitido a la puerta de salida. Datos de la puerta de fichero: 1. Directorio fsico: 2. Fichero de salida: 11.2.5 - Definicin de Mdulo de Funcin Un mdulo de funcin de entrada de Idocs tiene la siguiente secuencia de pasos. 1 Leer la informacin del registro de control. Verificar la informacin de control (tipo de mensaje). Si el tipo de mensaje es incorrecto, generar una excepcin. 2 - Leer los datos para un IDoc. 3 Procesar cada registro de datos. 5 Completar los parmetros de retorno. 6 Si existen otros IDocs, volver al paso 2. Si no, ir al paso 7. 7 Retornar del mdulo de funcin. Los resultados de la ejecucin son pasados a la capa ALE. En general, los mdulos de funciones que reciben Idocs tienen los siguientes parmetros: ZQUOTE02 X "Valor de Ejemplo LS LS ZQUOTE ZQUOT "Valor de Ejemplo "Valor de Ejemplo X Poner el nombre del sistema lgico que se haya creado. LS (sistema lgico) US (Usuario) (el Id del usuario que lo est creando.) Oferta Z_IDOC_INPUT_ZQOTE 2

Import parameters INPUT_METHOD MASS_PROCESSING

Reference field BDWFAP_PAR-INPUTMETHD BDWFAP_PAR-MASS_PROC

Opt Y/N N N

Export Parameters WORKFLOW_RESULT APPLICATION_VARIABLE IN_UPDATE_TASK CALL_TRANSACTION_DONE

Reference field BDWFAP_PAR-RESULT BDWFAP_PAR-APPL_VAR BDWFAP_PAR-UPDATETASK BDWFAP_PAR-CALLTRANS

Opt Y/N N N N N

Table Parameters IDOC_CONTRL IDOC_DATA IDOC_STATUS RETURN_VARIABLES SERIALIZATION_INFO

Reference field EDIDC EDIDD BDIDOCSTAT BDWFRETVAR BDI_SER

Optional Y/N

Exceptions WRONG_FUNCTION_CALLED A continuacin se detalla genricamente el cdigo de procesamiento de Idocs de entrada, donde se puede ver que realiza los pasos mencionados ms arriba. * DECLARACION DE DATOS DATA: C_SEGNAM(10) TYPE C VALUE 'Z1INVRV'. *RECORRE EL/LOS IDOC/S DE CABECERA LOOP AT IDOC_CONTRL. * RECORRE LOS SEGMENTOS DE DATOS PARA CADA UNA DE LAS * CABECERAS DE IDOCS (REGISTROS DE CONTROL) LOOP AT IDOC_DATA WHERE DOCNUM = IDOC_CONTRL-DOCNUM. * * SEGUN EL SEGMENTO, GUARDA LOS DATOS EN UNA DETERMINADA ESTRUCTURA Y LO PROCESA. CASE IDOC_DATA-SEGNAM. WHEN C_SEGNAM. IT_Z1INVRV = IDOC_DATA-SDATA. PERFORM F_PROCESAR_XXXX ... ... ... WHEN C_XXXXXX. IT_XXXXXXX = IDOC_DATA-SDATA. PERFORM F_PROCESAR_NNNN ENDCASE. ENDLOOP."LOOP AT IDOC_DATA * GUARDA EL RESULTADO DE LA EJECUCION PARA EL IDOC ACTUAL PERFORM UPDATE_IDOC_STATUS.

ENDLOOP."LOOP AT IDOC_CONTRL. ************************************************************************ * FORMS ************************************************************************ FORM F_PROCESAR_XXXX * Ac insertar la lgica necesaria para el procesamiento del registro ENDFORM. *---------------------------------------------------------------------* * FORM UPDATE_IDOC_STATUS * *---------------------------------------------------------------------* * ........ * *---------------------------------------------------------------------*

FORM UPDATE_IDOC_STATUS. *--- Now we check the CALL TRANSACTION return code and set IDOC status CLEAR IDOC_STATUS. IF RETURN_CODE = 0. WORKFLOW_RESULT = '0'. IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM. IDOC_STATUS-STATUS = '53'. IDOC_STATUS-UNAME = SY-UNAME. IDOC_STATUS-REPID = SY-REPID. IDOC_STATUS-MSGTY = SY-MSGTY. IDOC_STATUS-MSGID = SY-MSGID. IDOC_STATUS-MSGNO = SY-MSGNO. IDOC_STATUS-MSGV1 = SY-MSGV1. IDOC_STATUS-MSGV2 = SY-MSGV2. IDOC_STATUS-MSGV3 = SY-MSGV3. IDOC_STATUS-MSGV4 = SY-MSGV4. RETURN_VARIABLES-WF_PARAM = 'Processed_IDOCs'. RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM. APPEND RETURN_VARIABLES. ELSE. WORKFLOW_RESULT = '99999'. IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM. IDOC_STATUS-STATUS = '51'. IDOC_STATUS-UNAME = SY-UNAME. IDOC_STATUS-REPID = SY-REPID. IDOC_STATUS-MSGTY = SY-MSGTY. IDOC_STATUS-MSGID = SY-MSGID. IDOC_STATUS-MSGNO = SY-MSGNO. IDOC_STATUS-MSGV1 = SY-MSGV1. IDOC_STATUS-MSGV2 = SY-MSGV2. IDOC_STATUS-MSGV3 = SY-MSGV3. IDOC_STATUS-MSGV4 = SY-MSGV4. RETURN_VARIABLES-WF_PARAM = 'ERROR_IDOCS'. RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM. APPEND RETURN_VARIABLES. ENDIF. APPEND IDOC_STATUS. ENDFORM." UPDATE_IDOC_STATUS

Das könnte Ihnen auch gefallen