Manual para la creacion de IDOCs

March 23, 2018 | Author: Tirilo Joan Antivilo Rojas | Category: Table (Database), Pointer (Computer Programming), Computer File, Information, Areas Of Computer Science


Comments



Description

Manual para la creacion de IDOCsDe SAP ABAP en castellano Saltar a navegación, buscar Contenido [ocultar] • • • • • • • • • • • 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 o 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 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    11.2.5 Definición de Módulo de Función Title page Manual para la creación de Idocs El objetivo de este documento es servir de guía para la creación de interfaces entre dos sistemas R/3 o entre un R/3 y un legacy, utilizando Idocs. 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 . 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. El nombre de dicha estructura existe en SAP y se la puede ver desde la transacción SE11. Desde la transacción WE30 se puede ver el formato de los Idocs. Por ejemplo, para el Idoc MATMAS01, el formato es el siguiente: MATMAS01 E1MARAM E1MAKTM E1MARCM E1MARDM E1MARMM E1MEANM E1MBEWM E1MLGNM E1MVKEM E1MLANM E1MTXHM E1MTXLM Maestro material Maestro material datos generales (MARA) Maestro material - textos breves (MAKT) Maestro material segmento C (MARC) Maestro material almacén/segmento lotes (MARD) Maestro material unidades de medida (MARM) Maestro mat. números art. europeos (MEAN) Maestro material valoración stocks (MBEW) Maestro mat. datos por núm.almacén (MLGN) Maestro material datos de ventas (MVKE) Maestro material clasif. impuestos (MLAN) Maestro material texto explicativo cabecera Maestro material texto explicativo línea 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. 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. 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. Son automáticamente creados e insertados por el sistema en tiempo de ejecución.Definición de la estructura de Idocs. segmentos de control. datos y estado. La estructura del registro de contol está definida por la estructura del DDIC EDI_DC40: Cantidad de campos: 36 Total longitudes de campo: 524 Componente Tipo Long. y los segmentos consisten de una secuencia de campos. La estructura de un IDoc consiste de varios segmentos. un IDoc consiste de la siguiente secuencia de tres tipos de registros: a – Un único registro de Control Contiene toda la información de control del IDoc. incluyendo el número de IDoc. otra información de control tal como el tipo de mensaje que representa y el tipo de de IDoc. La estructura del registro de control es idéntica para todos los IDocs y está definida por SAP. Tipo Texto breve ______________________________________________________________________ ___ TABNAM MANDT DOCNUM DOCREL STATUS DIRECT OUTMOD EXPRSS TEST IDOCTYP CIMTYP CHAR EDI4TABNAM Nombre de la estructura de tabla 10 CLNT EDI4MANDT Mandante 3 CHAR EDI4DOCNUC Número del IDOC 16 CHAR EDI4DOCREL Release SAP del IDOC 4 CHAR EDI4STATUS Status del IDOC 2 CHAR 1 EDI4DIRECT CHAR EDI4OUTMOD Modo de salida 1 CHAR EDI4EXPRSS Sustitución en Entrada 1 CHAR 1 EDI4TEST CHAR EDI4IDOCTP Nombre del tipo base 30 CHAR EDI4CIMTYP Ampliación (definida por los clientes) 30 S In . emisor y receptor. En ejecución. indicador Estándar EDI. versión y release CHAR EDI4STDMES Tipo de mensajes EDI 6 CHAR 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 SNDLAD CHAR 70 EDI4SNDLAD RCVPOR CHAR 10 EDI4RCVPOR RCVPRT CHAR 2 EDI4RCVPRT SNDPRT destinatario RCVPFC destinatario RCVPRN CHAR SNDPRN EDI4SNDPRN RCVSAD 10 RCVLAD CREDAT CRETIM REFINT Interchange) REFGRP Group) REFMES ARCKEY CHAR 14 CHAR 70 EDI4REFMES EDI4ARCKEY CHAR 14 EDI4REFGRP CHAR 10 CHAR 21 CHAR 70 DATS 8 TIMS 6 EDI4RCVPRN EDI4RCVSAD EDI4RCVLAD EDI4CREDAT EDI4CRETIM CHAR 14 CHAR 2 EDI4RCVPFC Dirección del r Dirección lógic Puerta del desti Tipo de interloc Función de inter Nº interlocutor EDI de Dirección del destinat Dirección lógica del d Fecha de creación Hora de creación EDI4REFINT Fic Grupo de mensaj Mensaje (Me Clave del arc .CHAR EDI4MESTYP 30 CHAR MESCOD EDI4MESCOD 3 CHAR MESFCT EDI4MESFCT 3 CHAR STD EDI4STD 1 CHAR STDVRS EDI4STDVRS 6 MESTYP STDMES Tipo de mensaje Variante de mensajes Función de mensaje Estándar EDI. La estructura de los registros de datos está definida por la estructura de Estructura de campo Cantidad de campos: 7 Total longitudes de campo: 1063 Componente Tipo Long. y es el lugar donde l sección de datos es mapeada en ejecución a un tipo de segmento.). En ejecución. segú del tipo de IDoc. y el número de c – Uno o más registros de Estado Generalmente. a fin de interpretar la estructura de los datos en esta c Los datos de los registros de datos se almacenan en la tabla SAP EDID mandante (MANDT). varios registros de estado se adjuntan a un IDoc. b – Uno o más registros de Datos Un IDoc puede contener múltiples registros de datos. los segmentos son convertidos por el sistema a reg datos contiene información de la aplicación (maestro de proveedores. etc. el número de IDoc (DOCNUM). p pedidos. E .externo SERIAL HAR 20 EDI4SERIAL _________________________________________________________ Los datos del registro de control se almacenan en la tabla SAP EDIDC mandante (MANDT) y número de Idoc (DOCNUM). según haya sido IDoc. Tipo _________________________________________________________ SEGNAM MANDT DOCNUM SEGNUM PSGNUM HLEVEL SDATA CHAR 30 CLNT 3 CHAR 16 CHAR 6 NUMC 6 CHAR 2 LCHR 1000 EDI4SEGNAM EDI4MANDT EDI4DOCNUC EDI4SEGNUC EDI4PSGNUC EDI4HLEVEC EDI4SDATA Segmento (nom Mandante Número del IDO Número de segm Número del seg Nivel de jerarqu Datos de la aplic _________________________________________________________ La sección de datos es una cadena de 1000 bytes. W. Tipo _________________________________________________________ TABNAM MANDT DOCNUM LOGDAT LOGTIM STATUS STAMQU status STAMID CHAR 20 EDI4STAMID CHAR 10 EDI4TABNAM CLNT 3 CHAR 16 EDI4LOGDAT EDI4LOGTIM EDI4STATUS EDI4STAMQU DATS 8 TIMS 6 CHAR 2 CHAR 3 Nombre de la estruc EDI4MANDT Man EDI4DOCNUC Nú Fecha de la informa Hora de la informac Status del IDOC Cualificador para m Nro. de mensaje para Clase mensaje STAMNO STATYP de status STAPA1 de status STAPA2 CHAR 50 EDI4STAPA2 Segundo parámetro CHAR 50 EDI4STAPA1 Primer parámetro de un NUMC 3 CHAR 1 EDI4STAMNO EDI4STATYP Número de mensaje en Tipo de mensaje (A. tal como códi que el punto de control es alcanzado. a medida que e puntos de control. La estructura de los registros de estado está definida por la estructura d Estructura de campo Cantidad de campos: 24 Total longitudes de campo: 562 Componente Tipo Long. registro de status STAPA3 de status CHAR 50 EDI4STAPA3 Tercer parámetro de un . Estos registros de estado existe almacenados en el archivo de salida.asigna registros de estado durante todo el proceso. Contienen información de estado. Sin embargo.STAPA4 de status STATXT UNAME REPID ROUTID funciones) SEGNUM SEGFLD REFINT REFGRP REFMES ARCKEY CHAR 50 EDI4STAPA4 Cuarto parámetro de un CHAR 12 CHAR 30 CHAR 30 CHAR 70 EDI4UNAME EDI4REPID EDI4ROUTID EDI4STATXT T Nombre del usu Programa Subrutina (rutina CHAR 6 CHAR 30 CHAR 14 CHAR 14 CHAR 14 CHAR 70 EDI4SEGNUC EDI4SEGFLD EDI4REFINT EDI4REFGRP EDI4REFMES EDI4ARCKEY Número de segmento Campo de segmento Fichero de transmisió Grupo de mensajes (E Mensaje (Mensaje ED Clave del archivo de _________________________________________________________ Los datos de los registros de estado se almacenan en la tabla SAP EDI mandante (MANDT). referenciado por campos CURR Campo fecha (YYYYMMDD). almacenado como cha . número de Idoc (DOCNUM). fecha (LOGDAT) de registro (COUNTR). los segmentos no admiten cualquier tipo dato y por lo ta elementos en caso que los existentes no sean de alguno de los siguient _________________________________________________________ Tipo de Datos Descripción _________________________________________________________ CHAR CLNT CUKY DATS String de caracteres Cliente Campo moneda. – Creación de los elementos de datos Para la creación de un nuevo tipo de IDoc en SAP debe seguirse una s Deben crearse los elementos de datos necesarios para la definición de crear elementos de datos debería ser mínima dado que los datos ya exi representados por sus propios elementos de datos. Creación de un nuevo tipo de IDoc en SAP. LANG NUMC TIMS Clave de idioma Campo carácter con dígitos solamente Campo fecha (HHMMSS). el siguiente paso es crear el Tip IDocs se crean con el Editor de IDocs: Transacción: WE30 Camino Lógico: Desde el área de menú de EDI (transacción WEDI).2 – Entrar una descripción breve y los valores para los distintos cam definición del segmento.2 – En la siguiente pantalla. El sistema automáticamente asigna un nombr basado en el nombre del tipo de segmento. Ingresar el nombre del tipo base d Seleccionar la opción Tipo base y Crear (F5). 2.1 – Ejecutar la transacción WE30. S ¬seleccionar Menú SAP Pasos: 2.Ejecutar la transacción WE31.1 .: si el tipo de segmento e segmento será Z2WKDET. Camino lógico: Desde el área de menú de EDI (transacción WEDI).3 – Guardar las entradas. Volver a la pantalla anterior y repetir el mi segmentos que se necesiten crear para el tipo de IDoc. seleccionar la opción Crear nuevo e ing . almacenado como char(6) – Creación de Segmentos Los segmentos son creados por medio del Editor de Segmentos: Transacción: WE31. Ej. – Creación del Tipo Base de IDoc Una vez creados todos los segmentos. ¬seleccionar Menú SAP Pasos: 3. 2. Ingresar el nombre del tipo de seg seleccionar la opción Crear (F5). 3. El sistema automáticamente completa el check box en segmento. ya no pueden necesario introducir modificaciones debe cancelarse la liberación. 3. Presionar Continuar.4 – Para ingresar más segmentos. repetir el procedimiento del punto primer segmento. ejecutar la transacción WE30. Primero deben liberarse los segmentos y después el tipo b Para liberar un segmento. 3. Los son los mismos a los indicados para la liberación. Ingresar el tip Tratar. Ingre seleccionar Tratar.base de IDoc. debe indicarse para los restantes el nivel (mismo niv quiere insertar el nuevo segmento.5 – Guardar el tipo base de IDoc. – Transporte de Segmentos y Tipo Base de IDocs Las modificaciones a los tipos base de IDocs y segmentos son automát orden de transporte. Una vez que el segmento / tipo base de IDoc es liberado. los mismos pu manualmente desde el editor de segmentos / Transportar. Las ampliaciones de IDocs son componentes que se utilizan para exten existentes de una forma predefinida. Liberar. Estas extensiones sólo pueden ser los tipos de ampliación no son proporcionados por SAP. – Liberación del Tipo de Segmento y Tipo Básico de IDoc Una vez terminada la definición de la estructura del IDoc y sus segmen liberados a fin de que se encuentren disponibles para su transporte a lo producción. Liberar. e tipo de segmento al editor de IDoc. Para crear un tipo de ampliación: Transacción: WE30 . 3. Al transport seleccionando: Segmento transportan automáticamente todas sus defin embargo. Para liberar un tipo base de IDoc. al transportarse un tipo base de IDoc no se transportan autom Extensión de un IDoc. Al presionar Enter.3 – Posicionar el cursor sobre el nombre del IDoc y seleccionar Crea continuación el tipo de segmento y sus atributos. Luego de transportados los objetos. ejecutar la transacción WE31. La secuencia en la cual aparecen los segmentos de referencia en el tipo realmente importante es que dichos segmentos existan en el tipo de ID ampliado. Crear como copia. elegir el componente Tipo de ampliación e intro Objeto. En éste momento. Los tipos de IDoc base impleme ampliaciones permanecen sin cambios en la actualización. Los sucesores a tipos de anteriores se combinan automáticamente con los tipos de ampliación q se requiere un mantenimiento manual. Para añadir segmento ampliado a un segmento de referencia. habrá que actualizar los Acuerdos de Interlocutores qu especificando el nombre de la extensión creada. Introducir los nombres de la personas responsables así como una breve ampliación a crear.Camino Lógico: Desde el área de menú de EDI (transacción WEDI). que inserte los datos indicados en la extensión del segmento El programa o función que genere el Idoc puede o no ser un estandar S insertar el código necesario para manejar las extensiones en una User E transacción CMOD. tiene que haber una extensión en el códi outbound. Configuración el procesamiento Inbound Por cada segmento extendido. Las ampliaciones de cliente realizadas utilizando tipos de ampliación p sistema se actualice a una nueva versión R/3. Seleccionar Crear◊ Objeto desarrollo . tiene que haber una extensión en el códi . 1. coloca referencia siguiente a donde se pretenda añadir el nuevo segmento y se mensaje indicando que los segmentos creados después de un segmento creados como segmentos hijos. solo habrá que actualizarlo p Por otro lado. Elegir una de las siguientes tres opciones: • • • Crear nuevo. ¬seleccionar Menú SAP En el editor de IDOC. Seleccionar Continuar. Si es un programa Z. la ventana d ampliación se mostrará por pantalla. Configuración el procesamiento Outbound Por cada segmento extendido. Crear como sucesor. Creación de destinos RFC. se crean conexiones del tipo TCP/IP. y es este puerto el que des permite definir las características de los puertos individualmente y Acuerdos de Interlocutores. solo habrá que actualizarlo p Por otro lado. un puerto es un nombre lógico entrada/salida. buscar en SAP Library: Port Definition Los Idocs pueden ser enviados y recibidos a través de diferentes medio la definición de las características del medio con la aplicación que lo e accedido vía puertos. indi Transacción: WE21 Camino Lógico: Desde el área de menú de EDI (transacción WEDI). . que considere el tipo de segmento extendido recibido entre lo El programa o función que genere el Idoc puede o no ser un estandar S insertar el código necesario para manejar las extensiones en una User E transacción CMOD. se asigna un número de puerto. especificando el nombre del servido destino. Definición de puerta. En otras palabras. (A lo largo de este documento se usará la palabra Puerto o Puerta. puertos y sistema Definición de Destinos RFC Transacción: SM59 Camino Lógico: Desde el área de menú de EDI (transacción WEDI). Los programas se comunican con un puerto a través de En vez de definir el medio de comunicación directamente en el Acu Profile).inbound. ¬seleccionar Menú SAP Para una descripción detallada. habrá que actualizar los Acuerdos de Interlocutores qu especificando el nombre de la extensión creada. Si es un programa Z. Los cambios en un puerto se reflejará acuerdos que lo estén utilizando. ¬seleccionar Menú SAP Dependiendo del sistema destino. la conexión RFC será de distinto tip Idocs. El sistema que envía el IDoc crea un archivo en el file system. se puede invocar a la función EDI_PATH_CREATE_CLIEN los nombres del archivo en forma dinámica. Al igu Fichero. . seleccionar Preparar sist Preparar sistemas lógicos ¬receptores y de envío Asignar sistema lógico a mandante Cuando el sistema lógico es un R/3. se especifica un destino Definición de sistemas lógicos Transacción: BD54 Camino Lógico: Desde la transacción SALE. SAP recomienda no usar nombres de archivos estáticos.Al menos un puerto debe existir para cada sistema externo. el formato del XML. y el nombre del archivo a generar. dado que el ar que el Idoc se envía. el cual genera el nombr mandante y nro. La siguien son enviados a dos sistemas vía tres puertos. Se recomienda usar el módulo de funciones EDI_PATH_CREATE_CLIENT_DOCNUM. El nombre del puerto se p SAP lo elija. XML-HTTP En vez de definir el nombre del archivo XML. RFC Transaccional Se usa para escenarios de distrubución ALE. Además del puerto. e puerto. hay que definir el destino RFC. de Idoc. que está localizado que tiene un determinado nombre. Archivo XML Envía documentos en formato XML. Luego n RFC sincrónico que el archivo ha sido transferido. se lo debe asignar a un mandante. Para utilizar este tipo de puerto. Los tipos de puertos más comunes son los siguientes: Ficheros (File Interface) Permite intercambiar Idocs a través de archivos del sistema operativo. Cuando los datos son intercambiados entre que el emisor y el receptor estén de acuerdo en la sintaxis y semán intercambiados. sele Desarrollo ¬Menú SAP En este paso se asigna un tipo de mensaje a los contenidos de datos a s mensajes de usuario deben ser nombrados comenzando con Z. Transacción: WE20 ¬ Gestión ¬Camino Lógico: Desde la transacción WEDI. y pos nombre del sistema lógico. seleccionar Interlocutores EDI Un interlocutor ALE es un sistema SAP remoto o un sistema legac datos. El acuerdo de interlocutor especifica varias de las caracterís intercambian incluyendo el modo de operación y la organización o manejo de los errores. Nombre del Emisor y Receptor que intercambiarán los Idocs p Puerto por el cual el emisor y el receptor se comunicarán. Este acuerdo es lo que se llama Acuerdo de Interl receptor de la estructura de los datos enviados y cómo los contenid La datos definidos en un acuerdo de interlocutor son: • • • Tipo de Idoc y Tipo de mensaje. Creación de los acuerdos de interlocutores. los cuales son el identificador interlocutor. . Hacer doble click sobre el mandante que al que se desea asignar. En el interlocutor se definen datos específicos de cada mensaje a trans o entrada según corresponda. Mediante la transacción WE20 se crea el acuerdo de interlocutor con e Creación de un nuevo tipo de Mensaje en SA Transacción: WE81 Camino Lógico: Desde el área de menú EDI (transacción WEDI).Transacción: SCC4 Camino Lógico: Desde la transacción SALE. seleccionar Preparar sist un¬ Preparar sistemas lógicos ¬receptores y de envío mandante. aún si el escenario ya se enc Puede haber varios escenarios para diferentes propósitos. ¬seleccionar Menú SAP En este paso se asigna el tipo de mensaje creado en el paso anterio asociación no sólo sirve a fin de documentar el mensaje en que está sino que además verifica esta asociación el momento en que el IDo Creación de un modelo de distribución. pero puede ser seteado para interlocutores en cualquier momento. La relación entre sistemas lógicos. Pero si hay v diferentes requerimientos. Las aplicaciones y la capa ALE usan el modelo de distrib receptores y para controlar la distribución de datos. Lo más recomendable es crear un escenario por administrad ALE. BAPIs y filtros e Distribución. El escenario de distribución es datos serán replicados y quienes serán los receptores. no tiene mucho sentido tener más de un escenario. El modelo de distribución es compartido entre todos los interlocut solo puede ser mantenido en uno de los sistemas. será más útil crear un escenario por departa Pasos para crear un Modelo de Distribución: Transacción: BD64 Camino Lógico: Desde la transacción SALE. tipos de mensajes. seleccionar Aplication L implementar modelos empresariales ¬Enabling (ALE) modelos de Di -Ir a la transacción BD64 -Pasar al modo modificación -Presionar el botón Crear Modelo Vista (Ctrl+F4) . Por otro lado escenario. Los escenarios de distribución definen los tipos de IDocs y los pare participan en una distribución ALE. el cual lo podemo uno de los sistemas es el sistema líder.Relación entre un tipo de Mensaje y un Tipo Transacción: WE82 Camino Lógico: Desde el área de menú de EDI (transacción WEDI). Crear acuerdos de interlocutores. (G) Creación de un Idoc de salida Existen tres formas de creación de Idocs: • • • Desde un programa ABAP (desarrollo Z). Crear de un modelo de distribución.Aparecerá la siguiente ventana: -Completar el texto breve y el nombre técnico para el modelo de distri -Seleccionar el registro recién creado y presionar el botón Insertar Tip Aparecerá la siguiente ventana: -Completar el campo Emisor con el nombre del Sistema lógico que tra -Completar el campo Destinatario con el nombre del Sistema lógico qu -Completar el campo Tipo de mensaje con el mensaje que se transmiti Importante No se puede mantener un tipo de mensaje entre el mismo emisor y rec distribución. Desde un puntero de modificación (Change Pointer). por lo cual solamente se procederá a exp necesarios para crear un Idoc. Desde mensajes de logística. Crear un nuevo tipo de Mensaje en SAP. puertos y destinos RFC. Extender un Idoc. Relacionar un tipo de Mensaje con un tipo base de Idoc. Crear sistemas lógicos. Creación de Idocs desde un programa ABAP . Observación: Los pasos para: • • • • • • • Crear de un nuevo tipo de IDoc en SAP. fueron explicados más arriba. T_COMM_CONTROL LIKE EDIDC OCCURS 0 WITH HEADER LINE IDOC_DATA LIKE EDIDD OCCURS 0 WITH HEADER LINE * CAMPOS DE CONTROL DEL IDOC idoc_control-doctyp idoc_control-mestyp idoc_control-idoctp idoc_control-serial idoc_control-direct idoc_control-serial idoc_control-serial+8 idoc_control-rcvprn idoc_control-rcvprt APPEND idoc_control.Seleccionar la información de la base de datos de acuerdo a los pará 2. 6. 5. c_rcvprn"Nro Interlocutor Desti 'LS'"Tipo interlocutor dest * Esta sección la repite una vez por cada registro de dat * en el IDoc."Nombre edidc-rcvprn VALUE 'SAPBCD IDOC_CONTROL LIKE EDIDC. '1'."Nombre Segmento * Completa los datos de la estructura del segmento CLEAR Z1INVRV.4 y 5 * DECLARACION DE DATOS DATA: c_message_type c_base_idoc_type c_invrev_segname(7) c_rcvprn LIKE LIKE TYPE LIKE edidc-mestyp VALUE 'ZINVRV edidc-idoctp VALUE 'ZINVRV C VALUE 'Z1INVRV'.Ejecutar COMMIT WORK. * CAMPOS DE DATOS DEL IDOC = = = = = = = = = c_message_type. sy-uzeit.Llamar al servicio de la capa ALE (MASTER_IDOC_DISTRIB la base de datos."Tipo Mensaje c_base_idoc_type.Completar una tabla interna de tipo EDIDD con los registros de dat correspondientes. 3. A continuación se detalla un ejemplo con los pasos 2. 3.Los pasos a seguir para la creación de un IDoc de salida desde un prog 1."Tipo de Idoc space. sy-datum. * Indica cuál es el tipo de segmento IDOC_DATA-SEGNAM = C_INVREV_SEGNAME."Tipo Mensaje c_message_type.Completar la información correspondiente al registro de control. 4.Enviar el Idoc invocando al programa RSEOUT00. . el sistema escribe "punteros de modificación" (c de cada una de estas modificaciones para cada documento. COMMIT WORK."Datos del Segmento * Inserta el registro actual a la tabla interna de datos APPEND IDOC_DATA.Call the distribute function with the required param CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE' EXPORTING MASTER_IDOC_CONTROL = TABLES COMMUNICATION_IDOC_CONTROL = MASTER_IDOC_DATA = EXCEPTIONS ERROR_IN_IDOC_CONTROL ERROR_WRITING_IDOC_STATUS ERROR_IN_IDOC_DATA SENDING_LOGICAL_SYSTEM_UNKNOWN = 4 OTHERS if sy-subrc = 0... Una vez completados estos pasos. queda creado el Idoc. El mismo se g EDIDC y EDID4. endif. El repo ejecutado a fin de procesar todas las entradas en la tabla de punte generar los IDocs. Para enviar el Idoc a su destinatario. Crear un módulo de función para leer los punteros de modifica .. Activar los punteros de modificación para nuestro tipo de mens Definir los campos relevantes para la generación de punteros d Relacionar el tipo de mensaje con el módulo de función. *--... Se lo puede ver desde la transacción WE05. tal como datos proveedores. etc. Z1INVRV-CAMPO_NN = VALOR_NN * Mueve la estructura con los datos del segmento al único IDOC_DATA-SDATA = Z1INVRV. se invoca al programa RSEOUT0 Creación de Idocs utilizando Punteros de Modificación (Ch Toda vez que se crean o modifican datos maestros.Z1INVRV-CAMPO_01 = VALOR_01 .. . .. este programa llama a un módulo de función es Los pasos a seguir para la creación de un Idoc de salida utilizando Pun siguientes: • • • • • Activar los punteros de modificación en forma global. Luego se desplegará una pantalla para ingresar los campos: .Objeto de Modificación -Tabla -Campo Relación entre el Tipo de Mensaje y el Módulo de Función . y marcarla como activa. Definición de campos relevantes para la generación de Punteros d Transacción: BD52 Servicio de¬ IDoc ¬ Desarrollo ALE ¬ ALE ¬Camino Lógico: Herra relevantes para modificación¬Modificaciones Ingresar entradas para los campos sobre los cuales se quieran crear Pu Primero completar el tipo de mensaje y presionar continuar. Activación de punteros de modificación por Tipo de Mensaje Transacción: BD50 Camino Lógico: Desde la configuración de ALE en el IMG (transacció Configurar¬seleccionar Modelar e Implementar procesos empresariale datos modificados ¬distribución de datos maestros Activar puntero m Agregar una entrada para el mensaje deseado.Activación de punteros de modificación en forma global Transacción: BD61 Camino Lógico: Desde la configuración de ALE en el IMG (transacció Configurar¬seleccionar Modelar e Implementar procesos empresariale datos modificados ¬distribución de datos maestros Activación genera Marcar el Flag: Puntero modificación general activado y grabar. Leer los punteros de modificación generados usando la función CH 2. usando la clave 3.Transacción: BD60 Filtrado de¬ IDoc ¬ Desarrollo ALE ¬ ALE ¬Camino Lógico: Herra mediante clases.Completar una tabla interna de estructura EDIDD con registros de d 7. Crear un módulo de función para leer los punteros de modificació Esta función contiene la lógica para la generación de los IDocs a partir invocada desde el programa RBDMIDOC.Seleccionar datos de aplicación de la base de datos.¬datos En este paso se relaciona el tipo de mensaje con el módulo de func analizar/procesar los punteros de modificación.Completar la información del registro de control del IDoc.Ejecutar un COMMIT WORK.Actualizar el estado de los punteros de modificación 9.Llamar al servicio de la capa ALE (MASTER_IDOC_DISTRIBUT de datos.Analizar los punteros de modificación para determinar cuáles docum 3. 5. salvo que se esté extend caso de estar extendiendo. En otras palabras. 4. 8. Generalmente se utiliza una función estándar. 6. Ejecutar la transa entrada para el tipo de mensaje deseado. cuando se ejecute el programa estandar RBDMIDO Modificación y se detecte que uno de los campos que se insertaron en relevantes para la generación de Punteros de Modificación) se modific está definiendo en este paso. a partir de la configuración La lógica del programa contiene los siguientes pasos: 1. y el módulo de función q ese Puntero de Modificación. lo que se hace generalmente es copiar una f lógica necesaria para que se considere el segmento extendido al mome .Determinar la clave del documento de aplicación del paso 2. . y llama al módulo de función adecuado p función MASTERIDOC_DISTRIBUTE. Esto incluye. Un mensaje NA solo registro en la tabla NAST. Creación de un Idoc de entrada La configuración de la interfaz de entrada incluye una sección de Conf manejo de excepciones.Configuración de Workflow. una clave de objeto para identific y receptor del mensaje. entre otras cosas. 3 – Crear el link de los eventos. 2 – Crear una nueva tarea basada en el objeto de aplicación Idoc. La tabla utilizada para esto es la NAST. El registro guarda toda la información Idoc. Podemos dividir esta tarea en dos partes: 1. Cada vez que una aplicación ve la necesidad de pasar información a un escrito en la tabla NAST. Un controlador de mensajes (message handl entradas en esta tabla y ejecutará la acción apropiada. Configuración de Workflow La configuración de workflow es necesaria para el manejo de excepcio pasos que deben llevarse a cabo son: 1 – Crear un nuevo Objeto de Aplicación IDoc en el Business Object B y de finalización.Creación de Idocs desde un Mensaje de Logística El proceso lógico de generación de Idocs de salida desde Mensajes de es el siguiente: • • • Un programa ABAP (desarrollo Z) o transacción estándar crea El mensaje es procesado por el programa ABAP estándar RSN desde la tabla NAST. 2. El Idoc es enviado a su destinatario al ejecutar el programa RS Se puede usar el concepto de Mensajes R/3 para disparar la creación d se dispara la impresión de SapScripts.Configuración de la Interfaz de entrada. Esta tabla guarda recordatorio recordatorios son llamados Mensajes (messages). t (TS00008046). Esto se realiza en la tab La transacción es la OOW4. Para cada puede definirse un número prefijo propio. Una tarea apunta a un método a ser ejecutado y a un evento tarea. . 1 – Seleccionar el botón Buscar (ctrl. 1 – Ejecutar la transacción PFTC_COP. De esta manera es posible realizar un trans sistema a otro. Desde el punto uniformidad se realiza mediante un "número prefijo".Crear un nuevo Objeto de Aplicación Idoc Transacción: SWO1 ¬ Desarrollo ¬ SAP Business Workflow ¬Camino Lógico: Herramien Builder¬Herramientas def. llega a aparecer el mensaje: Falta entrada para sistema NNN. Una tarea de workflow define los atributos de la tarea que debe ser eje aplicación. mandante XXX el problema es el siguiente: Las tareas y papeles. La mejor opción para definir una nueva tarea es copiar una existente. en todo momento y sin restricciones. Seleccionar el ícon Modificar el nombre y descripción del objeto de manera que coincidan liberar el Tipo de objeto. Crear una nueva tarea basada en el Objeto de Aplicación Idoc Observación: Si al ejecutar este paso.+F) y expandir las opciones de se Selecciones (todas). así como las definiciones workflow necesitan sistema y el mandante. Ingresar IDOCAPPL en el campo Tipo super y Ej 2 – Seleccionar cualquier objeto y seleccionar Business Objects ¬ Cop El objeto seleccionado debe tener los eventos INPUTERROROCCUR 3 – Asignar un nombre al Tipo de Objeto y al programa 4 – Hacer doble clic sobre la nueva entrada creada. Borrar el/los eventos existentes y crear otro basado Tipo de Objeto: ZIDOCZQOTE Evento: INPUTERROROCCURRED 6 – Debe ahora definirse el link de datos entre el evento de triggering y correspondiente al evento de triggering y presionar el ícono Defin. Seleccionar Desencadenantes. y el número de tarea d Seleccionar Modificar. Flu propuestos para los campos Expresión y Excepción. Seleccionar el ícono Copiar. E Tomar nota del número creado (ejemplo: 90000001). 5 – El siguiente paso es modificar el evento de Triggering. Transacción: PFTC_COP ¬ Desarrollo ¬ SAP Business Workflow ¬Camino Lógico: Herramien de Tareas ¬Herramientas def. Presionar Enter. 7 – Activar el link 8 – Definir ahora el evento de terminación. Seleccionar Tarea estándar para el tipo de tarea e ingresar algún núme tarea. Seleccionar Tarea estándar como tipo de tarea. 2 – Ingresar una abreviatura y nombre para la tarea. 4 – Reemplazar el campo Tipo de Objeto con el Objeto de aplicación I ZIDOCZQOTE.Transacción: PFTC_COP ¬ Desarrollo ¬ SAP Business Workflow ¬Camino Lógico: Herramien Tareas ¬Herramientas def. Ejemplo de Sigla y Denominación: Sigla: ZQOTE_ERROR Denominación: ZQOTE Error de Entrada 3 – Ejecutar la transacción PFTC_CHG. Seleccionar la solapa Even Borrar el eventos existente y crear otro basado en el Tipo de Objeto: . Asignar métodos de entrada.Definir Módulo de Función. 8 . 5 . 9 . deben llevarse a cabo configuración del proceso de entrada: 1 . 7 .Relacionar el tipo de mensaje al tipo de IDoc. 3 .Tipo de Objeto: ZIDOCZQOTE Evento: INPUTFINISHED Elemento: WIOBJECT_ID (la única opción disponible) 9 – Definir la tarea como Tarea General de modo tal que pueda ser eje Datos adicionales ¬ Asign.Definir o modificar un acuerdo de interlocutor . Responsable ¬ Actualizar.Definir Puerta.Definir los atributos para el módulo de función de entrada. 6 .Asignar el módulo de función al tipo de mensaje lógico y Idoc. Ver detalles del procedimiento más arriba en este mismo documento: C Mensaje Relación entre el tipo de mensaje y el tipo de Idoc Transacción: WE82 . Definición de mensaje Transacción: WE81 Camino Lógico: Desde el área de menú de EDI (transacción Tipos de mensajes Menú SAP En este paso se asigna un tipo de mensaje a los contenidos del IDoc y Definir un tipo de mensaje. 4 .Configuración de la Interfaz de entrada Luego de definir la configuración de workflow.Definir un nuevo Código de Operación. 2 . Por ejemplo: ZQUOTE (Oferta). Seleccionar la o .Definir un nuevo tipo de mensaje. No es recomenda alguna existente.Apl. 1 – Crear un módulo de función (o sea una función). Relación entre el módulo de función y el tipo de mensaje Transacción: WE57 Camino Lógico: Desde el área de menú de EDI (transacción WEDI). Tipo Mensaje y Tipo Objeto mostr ejemplo. Observación: En el caso de mensajes de salida. Ver detalles del procedimiento más arriba en este mismo documento: R Mensaje y un Tipo Base de IDoc. var mensaje.Camino Lógico: Desde el área de menú de EDI (transacción WEDI). Los valores de Módulo. s Obj. Para mensajes de entrada. Tipo Base. esta relación es estable interlocutor. variante lógica de mensaje y función lógica de mensaje). ya que los parámetros de la función son estándar. no existe entrada para el tipo d interlocutor. por lo que esta configuración es usada para establecer un object válidos para el módulo de función. seleccionar IDoc / Mensaje En este paso se asigna el tipo de mensaje creado en el paso anterior al Para este ejemplo. pero el Tipo y Sentido se deben respetar.¬Desarrollo Esta configuración establece un link entre el módulo de funciones. Por ejemplo. relacionar el tipo de mensaje (ej: ZQUOTE) con el ZQUOTE01). Módulo: Tipo: Tipo Base: Tipo Mensaje: ZQUOTE Tipo Objeto: Sentido: ZIDOCZQOTE 2 (Salida) Z_IDOC_INPUT_ZQUOTE F (módulo de función) ZQUOTE01 . copiar el módulo de función IDOC_INPUT_ORDERS a asignarlo a algún grupo de funciones Z. 2 – Crear una nueva entrada en la transacción WE57. así como programación avanzada de workflow. s proceso de¬ Parametrizaciones Entrada ¬ Desarrollo ¬Menú SAP en En este paso se asigna el código de operación de proceso al módulo de de entrada. Módulo de funciones Asignar métodos de entrada Transacción: BD67 Oferta Z_IDOC_IN 2 Este paso crea un link entre el código de proceso definido en el paso p Además. se definen parámetros adicionales que la componente de wor errores. Con bloqueo de IDoc en transacció Diálogo posible: X El flag de diálogo posible indica si el IDoc puede ser procesado en mo Si esta opción está seteada.font size = "4">Definir atributos del Módulo de Función</font> Transacción: BD51 Camino Lógico: Herramientas => Desarrollo ALE =¬ALE > IDoc => de Funciones => Actualizar atributos Crear una nueva entrada. según el siguiente detall Descripción: Módulo de Función: Cantidad máxima de repeticiones: Marcar el flag Proceso con servicio ALE Marcar el flag Procesamiento c. el usuario puede reprocesar el juego de dat Definición de Código de Operación Transacción: WE42 Camino Lógico: Desde el área de menú de EDI (transacción WEDI). . con el siguiente detalle: Módulo de función de entrada: Z_IDOC_INPUT_ZQUOTE Tipo de Entrada: 2 (Entrada indiv. El código de operación de proceso es un medio indirecto d función. Definir el código de operación (Ej: ZQUOT). (Ejempo EDI_ZQOT02) de tipo fichero. Fichero de salida: Definición de Módulo de Función ZQUOTE02 X "V Un módulo de función de entrada de Idocs tiene la siguiente secuencia .¬ Crear un Acuerdo de Interlocutor con la siguiente información: Nro. Directorio físico: 2.: Verif. para defin vez generado y transmitido a la puerta de salida. Oper. Adicionar parámetro de entrada con la siguiente información: Opciones de Salida: Tipo de interlocutor EDI: Función interlocutor EDI: Tipo de mensaje: Cód.Definición de Acuerdo de Interlocutor Transacción: WE20 Camino Lógico: Desde el área de menú de EDI (transacción WEDI). s Puerta¬Gestión Se crea una puerta.: Lanzamiento inmediato: Definición de Puerta Transacción: WE21 LS LS ZQUOTE ZQUOT 3 Poner el nombre del sistema lógico que LS (sistema lógico) US (Usuario) (el Id del usuario que lo está creand Camino Lógico: Desde el área de menú de EDI (transacción WEDI). Interlocutor EDI: Tipo de Interlocutor EDI: Tipo de Autor: Autor: Presionar Grabar. s Acuerdo entre interlocutores EDI. Datos de la puerta de fichero: 1. Sintax. generar una excepción. 7 – Retornar del módulo de función. 3 – Procesar cada registro de datos. 2 . Si no. Los resultados de la ejecución son En general. volver al paso 2. los módulos de funciones que reciben Idocs tienen los sigu Import parameters INPUT_METHOD MASS_PROCESSING Reference field BDWFAP_PAR-INPUTMETHD BDWFAP_PAR-MASS_PROC Export Parameters WORKFLOW_RESULT APPLICATION_VARIABLE IN_UPDATE_TASK CALL_TRANSACTION_DONE Reference field BDWFAP_PAR-RESUL BDWFAP_PAR-APPL_V BDWFAP_PAR-UPDAT BDWFAP_PAR-CALLT Table Parameters IDOC_CONTRL IDOC_DATA IDOC_STATUS RETURN_VARIABLES SERIALIZATION_INFO Reference field EDIDC EDIDD BDIDOCSTAT BDWFRETVAR BDI_SER Opt Exceptions . 5 – Completar los parámetros de retorno. ir al paso 7.Leer los datos para un IDoc. Verificar la informació el tipo de mensaje es incorrecto. 6 – Si existen otros IDocs.1 – Leer la información del registro de control. ... GUARDA LOS DATOS EN UNA DETERMINADA ESTRUCTURA Y LO PROCESA. CASE IDOC_DATA-SEGNAM."LOOP AT IDOC_CONTRL...WRONG_FUNCTION_CALLED A continuación se detalla genéricamente el código de procesamiento d puede ver que realiza los pasos mencionados más arriba. * RECORRE LOS SEGMENTOS DE DATOS PARA CADA UNA DE LAS * CABECERAS DE IDOCS (REGISTROS DE CONTROL) LOOP AT IDOC_DATA WHERE DOCNUM = IDOC_CONTRL-DOCNUM.. ********************************************************* * FORMS ********************************************************* FORM F_PROCESAR_XXXX * Acá insertar la lógica necesaria para el procesamiento ENDFORM. WHEN C_XXXXXX.. . * * SEGUN EL SEGMENTO... IT_XXXXXXX = IDOC_DATA-SDA PERFORM F_PROCESAR_NNNN ENDCASE. ENDLOOP. *-------------------------------------------------------* FORM UPDATE_IDOC_STATUS *-------------------------------------------------------* . *RECORRE EL/LOS IDOC/S DE CABECERA LOOP AT IDOC_CONTRL. .."LOOP AT IDOC_DATA * GUARDA EL RESULTADO DE LA EJECUCION PARA EL IDOC PERFORM UPDATE_IDOC_STATUS.. ENDLOOP. WHEN C_SEGNAM... *-------------------------------------------------------- . IT_Z1INVRV = IDOC_DATA-SDA PERFORM F_PROCESAR_XXXX . * DECLARACION DE DATOS DATA: C_SEGNAM(10) TYPE C VALUE 'Z1INVRV'. APPEND IDOC_STATUS. IDOC_STATUS-MSGNO = SY-MSGNO. IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM. IDOC_STATUS-UNAME = SY-UNAME. IDOC_STATUS-MSGV3 = SY-MSGV3. IDOC_STATUS-MSGV4 = SY-MSGV4. IDOC_STATUS-MSGV4 = SY-MSGV4. IDOC_STATUS-MSGID = SY-MSGID. IDOC_STATUS-MSGV3 = SY-MSGV3. RETURN_VARIABLES-WF_PARAM = 'Processed_ID RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL APPEND RETURN_VARIABLES.FORM UPDATE_IDOC_STATUS." UPDATE_IDOC_STATUS . IDOC_STATUS-MSGV2 = SY-MSGV2. IDOC_STATUS-MSGID = SY-MSGID. ENDFORM. IDOC_STATUS-MSGV2 = SY-MSGV2. RETURN_VARIABLES-WF_PARAM = 'ERROR_IDOCS' RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL APPEND RETURN_VARIABLES. IDOC_STATUS-REPID = SY-REPID. IDOC_STATUS-MSGV1 = SY-MSGV1. IF RETURN_CODE = 0. IDOC_STATUS-MSGNO = SY-MSGNO. IDOC_STATUS-MSGTY = SY-MSGTY. WORKFLOW_RESULT = '0'. IDOC_STATUS-STATUS = '51'. ENDIF. IDOC_STATUS-MSGTY = SY-MSGTY. IDOC_STATUS-REPID = SY-REPID. IDOC_STATUS-STATUS = '53'. ELSE. WORKFLOW_RESULT = '99999'. IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM. *--.Now we check the CALL TRANSACTION return code and se CLEAR IDOC_STATUS. IDOC_STATUS-MSGV1 = SY-MSGV1. IDOC_STATUS-UNAME = SY-UNAME.
Copyright © 2024 DOKUMEN.SITE Inc.