Prácticas curso EDI/IDoc
1.-Crear un tipo base de IDoc:
- Nombre del tipo: ZDELVRY
- Título: Aviso de recepción de materiales
- Segmentos a utilizar y jerarquía:
E1EDL20 Cabecera de entrega
E1EDL22 Descripciones de cabecera
E1EDD01 Datos de cabecera de entrega
E1EDL24 Elementos de la entrega
E1EDL25 Descripciones elemento de entrega
E1EDD10 Datos de elemento de entrega
E1EDD11 Descripciones 1 de elemento de dato
E1EDD15 Descripciones 2 de elemento de dato
E1EDD12 Datos de elemento de entrega
- Ocurrencias:
Tipo de segmento |
Ocurrencia mínima |
Ocurrencia máxima |
Obligatorio |
E1EDL20 |
1 |
99999 |
Si |
E1EDL22 |
1 |
1 |
No |
E1EDD01 |
1 |
1 |
No |
E1EDL24 |
1 |
99999 |
No |
E1EDL25 |
1 |
1 |
No |
E1EDD10 |
1 |
99999 |
No |
E1EDD11 |
1 |
1 |
No |
E1EDD15 |
1 |
1 |
No |
E1EDD12 |
1 |
99999 |
No |
|
DESARROLLO
- Para acceder al editor de tipos IDoc se sigue la siguiente ruta desde el menú inicial de SAP:
Tools --> Business Communication --> IDoc --> IDoc Basis --> Development --> IDoc types
o teclear la transacción WE30.
- Introducir el nombre del tipo IDoc que queremos crear (ZDELVRY).
- Seleccionar el tipo de objeto de desarrollo «Basic type».
- Pulsar Crear (F5), o ir a
Development object -> Create
- Introducir la descripción: «Aviso de recepción de materiales», y pulsar Intro. Los tipos de IDoc se muestran en forma de estructura de árbol, y como tal consiste en nodos, hojas y niveles. Cada nodo y hoja en el árbol representa un segmento del tipo IDoc. Un nodo intermedio forma un grupo de segmento. Con doble-click en el símbolo, se muestran u ocultan los componentes del grupo de segmento.
- Para crear el primer segmento del tipo base Idoc, posicionar el cursor en el nodo que contiene el nombre del typo base (ZDELVRY) y seleccionar:
Edit --> Create segment
o pulsar «Shift+F6». Aparecerá una ventana para los atributos del nuevo segmento.
- Introducir los parámetros del primer segmento: nombre, ocurrencia mínima y ocurrencia máxima, y pulsar Intro.
- Continuar creando de la misma manera el resto de segmentos.
- Probar las opciones de Reasignación de segmento: Posicionar el cursor en el segmento a ser reasignado y seleccionar Edit à Cut segment. Posicionar el cursor sobre el segmento tras el cual se debe insertar y seleccionar Edit à Insert segment.
- Modificar los atributos de un segmento: Hacer doble click sobre el nombre del segmento en la estructura de árbol.
2.- Crear y procesar un IDoc del tipo base que hemos creado.
- Crear un IDocde tipo ZDELVRY con valores para los siguientes campos:
Segmento |
Campo |
Descripción |
E1EDL20 |
VBELN |
Número de documento de venta |
|
VKORG |
Organización de ventas |
|
BOLNR |
Número de factura |
|
|
|
E1EDL24 |
POSNR |
Número de posición en el documento de ventas |
|
MATNR |
Código interno de material |
|
MATWA |
Código externo de material |
|
ARKTX |
Descripción de material |
|
WERKS |
Centro |
|
LGORT |
Almacén |
|
CHARG |
Número de lote |
|
MEINS |
Cantidad entregada |
|
|
|
E1EDD10 |
LSTEL |
Punto de carga |
|
PGRO |
Grupo de Packing |
|
PIN |
Número de instrucción de Packing |
|
DESARROLLO
- Acceder a la herramienta de test mediante la ruta:
Tools --> Business Communication --> IDoc --> IDoc Basis --> Test --> Test Tool
- Pulsar la opción «BasicTyp» del radiobutton y rellenar el campo con el nombre del typo base que hemos creado: ZDELVRY.
- Pulsar Create o F8. Aparece la estructura en árbol del tipo base que hemos creado.
- Hacer doble-click sobre uno de los segmentos en los que queremos añadir valores. Aparece una ventana con todos sus campos. Introducir los valores oportunos y pulsar Intro.
- Cuando todos los valores han sido introducidos, pulsar «Inbound function module» para crearlo y procesarlo. Aparecerá una nueva ventana para pedir el nombre de la función interfaz para este Idoc.
- Introducir el nombre de función IDOC_INPUT_DESADV1 y pulsar Intro.
- Aparece una nueva ventana informando de que el IDoc ha sido creado y procesado, y avisa del número de IDoc generado. Anotar este número de IDoc para el siguiente ejercício.
3.- Ver estado del IDoc tras procesarlo:
- Comprobar el estado en que ha quedado el IDoc procesado en el ejercício anterior.
DESARROLLO:
- Seleccionar la ruta de menú:
Tools --> Business Communication --> IDoc --> IDoc Basis --> IDoc --> Display IDoc
o ir a la transacción WE02.
- Introducir en el campo «IDoc number» el número de IDoc que nos devolvió SAP en el ejercício anterior cuando creamos el IDoc.
- Asegurar de que el rango de fecha en el campo «Date created» contiene la fecha en que creamos el IDoc.
- Hacer click en el botón «Execute» o pulsar «F8». Aparecerá la estructura en árbol de nuestro IDoc.
- Expandir el nodo de «Status records» pulsando en el símbolo ‘+’ de su izquierda. Aparecerán los códigos de status (status de IDoc) producidos durante el proceso (de error y no de error). Los estatus de error aparecen en color rojo y los status normales de color azul.
- Observar que los códigos de status aparecen en orden inverso a como se han ido produciendo, es decir, el primer status producido es el último nodo del árbol, y que uno de estos códigos corresponden a «IDoc creado».
- Expandir un código de status pulsando el símbolo ‘+’ a la izquierda de su código. Aparece debajo la descripción del mensaje que lo ha producido.
- Pulsar dos veces sobre el literal del mensaje, y aparecerá el grupo de mensaje, el número de mensaje y la descripción del mensaje.
4.- Creación, localización y modificación de tipos de mensajes.
En esta práctica vamos a ver todo el proceso para crear tipos de mensajes nuevos, pero no vamos a crear ninguno.
- Seleccionar la ruta de menú:
Tools --> Business Communication --> IDoc --> IDoc Basis --> Development --> Message types
o ir a la transacción WE81.
Aparecerán todos los tipos de mensajes con sus descripciones.
- Se pueden crear otros tipos de mensajes haciendo click en el botón «Display -> Change», o pulsando «Crtl+F1». Así se puede sobreescribir cualquier descripción de tipo de mensaje.
- Si lo que deseamos es crear un tipo de mensaje nuevo, pulsamos ahora «New entries» o «F5». Así se limpia la pantalla y podemos crear en una lista los tipos de mensajes y sus descripciones.
- Después se pulsa en botón de Salvar.
5.- Asociación de tipos de mensajes a tipos de IDoc.
Con esta opción, decimos a SAP el tipo de IDoc que le corresponde a un tipo de mensaje determinado.En esta práctica vamos a ver todo el proceso para crear y buscar nuevas asociaciones «tipo de mensaje / tipo de IDoc», pero no vamos a crear ninguna.
- Seleccionar la ruta de menú:
Tools --> Business Communication --> IDoc --> IDoc Basis --> Development --> Idoc type / message
o ir a la transacción WE82. Aparecerán todas las asociaciones «tipo de mensaje / tipo de IDoc» definido hasta el momento.
- Mediante la tecla de «Position» podemos hacer búsquedas de un tipo de mensaje concreto o de un tipo de IDoc para ver cuál tiene asociado.
- Para crear una nueva asociación, hacer click con el ratón en «Display à Change» o pulsar «Crtl+F1».
- Pulsar el botón «New entries» y se limpiará toda la lista para que se pueda introducir todas las asociaciones «tipo de mensaje / tipo de IDoc» deseadas.
- Pulsar Save para guardar las nuevas inserciones.
6.- Asociar Tipo de Idoc a un objeto de aplicación.
Con esta función asignamos a un tipo de IDoc, un objeto de aplicación que puede ser un módulo de función, workflow o una tarea estándar. Lo normal será asignar un módulo de función.En esta práctica vamos a ver todo el proceso para crear y buscar nuevas asociaciones «Objeto aplicación / tipo de IDoc», pero no vamos a crear ninguna.
- Seleccionar la ruta de menú:
Tools à Business Communication à IDoc à IDoc Basis à Development à Message/application object
o ir a la transacción WE57. Aparecerán todas las asociaciones «Objeto aplicación / tipo de IDoc» definido hasta el momento, indicando el tipo de objeto que se trata y si es de entrada (‘2’) o salida (‘1’).
- Mediante la tecla de «Position» podemos hacer búsquedas de un objeto concreto o de un tipo de IDoc para ver cuál tiene asociado.
- Para crear una nueva asociación, hacer click con el ratón en «Display -> Change» o pulsar «Crtl+F1».
- Pulsar el botón «New entries» aparece una nueva pantalla para introducir los valores de la asociación: Módulo, tipo base de IDoc, tipo de mensaje y dirección (entrada o salida).
- Pulsar Save para guardar las nuevas inserciones.
7.- Estudio de un interfaz de entrada.
El objetivo de este ejercício es identificar y comprender todas las funciones básicas de un interfaz de entrada. Tomaremos como ejemplo un interfaz estandar de los que suministra SAP.
- Acceder al mantenimiento de funciones
Tools à ABAP Workbench à Development à Function Builder
o llamar a la transacción SE37.
- Visualizar el interfaz de entrada IDOC_INPUT_DESADV1. Este interfaz está asociado al tipo IDoc DELVRY02.
- Observar que los datos del IDoc llegan como parámetros formales a través de las tablas internas:
IDOC_CONTRL |
structure |
EDIDC |
IDOC_DATA |
structure |
EDIDD |
IDOC_STATUS |
structure |
BDIDOCSTAT |
|
- Observar que el FORM DESADV_IDOC_PARSE es el primero que se ejecuta, y que en él se encuentra una primera validación del tipo de IDoc que le ha llegado y después un procesamiento secuencial de los segmentos de datos.
- Observar que tras el parse de los segmentos del IDoc, sigue el FORM PURCHASE_ORDER_CHECK, donde se realizan los chequeos oportunos.
- Observar que tras le form de validación sigue el FORM DELIVERY_CREATE, donde se crean las entregas (deliveries) por medio de la función estándar de SAP GN_DELIVERY_CREATE.
- Observar en el form RESULT_SET_DESADV el mecanismo por el cual el interfaz devuelve valores de variables.
8.- Puertos de comunicación
En este ejercicio se ve como definir o acceder a la información de los puertos de comunicación entre SAP y el subsistema EDI.
- Seleccionar la ruta de menú:
Tools --> Business Communication --> IDoc --> IDoc Basis --> IDoc --> Port Definition
o ir a la transacción WE21. Aparecerá en forma de árbol todos los medios posibles por los cuales se pueden establecer un puerto de comunicación. Los tipos que tengan a su izquierda el símbolo ‘+’ son los que poseen alguna defición de puerto. Al pulsarlo, aparecerán bajo él todos los nombres de los puertos definidos de ese tipo. Por ejemplo, expandir el tipo «File».
- Haciendo doble click sobre uno de los puertos aparecen sus datos. Observar como posee una descripción, una ruta y un nombre de fichero distinguiendo entre fichero de salida (outbound file), de entrada (inbound file) o de estado (status file).
9.- Estudio de las tablas EDIDC, EDIDD y EDIDS.
Los IDoc’s se almacenan en SAP en tablas antes de ser enviados al subsistema EDI o después de ser recibido por él. Las tablas principales son:
EDIDC --> Segmentos de control
EDIDD --> Segmentos de datos
EDIDS --> Segemtos de estado
- Acceder al diccionario de datos de SAP (transacción SE11) para observar la estructura, claves y contenidos de cada una.
- Observar que el campo principal que las une es el número de IDoc.