Está en la página 1de 10

Manual para la cr

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

DATS 8
TIMS 6
CHAR 2
CHAR 3

Tipo
Long. Tipo
Texto breve
EDI4TABNAM
Nombre de la estructura de tabla
CLNT 3
EDI4MANDT Mandante
CHAR 16
EDI4DOCNUC Nmero del IDOC
EDI4LOGDAT
Fecha de la informacin de status
EDI4LOGTIM
Hora de la informacin de status
EDI4STATUS
Status del IDOC
Cualificador para mensaje en registro de status
EDI4STAMQU

CHAR 20
EDI4STAMID
Nro. de mensaje para mensaje de status: Clase mensaje
NUMC 3
EDI4STAMNO
Nmero de mensaje en mensaje de status
CHAR 1
EDI4STATYP
Tipo de mensaje (A, W, E, S, I) en el mensaje de status
CHAR 50
EDI4STAPA1
Primer parmetro de un mensaje en registro de status
CHAR 50
EDI4STAPA2
Segundo parmetro de un mensaje en registro de status
CHAR 50
EDI4STAPA3
Tercer parmetro de un mensaje en registro de status
CHAR 50 EDI4STAPA4
Cuarto parmetro de un mensaje en registro de status
CHAR 70
EDI4STATXT Texto para status
CHAR 12
EDI4UNAME
Nombre del usuario
CHAR 30
EDI4REPID
Programa
CHAR 30
EDI4ROUTID
Subrutina (rutina, mdulo de funciones)
CHAR 6
EDI4SEGNUC
Nmero de segmento
CHAR 30
EDI4SEGFLD
Campo de segmento
CHAR 14
EDI4REFINT
Fichero de transmisin (EDI Interchange)
CHAR 14
EDI4REFGRP
Grupo de mensajes (EDI Message Group)
CHAR 14
EDI4REFMES
Mensaje (Mensaje EDI)
CHAR 70
EDI4ARCKEY
Clave del archivo de mensajes externo

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
DATS
LANG
NUMC
TIMS

Descripcin
String de caracteres
Cliente
Campo moneda, referenciado por campos CURR
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:
123456789-

Leer 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
Tipo Objeto:
Sentido:

Z_IDOC_INPUT_ZQUOTE
F (mdulo de funcin)
ZQUOTE01
ZIDOCZQOTE
2 (Salida)

font size = "4">Definir atributos del Mdulo de Funcin</font>


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

Oferta
Z_IDOC_INPUT_ZQOTE
2

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:
Poner el nombre del sistema lgico que se haya creado.
Tipo de Interlocutor EDI:
LS (sistema lgico)
Tipo de Autor:
US (Usuario)
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:
Funcin interlocutor EDI:
Tipo de mensaje:
Cd. Oper.:
Verif. Sintax.:
Lanzamiento inmediato:

LS
LS
ZQUOTE
ZQUOT

"Valor de Ejemplo
"Valor de Ejemplo
X

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
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:
Import parameters

Reference field

Opt Y/N

INPUT_METHOD

BDWFAP_PAR-INPUTMETHD

MASS_PROCESSING

BDWFAP_PAR-MASS_PROC

Export Parameters

Reference field

Opt Y/N

WORKFLOW_RESULT

BDWFAP_PAR-RESULT

APPLICATION_VARIABLE

BDWFAP_PAR-APPL_VAR

IN_UPDATE_TASK

BDWFAP_PAR-UPDATETASK

CALL_TRANSACTION_DONE

BDWFAP_PAR-CALLTRANS

Table Parameters

Reference field

IDOC_CONTRL

EDIDC

IDOC_DATA

EDIDD

IDOC_STATUS

BDIDOCSTAT

RETURN_VARIABLES

BDWFRETVAR

SERIALIZATION_INFO

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