Professional Documents
Culture Documents
• 1 Qué es un Idoc?
• 2 Definición de la estructura de Idocs, segmentos de control, datos y estado.
• 3 Creación de un nuevo tipo de IDoc en SAP.
o 3.1 – Creación de los elementos de datos
o 3.2 – Creación de Segmentos
o 3.3 – Creación del Tipo Base de IDoc
o 3.4 – Liberación del Tipo de Segmento y Tipo Básico de IDoc
o 3.5 – Transporte de Segmentos y Tipo Base de IDocs
• 4 Extensión de un IDoc.
o 4.1 Configuración el procesamiento Outbound
o 4.2 Configuración el procesamiento Inbound
• 5 Creación de destinos RFC, puertos y sistemas lógicos.
o 5.1 Definición de Destinos RFC
o 5.2 Definición de puerta.
o 5.3 Definición de sistemas lógicos
5.3.1 Asignar sistema lógico a mandante
• 6 Creación de los acuerdos de interlocutores.
• 7 Creación de un nuevo tipo de Mensaje en SAP.
• 8 Relación entre un tipo de Mensaje y un Tipo de IDoc
• 9 Creación de un modelo de distribución.
• 10 (G) Creación de un Idoc de salida
o 10.1 Creación de Idocs desde un programa ABAP
o 10.2 Creación de Idocs utilizando Punteros de Modificación (Change
Pointers)
10.2.1 Activación de punteros de modificación en forma global
10.2.2 Activación de punteros de modificación por Tipo de
Mensaje
10.2.3 Definición de campos relevantes para la generación de
Punteros de Modificación
10.2.4 Relación entre el Tipo de Mensaje y el Módulo de Función
10.2.5 Crear un módulo de función para leer los punteros de
modificación y crear los Idocs.
o 10.3 Creación de Idocs desde un Mensaje de Logística
• 11 Creación de un Idoc de entrada
o 11.1 Configuración de Workflow
11.1.1 Crear un nuevo Objeto de Aplicación Idoc
11.1.2 Crear una nueva tarea basada en el Objeto de Aplicación
Idoc
o 11.2 - Configuración de la Interfaz de entrada
11.2.1 Transacción: WE81
11.2.2 Camino Lógico: Desde el área Tipos de¬ Desarrollo ¬de
menú de EDI (transacción WEDI), seleccionar Menú SAP
mensajes
11.2.3 Camino Lógico: Desde el área de menú de EDI
(transacción WEDI), seleccionar Menú SAP -> Desarrollo -> Tipo
IDoc / Mensaje
11.2.4 Definición de Código de Operación
Title page
Qué es un Idoc?
Los IDoc permiten intercambiar información 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 más de un proveedor, haría falta más de un IDoc.
Los IDocs se crean y luego se envían. Este envío se realiza en un segundo paso; o sea
que podría haber IDOCs que todavía no se hayan enviado.
Un Idoc, como se mencionó más arriba, está formato por dos bloques:
• Un registro de Control.
• Una tabla con los datos del IDOC .
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 cuál es el formato con el que hay que interpretarlos, se puede ir a la transacción
SE11 y ver qué campos componen a esa estructura. Dado que la cadena de 1000
caracteres está formada por los datos de un campo atrás del otro, es solo cuestión de
saber en qué posición de la cadena se encuentra cada campo.
Contienen información de estado, tal como código 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.
Definición 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 organización de los segmentos, atributos de los segmentos y
formatos de cada uno de sus campos.
La estructura del registro de contol está definida por la estructura del DDIC
EDI_DC40: Cantidad de campos: 36
______________________________________________________________________
___
CHAR
TABNAM EDI4TABNAM Nombre de la estructura de tabla
10
CLNT
MANDT EDI4MANDT Mandante
3
CHAR
DOCNUM EDI4DOCNUC Número del IDOC
16
CHAR
DOCREL EDI4DOCREL Release SAP del IDOC
4
CHAR
STATUS EDI4STATUS Status del IDOC
2
DIRECT CHAR 1 EDI4DIRECT S
CHAR
OUTMOD EDI4OUTMOD Modo de salida
1
CHAR
EXPRSS EDI4EXPRSS Sustitución en Entrada
1
TEST CHAR 1 EDI4TEST In
CHAR
IDOCTYP EDI4IDOCTP Nombre del tipo base
30
CHAR
CIMTYP EDI4CIMTYP Ampliación (definida por los clientes)
30
CHAR
MESTYP EDI4MESTYP Tipo de mensaje
30
CHAR
MESCOD EDI4MESCOD Variante de mensajes
3
CHAR
MESFCT EDI4MESFCT Función de mensaje
3
CHAR
STD EDI4STD Estándar EDI, indicador
1
CHAR
STDVRS EDI4STDVRS Estándar EDI, versión y release
6
CHAR
STDMES EDI4STDMES Tipo de mensajes EDI
6
CHAR
SNDPRT EDI4SNDPRT Tipo de interlocutor EDI del remitente
2
CHAR
SNDPFC EDI4SNDPFC Función interlocutor EDI del remitente
2
Número del interlocutor EDI del remitente
SNDSAD CHAR 21 EDI4SNDSAD Dirección del r
SNDLAD CHAR 70 EDI4SNDLAD Dirección lógic
RCVPOR CHAR 10 EDI4RCVPOR Puerta del desti
RCVPRT CHAR 2 EDI4RCVPRT Tipo de interloc
destinatario
destinatario
Interchange)
Group)
_________________________________________________________
Estructura de campo
Cantidad de campos: 7
_________________________________________________________
_________________________________________________________
Estructura de campo
Cantidad de campos: 24
_________________________________________________________
status
Clase mensaje
de status
de status
registro de status
de status
STAPA4 CHAR 50 EDI4STAPA4 Cuarto parámetro de un
de status
funciones)
_________________________________________________________
_________________________________________________________
_________________________________________________________
– Creación de Segmentos
Transacción: WE31.
Pasos:
2.2 – Entrar una descripción breve y los valores para los distintos cam
definición del segmento. El sistema automáticamente asigna un nombr
basado en el nombre del tipo de segmento. Ej.: si el tipo de segmento e
segmento será Z2WKDET.
Una vez creados todos los segmentos, el siguiente paso es crear el Tip
IDocs se crean con el Editor de IDocs:
Transacción: WE30
Pasos:
Extensión de un IDoc.
Las ampliaciones de IDocs son componentes que se utilizan para exten
existentes de una forma predefinida. Estas extensiones sólo pueden ser
los tipos de ampliación no son proporcionados por SAP.
Transacción: WE30
Camino Lógico: Desde el área de menú de EDI (transacción WEDI),
¬seleccionar Menú SAP
• Crear nuevo.
• Crear como copia.
• Crear como sucesor.
Por cada segmento extendido, tiene que haber una extensión en el códi
outbound, que inserte los datos indicados en la extensión del segmento
Por cada segmento extendido, tiene que haber una extensión en el códi
inbound, que considere el tipo de segmento extendido recibido entre lo
Transacción: SM59
Definición de puerta.
Transacción: WE21
RFC Transaccional
Archivo XML
XML-HTTP
Transacción: BD54
Hacer doble click sobre el mandante que al que se desea asignar, y pos
nombre del sistema lógico.
Puede haber varios escenarios para diferentes propósitos. Por otro lado
escenario. Lo más recomendable es crear un escenario por administrad
ALE, no tiene mucho sentido tener más de un escenario. Pero si hay v
diferentes requerimientos, será más útil crear un escenario por departa
Transacción: BD64
-Completar el campo Emisor con el nombre del Sistema lógico que tra
Importante
Observación:
3- Completar una tabla interna de tipo EDIDD con los registros de dat
correspondientes.
* DECLARACION DE DATOS
DATA:
c_message_type LIKE edidc-mestyp VALUE 'ZINVRV
c_base_idoc_type LIKE edidc-idoctp VALUE 'ZINVRV
c_invrev_segname(7) TYPE C VALUE 'Z1INVRV',"Nombre
c_rcvprn LIKE edidc-rcvprn VALUE 'SAPBCD
APPEND idoc_control.
if sy-subrc = 0.
COMMIT WORK.
endif.
Toda vez que se crean o modifican datos maestros, tal como datos
proveedores, etc., el sistema escribe "punteros de modificación" (c
de cada una de estas modificaciones para cada documento. El repo
ejecutado a fin de procesar todas las entradas en la tabla de punte
generar los IDocs, este programa llama a un módulo de función es
Transacción: BD61
Transacción: BD50
Transacción: BD52
Ingresar entradas para los campos sobre los cuales se quieran crear Pu
- Objeto de Modificación
-Tabla
-Campo
es el siguiente:
1- Configuración de Workflow.
Configuración de Workflow
Transacción: SWO1
Observación:
el problema es el siguiente:
Una tarea de workflow define los atributos de la tarea que debe ser eje
aplicación. Una tarea apunta a un método a ser ejecutado y a un evento
tarea.
La mejor opción para definir una nueva tarea es copiar una existente, t
(TS00008046).
Sigla: ZQOTE_ERROR
Transacción: PFTC_COP
Evento: INPUTERROROCCURRED
7 – Activar el link
Evento: INPUTFINISHED
9 – Definir la tarea como Tarea General de modo tal que pueda ser eje
Datos adicionales ¬ Asign. Responsable ¬ Actualizar. Seleccionar la o
8 - Definir Puerta.
Definición de mensaje
Transacción: WE81
Transacción: WE82
Camino Lógico: Desde el área de menú de EDI (transacción WEDI), seleccionar
IDoc / Mensaje
Transacción: WE57
Los valores de Módulo, Tipo Base, Tipo Mensaje y Tipo Objeto mostr
ejemplo,
Módulo: Z_IDOC_INPUT_ZQUOTE
Tipo: F (módulo de función)
Tipo Base: ZQUOTE01
Transacción: BD51
Camino Lógico: Herramientas => Desarrollo ALE =¬ALE > IDoc =>
de Funciones => Actualizar atributos
Diálogo posible: X
Transacción: WE42
Descripción: Oferta
Módulo de Función: Z_IDOC_IN
Cantidad máxima de repeticiones: 2
Transacción: BD67
Transacción: WE20
Presionar Grabar.
Opciones de Salida:
Definición de Puerta
Transacción: WE21
1. Directorio físico: X
2. Fichero de salida: ZQUOTE02 "V
En general, los módulos de funciones que reciben Idocs tienen los sigu
Exceptions
WRONG_FUNCTION_CALLED
* DECLARACION DE DATOS
DATA: C_SEGNAM(10) TYPE C VALUE 'Z1INVRV'.
IT_Z1INVRV = IDOC_DATA-SDA
PERFORM F_PROCESAR_XXXX
...
...
...
WHEN C_XXXXXX.
IT_XXXXXXX = IDOC_DATA-SDA
PERFORM F_PROCESAR_NNNN
ENDCASE.
ENDLOOP."LOOP AT IDOC_DATA
ENDLOOP."LOOP AT IDOC_CONTRL.
*********************************************************
* FORMS
*********************************************************
FORM F_PROCESAR_XXXX
ENDFORM.
*--------------------------------------------------------
* FORM UPDATE_IDOC_STATUS
*--------------------------------------------------------
* ........
*--------------------------------------------------------
FORM UPDATE_IDOC_STATUS.