Creación de IDOCs de Orden de Compra

download Creación de IDOCs de Orden de Compra

of 8

description

Manual SAP

Transcript of Creación de IDOCs de Orden de Compra

Creacin de IDOCs de Orden deCompraEl siguiente documento explica como generarIDOCsdeOrden de Compra(Purchase order) con Punteros de Modificacin (Changer Pointers).Con las siguientes configuraciones una vez creada una orden de compra desde la transaccinME21Nse generar un archivo de salida (OUTBOUND) de formatoXMLcon 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 EstadoElregistro de controlcontiene 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.Losregistros de datosse 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, variosregistros de estadose adjuntan a un IDoc. El sistemaautomticamente 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 transaccinWE30se 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: WE30Ingresamos 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 MensajeORDERS.Transaccin: WE81Tenemos 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: WE82Controlamos 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 designarealmente al medio. Esto permite definir las caractersticas de los puertosindividualmente y usar un puerto en mltiples Acuerdos de Interlocutores. Los cambiosen un puerto se reflejarn automticamente en todos los acuerdos que lo estnutilizando.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 TransaccionalSe 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 XMLEnva 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_DOCNUMpara que genere los nombres del archivo en forma dinmica.XML-HTTPEn 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: WE21Dentro de la carpetaFichero XMLdebemos crear y configurar nuestraPuerta de salidade 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: BD54Creamos 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 seintercambian datos.El acuerdo de interlocutor especifica varias de las caractersticasde los datos que se intercambian incluyendo el modo de operacin y la organizacin opersona responsable por el manejo de los errores.Cuando los datos sonintercambiados entre interlocutores, es importante que el emisor y el receptor estn deacuerdo en la sintaxis y semntica de los datos intercambiados.Este acuerdo es lo quese llama Acuerdo de Interlocutor, y es lo que le informa al receptor de la estructura delos 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: WE20Dentro de la carpetaTp.interlocutor EDI Proveedor/Acreedorcreamos 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 sobreORDERSy 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: NEUCdigo de operacin: ME10Hacemos 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: BD61Activamos nuestro puntero de modificacin:

Activacin de punteros de modificacin por Tipo de Mensaje:Transaccin: BD50Agregamos una entrada para el mensaje deseado, y la marcamos como activa.

Creacin de una orden de compra:

Transaccin: ME21NCreamos unPedido estndar (NB)y luego clickeamos en MensajesGeneramos una clase de mensaje como esta:Clase de mensaje:NEUMedio:EDIFuncin:PVInterlocutor:ORDERIDOC(nombre del interlocutor que creamos en la definicin de sistemas lgicos)Chequeamos que enDatos adicionalestengamos 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 laTransaccin: WE02Al 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