Manual Para La Creacion de Idocs by Mundosap

Embed Size (px)

Citation preview

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    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.

    Los temas explicados son los siguientes:

    Acerca de este Manual ................................................................................ 3

    Qu es un Idoc?........................................................................................... 3

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

    Creacin de un nuevo tipo de IDoc en SAP................................................. 9

    Creacin de los elementos de datos......................................................................................9 Creacin de Segmentos.........................................................................................................9 Creacin del Tipo Base de IDoc ..........................................................................................10 Liberacin del Tipo de Segmento y Tipo Bsico de IDoc ....................................................12 Transporte de Segmentos y Tipo Base de IDocs ................................................................13

    Extensin de un IDoc. ................................................................................ 14

    Configuracin el procesamiento Outbound..........................................................................15 Configuracin el procesamiento Inbound ............................................................................15

    Creacin de destinos RFC, puertos y sistemas lgicos. ............................ 16

    Definicin de Destinos RFC .................................................................................................16 Definicin de puerta. ............................................................................................................17 Definicin de sistemas lgicos .............................................................................................18 Asignar sistema lgico a mandante .....................................................................................19

    Creacin de los acuerdos de interlocutores. .............................................. 21

    Creacin de un nuevo tipo de Mensaje en SAP......................................... 22

    Relacin entre un tipo de Mensaje y un Tipo de IDoc................................ 24

    Creacin de un modelo de distribucin. ..................................................... 25

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    2

    Creacin de un Idoc de salida.................................................................... 28

    Creacin de Idocs desde un programa ABAP .....................................................................28 Creacin de Idocs utilizando Punteros de Modificacin (Change Pointers) ........................30 Activacin de punteros de modificacin en forma global.....................................................30 Activacin de punteros de modificacin por Tipo de Mensaje.............................................31 Definicin de campos relevantes para la generacin de Punteros de Modificacin ...........32 Relacin entre el Tipo de Mensaje y el Mdulo de Funcin ................................................33 Crear un mdulo de funcin para leer los punteros de modificacin y crear los Idocs. ......34 Creacin de Idocs desde un Mensaje de Logstica .............................................................35

    Creacin de un Idoc de entrada................................................................. 36

    Configuracin de Workflow ..................................................................................................36 Crear un nuevo Objeto de Aplicacin Idoc .......................................................................36 Crear una nueva tarea basada en el Objeto de Aplicacin Idoc ......................................37 Configuracin de la Interfaz de entrada...............................................................................39 Definicin de Cdigo de Operacin ..................................................................................42 Definicin de Mdulo de Funcin......................................................................................44

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    3

    Acerca de este Manual

    A lo largo de este manual se muestran las pantallas y pasos para la creacin y modificacin de objetos con el fin de crear IDocs. Muchas veces hace falta darle nombres a esos objetos. Tener en cuenta que los nombres asignados son solamente a modo de ejemplo. No siguen ninguna nomenclatura y se podra haber utilizado cualquier otro.

    Si bien este documento intenta ser lo ms abarcativo posible, recordar que es solamente un manual, y al momento de crear los IDocs podran llegar a aparecer pasos aqu no contemplados.

    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, entro 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 campos 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:

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    4

    MATMAS01 Maestro material E1MARAM Maestro material datos generales (MARA)

    E1MAKTM Master material - textos breves (MAKT) E1MARCM Maestro material segmento C (MARC) E1MARDM Maestro material almacn/segmento lotes (MARD) E1MARMM Maestro material unidades de medida (MARM) E1MEANM Maestro mat. nmeros art. europeos (MEAN) E1MBEWM Maestro material valoracin stocks (MBEW) E1MLGNM Maestro mat. datos por nm.almacn (MLGN) E1MVKEM Maestro material datos de ventas (MVKE) E1MLANM Maestro material clasif. impuestos (MLAN) E1MTXHM Maestro material texto explicativo cabecera E1MTXLM 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.

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    5

    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

    _________________________________________________________________________

    TABNAM CHAR 10 EDI4TABNAM Nombre de la estructura de tabla MANDT CLNT 3 EDI4MANDT Mandante DOCNUM CHAR 16 EDI4DOCNUC Nmero del IDOC DOCREL CHAR 4 EDI4DOCREL Release SAP del IDOC STATUS CHAR 2 EDI4STATUS Status del IDOC DIRECT CHAR 1 EDI4DIRECT Sentido OUTMOD CHAR 1 EDI4OUTMOD Modo de salida EXPRSS CHAR 1 EDI4EXPRSS Sustitucin en Entrada TEST CHAR 1 EDI4TEST Indicador test IDOCTYP CHAR 30 EDI4IDOCTP Nombre del tipo base

    CIMTYP CHAR 30 EDI4CIMTYP Ampliacin (definida por los clientes) MESTYP CHAR 30 EDI4MESTYP Tipo de mensaje MESCOD CHAR 3 EDI4MESCOD Variante de mensajes MESFCT CHAR 3 EDI4MESFCT Funcin de mensaje STD CHAR 1 EDI4STD Estndar EDI, indicador STDVRS CHAR 6 EDI4STDVRS Estndar EDI, versin y release STDMES CHAR 6 EDI4STDMES Tipo de mensajes EDI

    SNDPOR CHAR 10 EDI4SNDPOR Puerta remitente (System, subsystem externo) SNDPRT CHAR 2 EDI4SNDPRT Tipo de interlocutor EDI del remitente SNDPFC CHAR 2 EDI4SNDPFC Funcin interlocutor EDI del remitente SNDPRN CHAR 10 EDI4SNDPRN Nmero del interlocutor EDI del

    remitente SNDSAD CHAR 21 EDI4SNDSAD Direccin del remitente (SADR) SNDLAD CHAR 70 EDI4SNDLAD Direccin lgica del remitente RCVPOR CHAR 10 EDI4RCVPOR Puerta del destinatario

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    6

    RCVPRT CHAR 2 EDI4RCVPRT Tipo de interlocutor EDI del destinatario

    RCVPFC CHAR 2 EDI4RCVPFC Funcin de interlocutor EDI del destinatario

    RCVPRN CHAR 10 EDI4RCVPRN N interlocutor EDI destinatario RCVSAD CHAR 21 EDI4RCVSAD Direccin del destinatario (SADR) RCVLAD CHAR 70 EDI4RCVLAD Direccin lgica del destinatario CREDAT DATS 8 EDI4CREDAT Fecha de creacin CRETIM TIMS 6 EDI4CRETIM Hora de creacin REFINT CHAR 14 EDI4REFINT Fichero de transmisin (EDI

    Interchange) REFGRP CHAR 14 EDI4REFGRP Grupo de mensajes (EDI Message

    Group) REFMES CHAR 14 EDI4REFMES Mensaje (Mensaje EDI) ARCKEY CHAR 70 EDI4ARCKEY Clave del archivo de mensajes

    externo SERIAL HAR 20 EDI4SERIAL Serializacin _________________________________________________________________________

    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 Tipo Long. Tipo Texto breve _______________________________________________________________________

    SEGNAM CHAR 30 EDI4SEGNAM Segmento (nombre externo) MANDT CLNT 3 EDI4MANDT Mandante DOCNUM CHAR 16 EDI4DOCNUC Nmero del IDOC SEGNUM CHAR 6 EDI4SEGNUC Nmero de segmento PSGNUM NUMC 6 EDI4PSGNUC Nmero del segmento padre superior HLEVEL CHAR 2 EDI4HLEVEC Nivel de jerarqua de segmento SAP SDATA LCHR 1000 EDI4SDATA Datos de la aplicacin __________________________________________________________________________

    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.

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    7

    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 Tipo Long. Tipo Texto breve

    ___________________________________________________________________________

    ________

    TABNAM CHAR 10 EDI4TABNAM Nombre de la estructura de tabla MANDT CLNT 3 EDI4MANDT Mandante DOCNUM CHAR 16 EDI4DOCNUC Nmero del IDOC LOGDAT DATS 8 EDI4LOGDAT Fecha de la informacin de status LOGTIM TIMS 6 EDI4LOGTIM Hora de la informacin de status STATUS CHAR 2 EDI4STATUS Status del IDOC STAMQU CHAR 3 EDI4STAMQU Cualificador para mensaje en registro de

    status STAMID CHAR 20 EDI4STAMID Nro. de mensaje para mensaje de status:

    Clase mensaje STAMNO NUMC 3 EDI4STAMNO Nmero de mensaje en mensaje de status STATYP CHAR 1 EDI4STATYP Tipo de mensaje (A, W, E, S, I) en el mensaje

    de status STAPA1 CHAR 50 EDI4STAPA1 Primer parmetro de un mensaje en registro

    de status STAPA2 CHAR 50 EDI4STAPA2 Segundo parmetro de un mensaje en

    registro de status STAPA3 CHAR 50 EDI4STAPA3 Tercer parmetro de un mensaje en registro

    de status STAPA4 CHAR 50 EDI4STAPA4 Cuarto parmetro de un mensaje en registro

    de status STATXT CHAR 70 EDI4STATXT Texto para status UNAME CHAR 12 EDI4UNAME Nombre del usuario REPID CHAR 30 EDI4REPID Programa ROUTID CHAR 30 EDI4ROUTID Subrutina (rutina, mdulo de

    funciones) SEGNUM CHAR 6 EDI4SEGNUC Nmero de segmento SEGFLD CHAR 30 EDI4SEGFLD Campo de segmento REFINT CHAR 14 EDI4REFINT Fichero de transmisin (EDI Interchange) REFGRP CHAR 14 EDI4REFGRP Grupo de mensajes (EDI Message Group) REFMES CHAR 14 EDI4REFMES Mensaje (Mensaje EDI) ARCKEY CHAR 70 EDI4ARCKEY Clave del archivo de mensajes externo

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    8

    __________________________________________________________________________

    Los datos de los registros de datos 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).

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    9

    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:

    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 Descripcin ______________________________________________________________

    CHAR String de caracteres CLNT Cliente CUKY Campo moneda, referenciado por campos CURR DATS Campo fecha (YYYYMMDD), almacenado como char(8) LANG Clave de idioma NUMC Campo carcter con dgitos solamente TIMS Campo fecha (HHMMSS), almacenado como char(6)

    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.

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    10

    Pasos:

    2.1 - Ejecutar la transaccin WE31. Ingresar el nombre del tipo de segmento (debe comenzar con Z1) y seleccionar la opcin Crear (F5).

    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.

    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 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.

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    11

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    12

    Pasos:

    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.2 En la siguiente pantalla, seleccionar la opcin Crear nuevo e ingresar una descripcin para el tipo base de IDoc. Presionar Continuar.

    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.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.5 Guardar el tipo base de IDoc.

    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.

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    13

    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.

    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.

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    14

    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

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    15

    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.

    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.

    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.

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    16

    Creacin de destinos RFC, puertos y sistemas lgicos.

    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.

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    17

    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)

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    18

    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.

    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.

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    19

    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.

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    20

    Hacer doble click sobre el mandante que al que se desea asignar, y posteriormente completar con el nombre del sistema lgico.

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    21

    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.

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    22

    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.

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    23

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    24

    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.

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    25

    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.

    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

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    26

    -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.

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    27

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    28

    (G) 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.

    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 Mensaje c_base_idoc_type LIKE edidc-idoctp VALUE 'ZINVRV01',"Tipo de Idoc

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    29

    c_invrev_segname(7) TYPE C VALUE 'Z1INVRV', "Nombre Segmento c_rcvprn LIKE edidc-rcvprn VALUE 'SAPBCD', "Interloc. Destinat

    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 Destinatario idoc_control-rcvprt = 'LS' "Tipo interlocutor destinatario

    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

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    30

    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.

    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:

    - Activar los punteros de modificacin en forma global. - Activar los punteros de modificacin para nuestro tipo de mensaje. - Definir los campos relevantes para la generacin de punteros de modificacin. - Relacionar el tipo de mensaje con el mdulo de funcin. - Crear un mdulo de funcin para leer los punteros de modificacin y crear los Idocs.

    Activacin de punteros de modificacin en forma global

    Transaccin: BD61

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    31

    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.

    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.

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    32

    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.

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    33

    Luego se desplegar una pantalla para ingresar los campos:

    - Objeto de Modificacin -Tabla -Campo

    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.

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    34

    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.

    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:

    1- Leer los punteros de modificacin generados usando la funcin CHANGE_POINTERS_READ.

    2- Analizar los punteros de modificacin para determinar cules documentos son vlidos. 3- Determinar la clave del documento de aplicacin del paso 2.

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    35

    4- Seleccionar datos de aplicacin de la base de datos, usando la clave de objeto identificada en el paso 3.

    5- Completar la informacin del registro de control del IDoc. 6- Completar una tabla interna de estructura EDIDD con registros de datos para todos los

    segmentos. 7- Llamar al servicio de la capa ALE (MASTER_IDOC_DISTRIBUTE) para crear los datos

    en la base de datos. 8- Actualizar el estado de los punteros de modificacin 9- 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.

    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.

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    36

    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:

    1- Configuracin de Workflow. 2- Configuracin de la Interfaz de entrada.

    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.

    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

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    37

    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.

    Crear una nueva tarea basada en el Objeto de Aplicacin Idoc

    Observacin:

    Si al ejecutar este paso, llega a aparecer el mensaje:

    Falta entrada para sistema NNN, mandante XXX

    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. 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

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    38

    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.

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    39

    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.

    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.

    Definicin de mensaje

    (i) Transaccin: WE81 (ii) 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).

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    40

    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 (iii) 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 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: Z_IDOC_INPUT_ZQUOTE Tipo: F (mdulo de funcin) Tipo Base: ZQUOTE01 Tipo Mensaje: ZQUOTE Tipo Objeto: ZIDOCZQOTE Sentido: 2 (Salida)

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    41

    Definir atributos del Mdulo de Funcin

    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.

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    42

    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: Oferta Mdulo de Funcin: Z_IDOC_INPUT_ZQOTE Cantidad mxima de repeticiones: 2

    Marcar el flag Proceso con servicio ALE Marcar el flag Procesamiento c. Mdulo de funciones

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    43

    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: Poner el nombre del sistema lgico que se haya creado. Tipo de Interlocutor EDI: LS (sistema lgico) Tipo de Autor: US (Usuario)

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    44

    Autor: (el Id del usuario que lo est creando.)

    Presionar Grabar.

    Adicionar parmetro de entrada con la siguiente informacin:

    Opciones de Salida:

    Tipo de interlocutor EDI: LS Funcin interlocutor EDI: LS Tipo de mensaje: ZQUOTE Valor de Ejemplo Cd. Oper.: ZQUOT Valor de Ejemplo Verif. Sintax.: X Lanzamiento inmediato: 3

    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: X 2. Fichero de salida: ZQUOTE02 Valor de Ejemplo

    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:

    Import parameters Reference field Opt Y/N INPUT_METHOD BDWFAP_PAR-INPUTMETHD N

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    45

    MASS_PROCESSING BDWFAP_PAR-MASS_PROC N

    Export Parameters Reference field Opt Y/N WORKFLOW_RESULT BDWFAP_PAR-RESULT N APPLICATION_VARIABLE BDWFAP_PAR-APPL_VAR N IN_UPDATE_TASK BDWFAP_PAR-UPDATETASK N CALL_TRANSACTION_DONE BDWFAP_PAR-CALLTRANS N

    Table Parameters Reference field Optional Y/N IDOC_CONTRL EDIDC

    IDOC_DATA EDIDD

    IDOC_STATUS BDIDOCSTAT

    RETURN_VARIABLES BDWFRETVAR

    SERIALIZATION_INFO BDI_SER

    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 ...

    ...

    ...

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    46

    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.

    *--- 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.

  • MANUALES Y TUTORIALES WWW.MUNDOSAP.COM

    47

    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