Vous êtes sur la page 1sur 8

Creacin de IDOCs de Orden

de Compra
El siguiente documento explica como generar IDOCs de Orden de Compra(Purchase order) con
Punteros de Modificacin (Changer Pointers).
Con las siguientes configuraciones una vez creada una orden de compra desde la
transaccin ME21N se generar un archivo de salida (OUTBOUND) de formato XML con el
contenido de la orden de compra (IDOC).
Primero un poco de teora para entender qu es un IDOC y para qu se utilizan:
Los IDocs 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 est formato por tres bloques:

Un registro de Control.

Una tabla con los datos del IDoc.

Varios registros de Estado


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, entre 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.
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.
Desde la transaccin WE30 se puede ver el formato de los Idocs.

IDOCs para rdenes de compra:


Tipo

Base

de

IDoc:

El primer paso es verificar que contemos en el sistema con el Tipo Base de IdocORDERS05.

Transaccin:

WE30

Ingresamos el tipo base ORDERS05 y clickeamos en visualizar.

Debemos obtener algo as.

Tipo de Mensaje en SAP:


En este paso verificamos que tengamos creado el Tipo de Mensaje ORDERS.

Transaccin: WE81
Tenemos que encontrar esto.

Relacin entre un tipo de Mensaje y un Tipo de IDoc:


Ahora tenemos que controlar que exista la relacin entre el tipo de base Idoc y la clase de
mensaje.

Transaccin: WE82
Controlamos que figure la siguiente lnea:

Definicin de puerta:

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.
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
va RFC sincrnico que el archivo ha sido transferido, que est localizado en un determinado
directorio, y que tiene un determinado nombre.
SAP recomienda no usar nombres de archivos estticos, dado que el archivo es sobre escrito
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 distribucin 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
funcinEDI_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.
Para nuestro ejemplo vamos a elegir como salida un Archivo XML. Por lo cual
invocaremos a la funcin EDI_PATH_CREATE_CLIENT_DOCNUM para que genere los
nombres del archivo en forma dinmica.

Transaccin: WE21
Dentro de la carpeta Fichero XML debemos crear y configurar nuestra Puerta de salida de la
siguiente manera.

El Directorio fsico lo podemos elegir a nuestro gusto, tiene que ser un directorio del
servidor. Los directorios disponibles los podemos visualizar desde la transaccin
AL11.

Definicin de sistemas lgicos:


Transaccin: BD54

Creamos un Sistema Lgico con el nombre y la descripcin que queramos.

Creacin de los acuerdos de interlocutores:


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

Transaccin: WE20
Dentro de la carpeta Tp.interlocutor EDI Proveedor/Acreedor creamos lo siguiente:

El N interl.EDI debe llevar el mismo nombre del Sistema Lgico que creamos en
el paso anterior.
El Tp.int.EDI tiene que ser LI (Proveedor/Acreedor).
Luego en la tabla Parmetros salida agregamos en Tipo mensaje: ORDERS.
A continuacin hacemos doble click sobre ORDERS y llenamos como muestra esta imagen:

En la solapa Opciones salida, ponemos la Puerta destino que definimos


anteriormente y completamos los campos marcados con lnea roja.

En la solapa Control de mensajes completamos como se muestra en la imagen:

En Aplicacin ponemos EF (Pedido de compras)


Clase mensaje: NEU
Cdigo de operacin: ME10
Hacemos doble click sobre ME10 y chequeamos:

El mdulo de funcin IDOC_OUTPUT_ORDERS es la funcin que se va a encargar de


recolectar los datos y formar nuestro IDOC.

Activacin de punteros de modificacin en forma global:


Transaccin: BD61
Activamos nuestro puntero de modificacin:

Activacin de punteros de modificacin por Tipo de


Mensaje:

Transaccin: BD50
Agregamos una entrada para el mensaje deseado, y la marcamos como activa.

Creacin de una orden de compra:


Transaccin: ME21N
Creamos un Pedido estndar (NB) y luego clickeamos en Mensajes
Generamos una clase de mensaje como esta:

Clase de mensaje: NEU


Medio: EDI
Funcin: PV
Interlocutor: ORDERIDOC (nombre del interlocutor que creamos en la definicin de sistemas
lgicos)
Chequeamos que en Datos adicionales tengamos esto:

Apretamos en el botn GUARDAR y nos saldr el mensaje:

Con todo esto, nuestro IDOC ya tiene que estar creado!!!. Para verificar vamos a la

Transaccin: WE02
Al apretar el botn ejecutar nos listar nuestro IDOC:

La cantidad de registros de datos puede variar segn la orden que hayamos creado.

Slo nos resta ir a buscar nuestro IDOC en formato XML en el directorio fsico que
hayamos definido en la parte de Definicin de puerta

Vous aimerez peut-être aussi