Manual de Idocs en SAP
Manual de Idocs en SAP
Manual de Idocs en SAP
Idocs
Pg. 1 / 13
ndice de Contenidos
1
Idocs __________________________________________________________ 3
3.2
3.3
3.4
4.2
7.2
7.3
9.2
9.3
10
10.1
10.2
10.3
10.4
10.5
10.6
10.7
10.8
Pg. 2 / 13
1 Idocs
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; podra haber Idocs que
todava no se hayan enviado.
Un Idoc 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. 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 campo de 1000 caracteres. Para saber
interpretar esa cadena, el registro cuenta con un campo que informa cul es la estructura con la que se deben
interpretar los datos. El nombre de dicha estructura existe en SAP y se la puede ver desde la transaccin SE11.
Desde la transaccin WE30 se puede ver el formato de los Idocs.
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.
Pg. 3 / 13
Deben crearse los elementos de datos necesarios para la definicin de los segmentos. Los segmentos no
admiten cualquier tipo dato. Los tipos aceptados son los siguientes:
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)
Pg. 4 / 13
3.2
Creacin de Segmentos
Los segmentos son creados por medio del Editor de Segmentos:
Transaccin: WE31.
Pasos a seguir:
a. Ejecutar la transaccin WE31. Ingresar el nombre del tipo de segmento (debe comenzar con Z) y
seleccionar la opcin Crear (F5).
b. Entrar una descripcin breve y los valores para los distintos campos. Este paso completa la definicin del
segmento.
c. 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
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
Pasos a seguir:
a. Ejecutar la transaccin WE30. Ingresar el nombre del tipo base de IDoc (debe comenzar con Z).
Seleccionar la opcin Tipo base y Crear (F5).
b. En la siguiente pantalla, seleccionar la opcin Crear nuevo e ingresar una descripcin para el tipo base
de IDoc. Presionar Continuar.
c. 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.
d. Para ingresar ms segmentos, repetir el procedimiento del punto c. 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.
e. Guardar el tipo base de IDoc.
3.4
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 checkbox 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.
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
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.
Pg. 5 / 13
4.1
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 estndar SAP. En caso de serlo, habr que insertar el cdigo necesario para manejar las
extensiones en una userexit. 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
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 estndar SAP. En caso de serlo, habr que insertar el
cdigo necesario para manejar las extensiones en una userexit. 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.
Pg. 6 / 13
Pg. 7 / 13
Transaccin: SM59
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.
7.2
Definicin de Puerta
Transaccin: WE21
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
puertas. En otras palabras, una puerta es un nombre lgico para un dispositivo de entrada/salida. Los programas
se comunican con un puerta 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 puerta, y es esta puerta el que designa realmente al medio. Esto permite definir las
caractersticas de las puertas individualmente y usar una puerta en mltiples Acuerdos de interlocutores. Los
cambios en una puerta se reflejarn automticamente en todos los acuerdos que lo estn utilizando.
Al menos una puerta debe existir para cada sistema externo.
Pg. 8 / 13
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.
c. 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.
d. XML-HTTP
En vez de definir el nombre del archivo XML, se especifica un destino RFC.
e. IP Abap
En estos tipos de puerta se puede definir un mdulo de funciones Z, copia del mdulo de funciones
estandar OWN_FUNCTION, con el cual se puede escribir el Idoc de la forma que queramos. As podemos
construir ficheros planos, CSV, a partir del Idoc.
7.3
Un sistema lgico es un nombre que le asignaremos a cualquier sistema externo con el que vayamos a
crear interfaces. Por ejemplo, si vamos a crear interfaces con un AS400 podemos crear un sistema lgico
llamado AS400 y despus asignarle las interfaces con las que vayamos a trabajar.
Transaccin BD54.
Pg. 9 / 13
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.
Puerta 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.
9.1
Pg. 10 / 13
f.
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.
9.2
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 report 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:
-
9.3
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 formularios.
La tabla utilizada para esto es la NAST. Esta tabla guarda recordatorios escritos por aplicaciones. Estos
recordatorios son llamados Mensajes.
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.
Pg. 11 / 13
Pg. 12 / 13
c.
d.
e.
f.
Pg. 13 / 13