Creación de IDOCs de Orden de Compra

13 11 2007

El siguiente documento explica como generar IDOCs de Orden de Compra (Purchase order) con “Punteros de Modificación” (Changer Pointers).
Con las siguientes configuraciones una vez creada una orden de compra desde la transacción ME21N se generará un archivo de salida (OUTBOUND) de formato XML con el contenido de la orden de compra (IDOC).

Primero un poco de teoría para entender qué es un IDOC y para qué se utilizan:
Los IDocs 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 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 información administrativa del IDoc, como el origen y el destinatario, y qué tipo de IDoc es. Sería algo así como el sobre que acompaña a cualquier carta.
    Este registro es muy importante ya que es necesario para saber, entre otras cosas, cuál 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 cuál es la estructura con la que se deben interpretar los datos.

    Generalmente, varios registros de estado se adjuntan a un IDoc. El sistema
    automáticamente asigna registros de estado durante todo el proceso, a medida que el IDoc va alcanzando diversos puntos de control.
    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.

    Desde la transacción 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 Idoc ORDERS05.

    Transacción: WE30
    clip_image003
    Ingresamos el tipo base ORDERS05 y clickeamos en “visualizar”.

    clip_image005
    Debemos obtener algo así.

     

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

    Transacción: WE81
    Tenemos que encontrar esto.

    clip_image007

     

    Relación entre un tipo de Mensaje y un Tipo de IDoc:
    Ahora tenemos que controlar que exista la relación entre el tipo de base Idoc y la clase de mensaje.

    Transacción: WE82
    Controlamos que figure la siguiente línea:
    clip_image009

     

    Definición de puerta:
    Los Idocs pueden ser enviados y recibidos a través de diferentes medios. Con el objetivo de no acoplar la definición de las características del medio con la aplicación que lo está utilizando, el medio es accedido vía puertos. En otras palabras, un puerto es un nombre lógico para un dispositivo de entrada/salida. Los programas se comunican con un puerto a través de una interfaz estándar.
    En vez de definir el medio de comunicación directamente en el Acuerdo de Interlocutor (Partner Profile), se asigna un número de puerto, y es este puerto el que designa realmente al medio. Esto permite definir las características de los puertos individualmente y usar un puerto en múltiples Acuerdos de Interlocutores. Los cambios en un puerto se reflejarán automáticamente en todos los acuerdos que lo estén utilizando.
    Al menos un puerto debe existir para cada sistema externo.

    Los tipos de puertos más comunes son los siguientes:
    Ficheros (File Interface)
    Permite intercambiar Idocs a través de archivos del sistema operativo.
    El sistema que envía el IDoc crea un archivo en el file system. Luego notifica al sistema receptor vía RFC sincrónico 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 estáticos, dado que el archivo es sobre escrito cada vez que el Idoc se envía. Se recomienda usar el módulo 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 distribución ALE. El nombre del puerto se puede definir a mano o dejar que SAP lo elija. Además del puerto, hay que definir el destino RFC.

    Archivo XML Envía 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 función EDI_PATH_CREATE_CLIENT_DOCNUM para que genere los nombres del archivo en forma dinámica.

    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 función EDI_PATH_CREATE_CLIENT_DOCNUM para que genere los nombres del archivo en forma dinámica.

    Transacción: WE21
    Dentro de la carpeta Fichero XML debemos crear y configurar nuestra Puerta de salida de la siguiente manera.
    clip_image011
    El Directorio físico lo podemos elegir a nuestro gusto, tiene que ser un directorio del servidor. Los directorios disponibles los podemos visualizar desde la transacción AL11.
    clip_image013

     

    Definición de sistemas lógicos:

    Transacción: BD54
    clip_image015
    Creamos un Sistema Lógico con el nombre y la descripción que queramos.

     

    Creación 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 características
    de los datos que se intercambian incluyendo el modo de operación y la organización o persona responsable por el manejo de los errores.
    Cuando los datos son
    intercambiados entre interlocutores, es importante que el emisor y el receptor estén de acuerdo en la sintaxis y semántica 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 cómo 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 intercambiarán los Idocs para el tipo de Idoc y mensaje.

    – Puerto por el cual el emisor y el receptor se comunicarán.

    En el interlocutor se definen datos específicos de cada mensaje a transmitir en los parámetros de salida o entrada según corresponda.
    Mediante la transacción WE20 se crea el acuerdo de interlocutor con el sistema lógico.

     

    Transacción: WE20
    Dentro de la carpeta Tp.interlocutor EDI Proveedor/Acreedor creamos lo siguiente:
    clip_image017
    El “Nº interl.EDI” debe llevar el mismo nombre del “Sistema Lógico” que creamos en el paso anterior.
    El “Tp.int.EDI” tiene que ser LI (Proveedor/Acreedor).
    Luego en la tabla “Parámetros salida” agregamos en Tipo mensaje: ORDERS.

    A continuación hacemos doble click sobre ORDERS y llenamos como muestra esta imagen:
    clip_image019
    En la solapa “Opciones salida”, ponemos la Puerta destino que definimos anteriormente y completamos los campos marcados con línea roja.

    En la solapa “Control de mensajes” completamos como se muestra en la imagen:
    clip_image021
    En “Aplicación” ponemos EF (Pedido de compras)
    Clase mensaje: NEU
    Código de operación: ME10

    Hacemos doble click sobre ME10 y chequeamos:
    clip_image023
    El módulo de función IDOC_OUTPUT_ORDERS es la función que se va a encargar de recolectar los datos y formar nuestro IDOC.

     

    Activación de punteros de modificación en forma global:

    Transacción: BD61
    Activamos nuestro puntero de modificación:
    clip_image025

     

    Activación de punteros de modificación por Tipo de Mensaje:

    Transacción: BD50
    Agregamos una entrada para el mensaje deseado, y la marcamos como activa.
    clip_image027

     

    Creación de una orden de compra:

    Transacción: ME21N
    Creamos un Pedido estándar (NB) y luego clickeamos en «Mensajes« 

    Generamos una clase de mensaje como esta:
    clip_image033
    Clase de mensaje: NEU
    Medio: EDI
    Función: PV

    Interlocutor: ORDERIDOC (nombre del interlocutor que creamos en la definición de sistemas lógicos)

    Chequeamos que en «Datos adicionales« tengamos esto:

    clip_image037

    Apretamos en el botón GUARDAR  y nos saldrá el mensaje:

    clip_image041


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

    Transacción: WE02
    Al apretar el botón ejecutar nos listará nuestro IDOC:
    clip_image043
    La cantidad de registros de datos puede variar según la orden que hayamos creado.

    Sólo nos resta ir a buscar nuestro IDOC en formato XML en el directorio físico que hayamos definido en la parte de “Definición de puerta”


    Technorati tags:


    Acciones

    Information

    69 responses

    31 12 2007
    Anónimo

    wena!!

    8 02 2008
    Mª Carmen Garcia

    Hola,

    estoy intentando procesar un Idoc y me da un error que dice que la puerta de entrada no es válida, la puerta la definí con la transacción we21, cual puede ser el motivo de este error?

    19 02 2008
    Daniel Panaro

    Que tal Carmen, es un poco difícil ayudarte por este medio. Si te parece me podes escribir por mail contandome en detalle el error.
    Saludos,
    Daniel.

    6 06 2008
    Leviatan

    eres un crack, gracias por tu blog, es superutil, yo estoy pensando hacerme uno también del tema SAP/ABAP.

    Saludos!

    6 06 2008
    Daniel Panaro

    Muchas gracias Leviatan… adelante con tu idea del blog. El aporte de todos siempre ayuda!.
    Saludos,
    Daniel.

    30 12 2009
    JOAQUIN

    Hola Daniel, necesito tu ayuda, veo que eres bueno con sap, necesito obtener informacion sobre, como: crear pedido de materiales, generar orden de compras, creo que son los modulos mn ó pm, en realidad si puedes ayudarme te lo agradeceria. mi correo es: caceresjoaquin@gmail.com

    muchas gracias

    29 07 2008
    nelly hurtado

    yo estoy tratando de crear una funcion que debe leer un archivo xml para la creacin de orden de compra , utilizando la bapi_po_create1 en el return me devuelve un mensaje que dece debe crear la funcion de interlocutor pero en la POPARTNER yo le estoy creando los datos PARTNERDESC , BUSPARTNO, LANGU, cualquier ayuda les agradezco

    1 08 2008
    Daniel Panaro

    Que tal Nelly, lo ideal sería buscar documentación sobre la BAPI en particular.
    Igualmente si te esta dando error en «interlocutores». tendrías que configurar el tuyo como explique en este post desde la transacción WE20.

    20 08 2008
    CHIKY

    hola daniel muy buena….. pero asi como tienes para generar un idoc x medio de un pedido tiene algun ejemplo de poder darle el ingreso x medio de un IDOC
    o hacer una pre-entrega o lago por el estilo……

    Gracias

    23 08 2008
    Daniel Panaro

    Chiky, desde luego que se puede hacer un IDOC de entrada de un pedido.
    Para esto van a cambiar algunas cosas, sobre todo en la transacción WE20. Donde se debe completar la tabla parámetros de entrada, y el módulo de funciones IDOC_INTPUT_ORDERS.
    Recuerdo que hay bastante información en internet sobre idocs de entrada y sobre todo de pedidos.

    Saludos!

    28 08 2008
    chiky

    Gracias Daniel por la pronta respuesta, por mas que busco en internet no hay informacion al respecto o capz estoy buscando mal tenes algun link para lo que busco
    te dejo mi mail lmendozag@gmail.com

    gracias de antemano

    30 08 2008
    Daniel Panaro

    Chiky, buscate en google por ejemplo de esta manera:
    Purchase order idoc inbound

    Saludos!!!

    29 09 2008
    William Contreras

    Hola Daniel,
    Yo tenia una inquietud, en el caso que se quira un formato diferente a XML, es decir que el cliente que va a consumir el idoc requiera un formato en especial, hay alguna forma de definir un formato a la medida para los datos?

    4 10 2008
    Daniel Panaro

    Que tal William,
    Veamos… hay un par de cosas para tener en cuenta dependiendo a lo que te refieras con formato:
    Recordá primero que se puede trabajar con Tipo Base de Idoc estándar, o bien definir tu propio formato de Idoc. Donde podés asignar los campos que necesites en los registros de datos.
    Por otro lado luego hay que decidir con qué extensión (formato) guardar el archivo. Esto lo podés hacer desde la transacción WE21, está la opción de Fichero XML o de Fich. (fichero) para elegir el nombre y la extensión deseada.

    Espero haber respondido tu inquietud, si queda alguna duda… mandame un mail.
    Saludos,
    Daniel.

    8 10 2008
    William Contreras

    Te cuanto mi situación, fíjate que necesito generar un IDOC de pedido para enviarlo vía EDI a otra empresa, hasta ahora ya tengo configurado todo para que me genere el IDOC en una ruta de mi servidor en un formato de texto ( Tipo de puerta: fichero)la cosa es que necesito hacer la conversión de el IDOC a un formato EDI ( Que es el que el cliente entenderá). Yo lo que he andado buscando es un user exit en donde yo pueda agarrar la estructura de idoc y modificarlo para que salga el formato que yo requiero. Estuve viendo el siguiente USer Exit MM06E001 EXIT_SAPLEINM_012 MM EDI ORDERS/ ORDCHG: enhancement configuration Pero nunca se detiene cuando hago el pedido y lo guardo, pero si me genera bien el IDOC, lo puedo ver en la WE02.

    Hoy que te conte mi situación, te quiero hacer las siguientes preguntas:
    1) Un User-Exit es la forma de transformar el IDOC ORDERS a un formato EDI que la otra empresa entiende? Si no es asi como debería de transformar el IDOC en un formato EDI que la otra empresa entiende.
    2) Para enviarle el archivo a la otra empresa lo hago haciendo en FTP? Es decir la otra empresa no tiene SAP es un sistema X que recibe el Formato EDI en una carpeta y lo procesa. Como se debe hacer este envió?
    3) Yo he leído sobre un EDISUBSYSTEM que es el que hace la transformación de IDOC a EDI y además hace el envió, este ediSubsystem es el que yo quiero hacer automático sin tener que hacer un segundo paso en otra transacción para transformar a EDI y enviarlo via FTP( asumiendo que se los tengo que pasar vía FTP)
    Bueno mi estimado esas son las dudas que tengo en este momento y estoy en la investigación pero aun no resuelvo.

    11 10 2008
    Daniel Panaro

    Que tal William,
    Te comento que a mi entender la forma correcta no es utilizar una User-Exit para modificar el formato del Idoc.
    Lo correcto es que te crees tu propio Tipo Base de Idoc desde la transacción WE30. Donde podés utilizar como guia o como base un tipo de idoc estándar.

    Por otro lado, la forma de envío se puede a llegar a configurar para que se haga automáticamente. E incluso que el Idoc se envie directamente por mail o directamente al sistema de tu cliente.
    Esto nunca lo hice, pero seguramente tengas que empezar por la transacción WE21.

    Espero haber ayudado, saludos!
    Daniel.

    6 11 2008
    William Contreras

    Muchas gracias daniel, ha sido de mucha ayuda tu explicacion

    11 02 2009
    Miguel

    che tengo un problema al momento de crear el interlocutor EDI no acepta el sistema logico ORDERIDOC me dice que no es valido cuento con tu ayuda

    22 02 2022
    Aprendesap

    Tiene que ser un interlocutor válido (proveedor)

    12 02 2009
    MILTON

    Hola Daniel:

    Tengo una pregunta al llegar al paso de WE20 e ingresar el No. de Interlocutor EDI asigo el que se creo en la Bd54 ORDERIDOC pero la transaccion WE20 me manda el siguiente mensaje de error:

    Indique un número de interlocutor EDI permitido
    Nº mensaje: E0342
    Diagnóstico
    El número de partner ‘ORDERIDOC’ no existe para la clase de partner ‘LI’.

    Conoceras la causa de este mensaje…¡¡?? Gracias y saludos!!

    15 02 2009
    Daniel Panaro

    Miguel, Milton…
    Ambos tienen algún error en la creación del Sistema Lógico.
    Recomiendo volver a la transacción BD54, y borrar el sistema ORDERIDOC… luego grabar y salir. Y ahí recién crear un nuevo Sistema Lógico, no es obligatorio nombrarlo ORDERIDOC.
    Desconozco que versión de SAP utilizan… pero verifiquen que no tengan que completar nada más. Si siguen con errores me pueden escribir por mail.
    Saludos,
    Daniel.

    18 02 2009
    Samuel

    Hola sta genial el blog mira te hago la siguiente consulta, estamos realizando un aintegracion con XI y necesito utilizar el idoc ORDERS05 la verdad que jamaz e trabajado con idocs y me gustaria saber como se utiliza para la creacion , la modificacion y la respuesta.

    bueno agradesco tu ayuda.

    Saludos

    19 02 2009
    Samuel

    sabes que cuando llego al paso de la TX we20 pongo el nombre del sistema logico pero me da un error me dice «indique un numero de interlocutor EDI permitido»
    te agradesco tu ayuda

    19 02 2009
    Daniel Panaro

    Que tal Samuel, me parece que estas teniendo el mismo problema que Milton y Miguel. Fijate los 3 comentarios anteriores al tuyo donde está mi repuesta.
    Saludos,
    Daniel.

    26 02 2009
    Samuel

    muchas gracias ya lo puede resolver pero aun tengo algunos problemas, estoy realizando pruebas con el IDOC orders05 por la TX WE19, con el modulo de funciones para crear, pero al ir a ver el IDOC me da dos problemas, y uno de ellos es que me dice que necesito ingresar el SECTOR, CANAL de DISTRIBUCION y ORGANIZACION DE VENTAS, numero de status 51 y me da el numero de status 56 EDI: No existen acuerdos de interlocutor.

    te agradeceria cualquier ayuda al respecto la verdad es que no se en que segmento y campos ingresar los datos del status 51.

    de antemano muchas gracias.

    Saludos.

    22 09 2009
    Jose

    compradre .. como resolviste este problema .. tambien yo tengo el mismo error de “indique un numero de interlocutor EDI permitido” al usar la transaccion WE20 .. me podrias ayudar …

    gracias …

    22 09 2009
    Daniel Panaro

    Que tal Jose, fijate mi comentario del día 15.02.2009 … por ahí te ayuda. Es lo que le sugerí a Samuel.
    Saludos,
    Daniel.

    28 02 2009
    Daniel Panaro

    Que tal Samuel, en principio podrías buscar los número de status en internet… y ver si encontrás algo.
    Igualmente estimo que el status 51 está referido a datos que te falten cargar cuando creas el pedido.
    Y luego el status 56 se refiere al interlocutor, por lo tanto verificá la creación de acuerdo interlocutor. Ya que lo necesitas cuando vas a la clase de mensaje en la creación del pedido.
    Saludos,
    Daniel.

    25 03 2009
    Andres

    Hola Daniel, estoy necesitando generar un edi en formato ansi x12, para el outbound de facturas.

    Me sirve este ejemplo de las ordenes de compra?

    Muchas gracias

    28 03 2009
    Daniel Panaro

    Que tal Andres…
    Este ejemplo te va a servir de guía para la configuración. Pero vas a tener que encontrar el Tipo Base de IDoc (Transacción WE30) correspondiente a Facturas.
    Ya que ORDERS05 el tipo de Idoc únicamente para órdenes de compra.
    Saludos,
    Daniel.

    15 04 2009
    GABRIELA

    Por favor necesito su ayuda urgente,

    Necesito saber si existe alguna forma de bajar de forma masiva los datos ingresados en todas la ordenes de compra para exportarlo al Excel y hacer un trabajo especial.

    Sería de mucha utilidad si me indican una transacción que permita exportar todos los campos que se ingresan en cada orden de compra pero de forma masiva.

    23 07 2009
    mariano

    Hola como estas, estoy tratando de trabajar con punteros de modificacion y tengo una consulta para hacerte: una vez activado el puntero de modificacion, el idoc se ejecuta solo o hay que correr el programa RBDMIDOC para verificar los punteros creados????
    muchas gracias.

    27 07 2009
    Daniel Panaro

    Buen día Mariano,
    Siempre que utilices en el proceso el interlocutor creado en la transacción WE20; y al mismo le asocies el tipo de mensaje de la transacción BD50. El IDOC se ejecutará automáticamente.
    Saludos,
    Daniel.

    24 09 2009
    Jesus Valencia

    Tengo el mismo Problema que Samuel (Indique un numero de interlocutor IDE permitido), borre del systema logico y lo volvi a crear en el mensaje de error me dice :
    El número de partner ‘SYSTEIDOC’ no existe para la clase de partner ‘LI’.

    Saludos
    Jesus

    27 09 2009
    Daniel Panaro

    El error «no existe para la clase de partner ‘LI’ » nunca lo tuve por lo que no puedo ayudarlos muchos, más que guiarlos…. verificaron la configuración (customizing) de la clase partner ‘LI’ ?
    Si alguien tiene la solución, por favor esperamos su comentario.
    Saludos,
    Daniel.

    24 09 2009
    Jose

    Hola amigos … aun sigo sin poder resolver el error en la transaccion we20 me sigue marcando el error:

    Indique un número de interlocutor EDI permitido
    Nº mensaje: E0342
    Diagnóstico
    El número de partner ‘ORDERIDOC’ no existe para la clase de partner ‘LI’

    tengo la version SAP ECC 6.0 y ya borre el sistema logico y lo cree de nuevo y nada .. en la transaccion solo me pide el nombre del sistema logico y la descripcion solo eso … y de ahi me voy a la transaccion WE20 y nada …. truena

    alguien me puede ayudar ..

    18 12 2009
    Damian Vera

    Hola foro

    En este error:

    Indique un número de interlocutor EDI permitido
    Nº mensaje: E0342
    Diagnóstico
    El número de partner ‘ORDERIDOC’ no existe para la clase de partner ‘LI’

    Por lo que estuve viendo el problema es el siguiente:
    en Nº Interl. EDI en este caso debe ser un proveedor creado, y no un sistema logico, por lo tanto entiendo que deberia crearse previamente el interlocutor en la transaccion MK01.

    30 12 2009
    JOAQUIN

    Amigos: necesito de su ayuda, soy nuevo en este tema del sap, pero necesito mterme urgente en el tema de compras y abastecimiento : ejemplo: crear un pedido de material, generar ordenes de compra, es que me ofrecen un trabajo de comprador industrial pero necesito conocer este modulo, por favor si alguien tiene algun manual, favor me lo envie a mi correo: caceresjoaquin@gmail.com.

    muchas gracias.

    28 01 2010
    Cristian Torres G - Critogo

    Muy buena Daniel, este Blog esta genial, yo soy nuevo en el tema de IDOCS y la verdad he entendido la mayoría de las cosas que pones. Tengo tres preguntas:
    a) He realizado todo, pero cuando genero el pedido previa asignacion del mensaje NEU a las opciones 6-EDI y PR – ORDERIDOC, se me genera el pedido pero no se me genera el IDOC, he revisado la parametrización de mensajes para pedidos y parece ser correcta. ¿Sabes q podría ser?
    b) Debemos generar un IDOC para facturas de SD y el XML que se genere debemos transformalo para que cumpla el formato Facturae3.2 (que es otro XML), sabes como puede hacer esto.
    c) He realizado un documento soportando en este mismo y en otros y quiero ponerlo en la red, como puedo hacertelo llegar para que lo subas.

    29 01 2010
    Daniel Panaro

    Que ta Cristian,
    Muchas gracias por tus comentarios!

    a) En principio deberías volver a entrar en el documento de compra que creaste y ver cómo quedó la clase de mensaje NEU.
    Si está en rojo es que hubo un error; y para más información podrías ver el log del mismo.
    En caso de estar en verde, es decir aparentemente todo salió OK, habría que chequear en qué estado quedó el IDOC desde la transacción WE02. O bien volver a revisar la configuración de la transacción WE21

    b) De este punto no estoy seguro específicamente para tu requerimiento. Pero lo que sí se es que existen formatos de IDOCS para otros tipos de documentos. Así como existe el ORDERIDOC para órdenes de compra, posiblemente exista uno para facturas de SD.

    c) Escribime un mail, en las opciones de la derecha tenés el link. También me podes consultar por el punto a).

    Saludos y suerte!
    Daniel.

    23 04 2010
    Jesus

    Hola Daniel,
    Yo tambien tengo el problema cuando ingreso a la Tx WE20 (Acuerdo entre interlocutores EDI) me da el error «Indique un número de interlocutor EDI permitido» , pero veo que nadie dice como soluciono esto.
    Entre a la Tx BD54(sistema logico) borre y volvi a crear el sistema logico pero igual, pero cundo tu creo el sistema logico solo me pide nombre y descripcion, ¿donde le digo que este es para el tipo de interlocutor LI?.
    Ahora en WE20 coloco tipo de interlocutor LS(sistema logico) y si lo acepta.
    Alguien me puede ayudar

    23 04 2010
    damian

    Hola Jesus. Te transcribo mi respuesta del 18/12.

    En este error:

    Indique un número de interlocutor EDI permitido
    Nº mensaje: E0342
    Diagnóstico
    El número de partner ‘ORDERIDOC’ no existe para la clase de partner ‘LI’

    Por lo que estuve viendo el problema es el siguiente:
    en Nº Interl. EDI en este caso debe ser un proveedor creado, y no un sistema logico, por lo tanto entiendo que deberia crearse previamente el interlocutor en la transaccion MK01.

    29 04 2010
    Jesus

    Hola amigos, tengo problemas hace un tiempo desarrolle una solucion con IDOCS, se trataba de una aplicacion en punto-net con MQ que tenia que crear ordenes de compra en SAP, esto lo desarrollamos entre 3, yo vi la parte de SAP, otro veia el MQ y el otro el punto-net, yo solo veia cuando el IDOC ya estaba en SAP, pero ahora tengo que hacer una interface de un sistema externo con SAP pero no tengo idea como se envia a SAP los datos desde el otro sistema ni en que formato. como puedo probar la llegada de datos a SAP. con la Tx WE19 llene manualmente el IDOC pero yo quisiera de alguna forma simular que el sistema externo los esta enviando.
    Alguen me puede ayudar

    15 06 2010
    Tony

    Hola a todos tengo una consulta, nose si se puede cambiar el orden de los segmentos del IDOC orden de compra del objecto ORDERS05.
    Por ejemplo: en la tx. we30 el segmento posicion muestra la siguiente lista en el orden:
    E1ADDI1
    E1EDP20
    E1EDPA1
    E1EDP19 ; y en ese orden sale el archivo plano; pero se quiere que salga de la siguiente manera:
    E1EDP20
    E1EDP19
    E1ADDI1
    E1EDPA.
    Alguna idea. trate por la userexit pero siempre respeta el orden creo? …….

    Gracias.

    19 06 2010
    Daniel Panaro

    Tony,
    No evaluaste la posibilidad de crear tu propio objeto?.
    Por ejemplo crear un ZORDERS donde reasignes la ubicación de los segmentos.

    Saludos,
    Daniel.

    23 09 2010
    Carlos R

    Excelente post. Ya llevo un tiempo trabajando con IDOCs pero no había trabajado con outbound mucho, solamente inbound. Este post me aclaró muchas dudas.

    Gracias!

    29 09 2010
    Juan Pablo

    Muy bueno el blog, lo consulto siempre! algo que no entendi del ejemplo que das es que creas el sistema logico ORDERIDOC pero despues lo asignas con “Nº interl.EDI” interlocutor LI (prov/acreed) esto me tira error, no me tira si elijo LS que es para sistemas logicos o si en “Nº interl.EDI” selecciono un proveedor acreedor (de me21n) y con LI de da ok. pero despues me tira error alasignar el mensaje en me21n.
    no sabes de donde puedo sacar ejemplos completos de idocs de salida y entrada de ejecucion Z y de ejecucion por Changer Pointers?? tengo mucha info pero es todo teoria casi sin ejemplos.

    gracias

    9 11 2010
    Eduardo García

    Hola. Disculpen tengo una duda… me están pidiendo obtener información sobre los formatos EDI. Mi pregunta es la siguiente..
    Se puede realizar el formato EDI con alguna función de SAP.. sin haber pasado por el Subsistema EDI..
    Lo que me piden es saber si puedo transformar al IDOC en el formato EDI.. como si fuera un TXT o un XML.. desde un reporte…
    GRacias.

    29 02 2012
    Aracely

    Hola, buenas tardes!
    Muy bueno el blog, ya he podido generar mi IDOC con el mensaje de ORDERS, asi que cuando creo un pedido en la ME21N se genera el IDOC perfecto.
    Como podria hacer para que esto mismo funcione cuando genero una modificaicon del pedido (ME22N), tengo que agregar un nuevo mensaje en la WE20, enlos parametros de salida??

    Gracias!

    1 03 2012
    Daniel Panaro

    Aracely,
    Creo que la solución es cargar un nuevo NEU en la ME22N para que se ejecute nuevamente el IDOC.
    Saludos,
    Daniel.

    15 05 2013
    Susett

    Hola Daniel,

    Espero estés bien. Tengo una duda sobre los punteros de modificación quiero saber, si tengo estos activos y genero una bapi, función o bachinput que actualicen las condiciones de precio de un articulo ¿Dichos punteros de modificacion se activan automáticamente para llamar los IDOCs ò solo se activan en el estandar?.

    Gracias! 😉

    16 05 2013
    Daniel Panaro

    Hola Susett,
    La verdad que yo sólo los utilicé para IDOCS.
    Podrías probarlo, pero recordá que en mi caso los punteros los activé por una clase de mensaje definida en la trx BD50.

    Saludos,
    Daniel.

    24 05 2013
    Anónimo

    que tal daniel, como va. Mira me puedes ayudar me piden utilizar una exit (que no me dicen cual es) para realizar unas validaciones el idoc SALESORDER_CREATEFROMDAT202, segun entiendo no hay exits en los idocs y la mejor solucion sería realizar una copia de este idoc donde se creen dichas validaciones.

    gracias de antemano

    24 05 2013
    Daniel Panaro

    Buen día,
    Exacto, el IDOC no tiene exits.
    Si tienes que hacer una validación al crear una SalesOrder. Entonces podes buscar una EXIT de la VA01.

    En cambio, si tienes que validar o cambiar la salida del IDOC. Entonces como tu dijiste, necesitarás hacer una copia Z dl IDOC SALESORDER_CREATEFROMDAT202

    Saludos,
    Daniel.

    9 06 2013
    Diet Patch Trial

    I’m truly enjoying the design and layout of your blog. It’s
    a very easy on the eyes which makes it much more pleasant for
    me to come here and visit more often. Did you hire out a
    developer to create your theme? Fantastic work!

    16 06 2013
    Joyce

    After checking out a number of the blog articles
    on your site, I honestly appreciate your technique of writing a blog.
    I added it to my bookmark webpage list and will be checking back soon.
    Please check out my website too and let me know
    your opinion.

    23 07 2015
    Anónimo

    Cuando sigo tu manual todo lo consigo hacer menos el ultimo paso que me da un error de que no hay posiciones sabrias porque es o como solucionarlo

    4 08 2015
    Daniel Panaro

    Hola,
    Si no tenés entradas en la transacción WE02 es porque no se creó el IDOC.
    Debería verificar los pasos anteriores.

    Saludos,
    Daniel.

    27 07 2015
    Anónimo

    Tengo una pregunta si quiero que el idoc sea enviado a un tercero que tengo que hacer para poder realizar esto?

    4 08 2015
    Daniel Panaro

    Que tal,
    Para los métodos de envio. Fijate la parte de «Definición de puerta» (transacción WE21).

    Una opción de envío directo es vía «port XML-HTTP».
    Te dejo un link de referencia:
    http://tinyurl.com/qhj5mjl

    Espero te sirva,
    Saludos!
    Daniel.

    11 11 2015
    Daniel

    Hola Daniel, mi consulta es, cuando el Idoc me genera el archivo XML en el servidor, lo concatena en un archivo. Si lo quiero levantar desde otro SAP, como lo interpreta?, ya que no tiene varios datos, como por ejemplo, el texto del material del pedido. No me queda claro esa parte. La interpretación al levantar ese arhivo generado desde un sistema sap o no sap.

    12 11 2015
    Daniel Panaro

    El sistema que recibe la orden de compra, sea SAP o no, debe levantar el archivo XML para crear una orden de venta u orden de trabajo.

    Si al XML le faltan datos que son importantes.
    Entonces hay que modificar el Idoc estandard. Es decir, adaptarlo, hacerlo Z, para que incluya dicha información.

    Saludos,
    Daniel.

    31 03 2016
    Laura

    Hola, muy bueno el log y la explicación en general.
    Tengo una duda con respecto a los punteros de modificación. Ya esta configurado que por cada modificación en los artículos se dispare un idoc a un sistema externo. Lo que necesito es conocer la relación entre un puntero y el idoc generado por la modificación.
    Necesito hacer un reporte donde podrían buscar por el nro. de idoc y se necesita asociar al puntero creado.

    Espero me puedas ayudar.

    Saludos,

    11 08 2017
    Nelson Zambrano

    Hola Daniel, te felicito por compartir tus conocimientos…una duda; tengo un IDOCs que carga por LSMW un archivo cabecera y detalle de pedidos de compras, el funciona bien cuando el pedido es de pocas posiciones, pero cuando son muchas, se presentan errores…existe algún límite de registros para la carga por IDOCs ? eso es configurable ?….Gracias de antemano por tu ayuda….Saludos….

    28 10 2017
    WilliamEtedy

    An easy way to lose weight in 21 days:
    https://sites.google.com/site/weightlossluxury/weight-loss-news-and-photos-of-diets-tips-and-workouts

    Interesting tags:
    help to lose weight with pcos
    average weight loss for gastric sleeve
    moringa tea the weight loss tea
    yoga for weight loss for beginners video
    lose weight backpacking
    weight loss center chicago
    how to lose weight during summer vacation
    powers losers weight loss
    weight loss elderly dog

    31 10 2017
    JUAN ANGEL ROMAN

    Hola Daniel,
    A ver si puedes ayudarme.
    Cuando generamos un IDOC de un INVOIC tenemos un problema.
    Si el dato de la BASE IMPONIBLE es cero (p.e. un articulo de regalo) no se nos genera el segmento del IDOC correspondiente.
    Pasa lo mismo con los demas campos de la linea p.e el IVA.
    Necesitamos poder generar esa informacion en el IDOC para poder construir el EDIFACT y enviar la factura por EDI.
    Como podríamos generar esos registros?
    Gracias por tu excelente blog.
    Saludos

    25 10 2019
    Oscar Tarazona

    Daniel que buen instructivo…. tengo dos consultas es posible pasar el IDOC por código abap para adicionar otros campos que no tiene la orden al xml.
    la segunda duda: es posible introducir este xml generado es otro nodo de otra estructura xml?

    31 10 2019
    Daniel Panaro

    Que tal Oscar,
    En este instructivo se utilizó el IDOC estándard para órdenes de compra que es el ORDERS05.
    Si vos querés agregarle nuevos segmentos/campos.. entonces vas a tener que hacer una copia Z del ORDERS05 para luego ampliar/modificar las estructura del IDOC.

    Luego para poder introducir código ABAP propio y poder adicionar información vas a tener que:
    1) Crear un Tipo de Mensaje Z (transaccion WE81) donde le vas a asignar el IDOC Z que hayas creado.

    2) Cuando crees el Tipo de Interlocutor (transaccion WE20) vas a utilizar el Tipo de Mensaje Z que creaste.
    Y en la solapa «Control de mensajes» vas a tener que utilizar un «código de operación» Z al cual le vas a asignar un módulo de función también Z (sugiero que copies el módulo de función IDOC_OUTPUT_ORDERS … y allí le agregues tu código ABAP).

    Saludos cordiales,
    Daniel.

    14 01 2021
    Edwin Iriarte

    Hola Daniel, esta excelente tu blog , tengo una consulta podria utilizar los idocs, por ejemplo para contabilizar con una transacción de SD VFA01 y luego caragrlo con una transaccion de finanzas fb01 gracias

    Deja un comentario