Академический Документы
Профессиональный Документы
Культура Документы
COM
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?........................................................................................... 3
2
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
A lo largo de este manual se muestran las pantallas y pasos para la creación y modificación
de objetos con el fin de crear IDocs. Muchas veces hace falta darle nombres a esos objetos.
Tener en cuenta que los nombres asignados son solamente a modo de ejemplo. No siguen
ninguna nomenclatura y se podría haber utilizado cualquier otro.
Si bien este documento intenta ser lo más abarcativo posible, recordar que es solamente un
manual, y al momento de crear los IDocs podrían llegar a aparecer pasos aquí no
contemplados.
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, entro otras cosas, cuál será
el destinatario del IDoc. La tabla SAP donde se guardan es la EDIDC.
3
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
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.
4
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
Contiene toda la información de control del IDoc, incluyendo el número de IDoc, emisor
y receptor, 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. Son automáticamente creados e insertados por el sistema en tiempo
de ejecución.
La estructura del registro de contol está definida por la estructura del DDIC EDI_DC40:
Cantidad de campos: 36
Total longitudes de campo: 524
_________________________________________________________________________
TABNAM CHAR 10 EDI4TABNAM Nombre de la estructura de tabla
MANDT CLNT 3 EDI4MANDT Mandante
DOCNUM CHAR 16 EDI4DOCNUC Número del IDOC
DOCREL CHAR 4 EDI4DOCREL Release SAP del IDOC
STATUS CHAR 2 EDI4STATUS Status del IDOC
DIRECT CHAR 1 EDI4DIRECT Sentido
OUTMOD CHAR 1 EDI4OUTMOD Modo de salida
EXPRSS CHAR 1 EDI4EXPRSS Sustitución en Entrada
TEST CHAR 1 EDI4TEST Indicador test
IDOCTYP CHAR 30 EDI4IDOCTP Nombre del tipo base
CIMTYP CHAR 30 EDI4CIMTYP Ampliación (definida por los clientes)
MESTYP CHAR 30 EDI4MESTYP Tipo de mensaje
MESCOD CHAR 3 EDI4MESCOD Variante de mensajes
MESFCT CHAR 3 EDI4MESFCT Función de mensaje
STD CHAR 1 EDI4STD Estándar EDI, indicador
STDVRS CHAR 6 EDI4STDVRS Estándar EDI, versión y release
STDMES CHAR 6 EDI4STDMES Tipo de mensajes EDI
SNDPOR CHAR 10 EDI4SNDPOR Puerta remitente (System, subsystem
externo)
SNDPRT CHAR 2 EDI4SNDPRT Tipo de interlocutor EDI del remitente
SNDPFC CHAR 2 EDI4SNDPFC Función interlocutor EDI del remitente
SNDPRN CHAR 10 EDI4SNDPRN Número del interlocutor EDI del
remitente
SNDSAD CHAR 21 EDI4SNDSAD Dirección del remitente (SADR)
SNDLAD CHAR 70 EDI4SNDLAD Dirección lógica del remitente
RCVPOR CHAR 10 EDI4RCVPOR Puerta del destinatario
5
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
RCVPRT CHAR 2
EDI4RCVPRT Tipo de interlocutor EDI del
destinatario
RCVPFC CHAR 2 EDI4RCVPFC Función de interlocutor EDI del
destinatario
RCVPRN CHAR 10 EDI4RCVPRN Nº interlocutor EDI destinatario
RCVSAD CHAR 21 EDI4RCVSAD Dirección del destinatario (SADR)
RCVLAD CHAR 70 EDI4RCVLAD Dirección lógica del destinatario
CREDAT DATS 8 EDI4CREDAT Fecha de creación
CRETIM TIMS 6 EDI4CRETIM Hora de creación
REFINT CHAR 14 EDI4REFINT Fichero de transmisión (EDI
Interchange)
REFGRP CHAR 14 EDI4REFGRP Grupo de mensajes (EDI Message
Group)
REFMES CHAR 14 EDI4REFMES Mensaje (Mensaje EDI)
ARCKEY CHAR 70 EDI4ARCKEY Clave del archivo de mensajes
externo
SERIAL HAR 20 EDI4SERIAL Serialización
_________________________________________________________________________
Los datos del registro de control se almacenan en la tabla SAP EDIDC. La clave de esta tabla
es el mandante (MANDT) y número de Idoc (DOCNUM).
Un IDoc puede contener múltiples registros de datos, según haya sido definida la estructura
del Tipo de IDoc. En ejecución, los segmentos son convertidos por el sistema a registros de
datos. Un registro de datos contiene información de la aplicación (maestro de proveedores,
petición de oferta, oferta, pedidos, etc.).
La estructura de los registros de datos está definida por la estructura del DDIC EDI_DD40:
Estructura de campo
Cantidad de campos: 7
Total longitudes de campo: 1063
La sección de datos es una cadena de 1000 bytes, y es el lugar donde los datos realmente
residen. La sección de datos es mapeada en ejecución a un tipo de segmento, según haya
sido definida la estructura del tipo de IDoc, a fin de interpretar la estructura de los datos en
esta cadena.
6
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
Los datos de los registros de datos se almacenan en la tabla SAP EDID4. La clave de la tabla
es el mandante (MANDT), el número de IDoc (DOCNUM), y el número de segmento
(SEGNUM).
La estructura de los registros de estado está definida por la estructura del DDIC EDI_DS40.
Estructura de campo
Cantidad de campos: 24
Total longitudes de campo: 562
___________________________________________________________________________
________
TABNAM CHAR 10 EDI4TABNAM Nombre de la estructura de tabla
MANDT CLNT 3 EDI4MANDT Mandante
DOCNUM CHAR 16 EDI4DOCNUC Número del IDOC
LOGDAT DATS 8 EDI4LOGDAT Fecha de la información de status
LOGTIM TIMS 6 EDI4LOGTIM Hora de la información de status
STATUS CHAR 2 EDI4STATUS Status del IDOC
STAMQU CHAR 3 EDI4STAMQU Cualificador para mensaje en registro de
status
STAMID CHAR 20 EDI4STAMID Nro. de mensaje para mensaje de status:
Clase mensaje
STAMNO NUMC 3 EDI4STAMNO Número de mensaje en mensaje de status
STATYP CHAR 1 EDI4STATYP Tipo de mensaje (A, W, E, S, I) en el mensaje
de status
STAPA1 CHAR 50 EDI4STAPA1 Primer parámetro de un mensaje en registro
de status
STAPA2 CHAR 50 EDI4STAPA2 Segundo parámetro de un mensaje en
registro de status
STAPA3 CHAR 50 EDI4STAPA3 Tercer parámetro de un mensaje en registro
de status
STAPA4 CHAR 50 EDI4STAPA4 Cuarto parámetro de un mensaje en registro
de status
STATXT CHAR 70 EDI4STATXT Texto para status
UNAME CHAR 12 EDI4UNAME Nombre del usuario
REPID CHAR 30 EDI4REPID Programa
ROUTID CHAR 30 EDI4ROUTID Subrutina (rutina, módulo de
funciones)
SEGNUM CHAR 6 EDI4SEGNUC Número de segmento
SEGFLD CHAR 30 EDI4SEGFLD Campo de segmento
REFINT CHAR 14 EDI4REFINT Fichero de transmisión (EDI Interchange)
REFGRP CHAR 14 EDI4REFGRP Grupo de mensajes (EDI Message Group)
REFMES CHAR 14 EDI4REFMES Mensaje (Mensaje EDI)
ARCKEY CHAR 70 EDI4ARCKEY Clave del archivo de mensajes externo
7
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
__________________________________________________________________________
Los datos de los registros de datos se almacenan en la tabla SAP EDIDS. La clave de la tabla
es el mandante (MANDT), número de Idoc (DOCNUM), fecha (LOGDAT), hora (LOGTIM), y
un contador de registro (COUNTR).
8
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
Para la creación de un nuevo tipo de IDoc en SAP debe seguirse una secuencia de 5 pasos:
Sin embargo, los segmentos no admiten cualquier tipo dato y por lo tanto deberán definirse
nuevos elementos en caso que los existentes no sean de alguno de los siguientes tipos:
______________________________________________________________
Tipo de Datos Descripción
______________________________________________________________
CHAR String de caracteres
CLNT Cliente
CUKY Campo moneda, referenciado por campos CURR
DATS Campo fecha (YYYYMMDD), almacenado como char(8)
LANG Clave de idioma
NUMC Campo carácter con dígitos solamente
TIMS Campo fecha (HHMMSS), almacenado como char(6)
2 – Creación de Segmentos
Los segmentos son creados por medio del Editor de Segmentos:
Transacción: WE31.
Camino lógico: Desde el área de menú de EDI (transacción WEDI), seleccionar Menú SAP
Desarrollo Segmentos IDoc.
9
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
Pasos:
2.1 - Ejecutar la transacción WE31. Ingresar el nombre del tipo de segmento (debe comenzar
con Z1) y seleccionar la opción Crear (F5).
2.2 – Entrar una descripción breve y los valores para los distintos campos. Este paso
completa la definición del segmento. El sistema automáticamente asigna un nombre a la
definición del segmento, basado en el nombre del tipo de segmento. Ej.: si el tipo de
segmento es Z1WKDET, la definición del segmento será Z2WKDET.
2.3 – Guardar las entradas. Volver a la pantalla anterior y repetir el mismo procedimiento para
todos los segmentos que se necesiten crear para el tipo de IDoc.
Transacción: WE30
Camino Lógico: Desde el área de menú de EDI (transacción WEDI), seleccionar Menú SAP
Desarrollo Tipos IDoc.
10
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
11
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
Pasos:
3.1 – Ejecutar la transacción WE30. Ingresar el nombre del tipo base de IDoc (debe comenzar
con Z). Seleccionar la opción Tipo base y Crear (F5).
3.2 – En la siguiente pantalla, seleccionar la opción Crear nuevo e ingresar una descripción
para el tipo base de IDoc. Presionar Continuar.
3.3 – Posicionar el cursor sobre el nombre del IDoc y seleccionar Crear (Shift+F6). Ingresar a
continuación el tipo de segmento y sus atributos. Al presionar Enter, el sistema transfiere el
nombre del tipo de segmento al editor de IDoc.
3.4 – Para ingresar más segmentos, repetir el procedimiento del punto 3.3. Luego de haber
creado el primer segmento, debe indicarse para los restantes el nivel (mismo nivel o nivel hijo)
en el cual se quiere insertar el nuevo segmento.
12
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
Una vez que el segmento / tipo base de IDoc es liberado, ya no pueden ser modificados. En
caso de ser necesario introducir modificaciones debe cancelarse la liberación. Los pasos para
cancelar la liberación son los mismos a los indicados para la liberación.
13
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
Extensión de un IDoc.
Las ampliaciones de IDocs son componentes que se utilizan para extender tipos de IDoc base
ya existentes de una forma predefinida. Estas extensiones sólo pueden ser realizadas por el
cliente ya que los tipos de ampliación no son proporcionados por SAP.
Transacción: WE30
Camino Lógico: Desde el área de menú de EDI (transacción WEDI), seleccionar Menú SAP
Desarrollo Tipos IDoc.
• Crear nuevo.
• Crear como copia.
• Crear como sucesor.
Introducir los nombres de la personas responsables así como una breve descripción del
14
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
Por cada segmento extendido, tiene que haber una extensión en el código del módulo de
función de outbound, 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 SAP. En caso de serlo,
habrá que insertar el código necesario para manejar las extensiones en una User Exit. Para
hacer esto usar la transacción CMOD. Si es un programa Z, solo habrá que actualizarlo para
que considere la extensión.
Por otro lado, habrá que actualizar los Acuerdos de Interlocutores que utilicen el Idoc
extendido, especificando el nombre de la extensión creada.
Por cada segmento extendido, tiene que haber una extensión en el código del módulo de
función de inbound, que considere el tipo de segmento extendido recibido entre los datos para
poder procesarlo.
El programa o función que genere el Idoc puede o no ser un estandar SAP. En caso de serlo,
habrá que insertar el código necesario para manejar las extensiones en una User Exit. Para
hacer esto usar la transacción CMOD. Si es un programa Z, solo habrá que actualizarlo para
que considere la extensión.
Por otro lado, habrá que actualizar los Acuerdos de Interlocutores que utilicen el Idoc
extendido, especificando el nombre de la extensión creada.
15
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
Dependiendo del sistema destino, la conexión RFC será de distinto tipo. En general, para
envió de Idocs, se
crean conexiones del tipo TCP/IP, especificando el nombre del servidor destino y el puerto
TCP destino.
16
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
Definición de puerta.
(A lo largo de este documento se usará la palabra Puerto o Puerta, indistintamente)
Transacción: WE21
Camino Lógico: Desde el área de menú de EDI (transacción WEDI), seleccionar Menú SAP
Gestión Descripción Puerta.
Para una descripción detallada, buscar en SAP Library: Port Definition: Configuring Ports
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. La siguiente figura muestra cómo
los Idocs son enviados a dos sistemas vía tres puertos.
17
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
RFC Transaccional
Se usa para escenarios de distrubució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
18
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
Transacción: SCC4
Camino Lógico: Desde la transacción SALE, seleccionar Preparar sistemas receptores y de
envío Preparar sistemas lógicos Asignar sistema lógico a un mandante.
19
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
Hacer doble click sobre el mandante que al que se desea asignar, y posteriormente completar
con el nombre del sistema lógico.
20
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
- 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.
21
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
Transacción: WE81
Camino Lógico: Desde el área de menú EDI (transacción WEDI), seleccionar Menú SAP
Desarrollo Tipos de Mensajes
En este paso se asigna un tipo de mensaje a los contenidos de datos a ser transferidos en el
IDoc. Los mensajes de usuario deben ser nombrados comenzando con Z.
22
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
23
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
En este paso se asigna el tipo de mensaje creado en el paso anterior a un tipo de IDoc.
Esta asociación no sólo sirve a fin de documentar el mensaje en que está basado cada
tipo de IDoc, sino que además verifica esta asociación el momento en que el IDoc es
generado.
24
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
La relación entre sistemas lógicos, tipos de mensajes, BAPIs y filtros están definidas en el
Modelo de Distribución. Las aplicaciones y la capa ALE usan el modelo de distribución para
determinar los receptores y para controlar la distribución de datos.
Los escenarios de distribución definen los tipos de IDocs y los pares de Interlocutores
que participan en una distribución ALE. El escenario de distribución es la referencia para
determinar qué datos serán replicados y quienes serán los receptores.
Puede haber varios escenarios para diferentes propósitos. Por otro lado se puede poner todo
en un solo escenario. Lo más recomendable es crear un escenario por administrador. Si hay
un solo administrador ALE, no tiene mucho sentido tener más de un escenario. Pero si hay
varios departamentos con diferentes requerimientos, será más útil crear un escenario por
departamento.
Transacción: BD64
Camino Lógico: Desde la transacción SALE, seleccionar Aplication Link Enabling (ALE)
Modelar e implementar modelos empresariales Actualizar modelos de Distribución y
Distribuir Vistas
25
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
-Completar el campo Emisor con el nombre del Sistema lógico que transmitirá el mensaje.
-Completar el campo Destinatario con el nombre del Sistema lógico que recibirá el mensaje.
-Completar el campo Tipo de mensaje con el mensaje que se transmitirá entre estos sistemas
lógicos.
Importante
26
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
27
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
Observación:
fueron explicados más arriba, por lo cual solamente se procederá a explicar los mínimos
pasos necesarios para crear un Idoc.
* DECLARACION DE DATOS
DATA:
c_message_type LIKE edidc-mestyp VALUE 'ZINVRV', "Tipo Mensaje
c_base_idoc_type LIKE edidc-idoctp VALUE 'ZINVRV01',"Tipo de Idoc
28
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
APPEND idoc_control.
* Esta sección la repite una vez por cada registro de datos a insertar
* en el IDoc.
* Mueve la estructura con los datos del segmento al único campo de datos.
IDOC_DATA-SDATA = Z1INVRV. "Datos del Segmento
29
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
APPEND IDOC_DATA.
if sy-subrc = 0.
COMMIT WORK.
endif.
Una vez completados estos pasos, queda creado el Idoc. El mismo se guarda físicamente en
las tablas EDIDC y EDID4. Se lo puede ver desde la transacción WE05.
Los pasos a seguir para la creación de un Idoc de salida utilizando Punteros de Modificación
son los siguientes:
30
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
Transacción: BD50
Camino Lógico: Desde la configuración de ALE en el IMG (transacción SALE), seleccionar
Modelar e Implementar procesos empresariales Configurar distribución de datos maestros
Configurar reproducción de datos modificados Activar puntero modificación por tipo
mensaje.
31
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
Ingresar entradas para los campos sobre los cuales se quieran crear Punteros de
Modificación.
32
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
- Objeto de Modificación
-Tabla
-Campo
33
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
En otras palabras, cuando se ejecute el programa estandar RBDMIDOC para procesar los
Punteros de Modificación y se detecte que uno de los campos que se insertaron en el paso
anterior (campos relevantes para la generación de Punteros de Modificación) se modificó, se
invocará a la función que se está definiendo en este paso.
Crear un módulo de función para leer los punteros de modificación y crear los Idocs.
Esta función contiene la lógica para la generación de los IDocs a partir de punteros de
modificación. Es invocada desde el programa RBDMIDOC, a partir de la configuración
realizada en el punto anterior.
34
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
Generalmente se utiliza una función estándar, salvo que se esté extendiendo un Idoc.
Igualmente, en caso de estar extendiendo, lo que se hace generalmente es copiar una
función estándar y agregarle la lógica necesaria para que se considere el segmento extendido
al momento de crear el Idoc.
Se puede usar el concepto de Mensajes R/3 para disparar la creación de Idocs de la misma
manera que se dispara la impresión de SapScripts.
La tabla utilizada para esto es la NAST. Esta tabla guarda recordatorios escritos por
aplicaciones. Estos recordatorios son llamados Mensajes (messages).
Cada vez que una aplicación ve la necesidad de pasar información a un sistema externo, un
mensaje es escrito en la tabla NAST. Un controlador de mensajes (message handler)
eventualmente chequeará las entradas en esta tabla y ejecutará la acción apropiada. Un
mensaje NAST de salida es guardado en un solo registro en la tabla NAST. El registro guarda
toda la información que es necesaria para crear el Idoc. Esto incluye, entre otras cosas, una
clave de objeto para identificar al objeto procesado, el emisor y receptor del mensaje.
35
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
1- Configuración de Workflow.
2- Configuración de la Interfaz de entrada.
Configuración de Workflow
La configuración de workflow es necesaria para el manejo de excepciones en el proceso de
entrada. Los pasos que deben llevarse a cabo son:
1 – Crear un nuevo Objeto de Aplicación IDoc en el Business Object Builder con eventos de
triggering y de finalización.
2 – Crear una nueva tarea basada en el objeto de aplicación Idoc.
3 – Crear el link de los eventos.
Transacción: SWO1
Camino Lógico: Herramientas SAP Business Workflow Desarrollo Herramientas def.
Business Object Builder
36
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
4 – Hacer doble clic sobre la nueva entrada creada. Seleccionar el ícono de Datos básicos y
Modificar. Modificar el nombre y descripción del objeto de manera que coincidan con los del
IDoc. Generar y liberar el Tipo de objeto.
Observación:
el problema es el siguiente:
Las tareas y papeles, así como las definiciones workflow necesitan un ID, unívoco para
todo el sistema y el mandante. De esta manera es posible realizar un transporte de
estos objeltos de un sistema a otro, en todo momento y sin restricciones. Desde el
punto de vista técnico, esta uniformidad se realiza mediante un "número prefijo". Para
cada sistema y cada mandante puede definirse un número prefijo propio. Esto se
realiza en la tabla T78NR.
La transacción es la OOW4.
Una tarea de workflow define los atributos de la tarea que debe ser ejecutada cuando ocurre
un error de aplicación. Una tarea apunta a un método a ser ejecutado y a un evento de
triggering que comienza la tarea.
La mejor opción para definir una nueva tarea es copiar una existente, tal como
ORDERS_ERROR (TS00008046).
Transacción: PFTC_COP
Camino Lógico: Herramientas SAP Business Workflow Desarrollo Herramientas def.
Tareas/Grupos de Tareas Copiar
37
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
Seleccionar Tarea estándar para el tipo de tarea e ingresar algún número de tarea (ej:
74508518) como tarea. Seleccionar el ícono Copiar.
2 – Ingresar una abreviatura y nombre para la tarea. Presionar Enter. Esto debería copiar la
tarea. Tomar nota del número creado (ejemplo: 90000001).
Sigla: ZQOTE_ERROR
Denominación: ZQOTE Error de Entrada
Transacción: PFTC_COP
Camino Lógico: Herramientas SAP Business Workflow Desarrollo Herramientas def.
Tareas/Grupos de Tareas Modificar
Seleccionar Tarea estándar como tipo de tarea, y el número de tarea del paso 2 en el campo
Tarea. Seleccionar Modificar.
4 – Reemplazar el campo Tipo de Objeto con el Objeto de aplicación IDoc creado más arriba,
ZIDOCZQOTE.
38
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
6 – Debe ahora definirse el link de datos entre el evento de triggering y la tarea. Seleccionar
la línea correspondiente al evento de triggering y presionar el ícono Defin. Flujo datos.
Aceptar los valores propuestos para los campos Expresión y Excepción.
7 – Activar el link
9 – Definir la tarea como Tarea General de modo tal que pueda ser ejecutada por todos.
Seleccionar Datos adicionales Asign. Responsable Actualizar. Seleccionar la opción
Tarea General y grabar.
Luego de definir la configuración de workflow, deben llevarse a cabo los siguientes pasos
para la configuración del proceso de entrada:
Definición de mensaje
En este paso se asigna un tipo de mensaje a los contenidos del IDoc y se le da una
descripción corta. Definir un tipo de mensaje. Por ejemplo: ZQUOTE (Oferta).
39
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
Ver detalles del procedimiento más arriba en este mismo documento: Creación de un nuevo
Tipo de Mensaje
Transacción: WE82
(iii) Camino Lógico: Desde el área de menú de EDI (transacción WEDI),
seleccionar Menú SAP Desarrollo Tipo IDoc / Mensaje
En este paso se asigna el tipo de mensaje creado en el paso anterior al tipo de IDoc.
Para este ejemplo, relacionar el tipo de mensaje (ej: ZQUOTE) con el tipo base de IDoc ( ej:
ZQUOTE01).
Ver detalles del procedimiento más arriba en este mismo documento: Relación entre un Tipo
de Mensaje y un Tipo Base de IDoc.
Transacción: WE57
Camino Lógico: Desde el área de menú de EDI (transacción WEDI), seleccionar Desarrollo
Mensaje / Obj.Apl.
Esta configuración establece un link entre el módulo de funciones, variante de mensaje (tipo
de mensaje, variante lógica de mensaje y función lógica de mensaje).
Los valores de Módulo, Tipo Base, Tipo Mensaje y Tipo Objeto mostrados a continuación son
de ejemplo,
pero el Tipo y Sentido se deben respetar.
Módulo: Z_IDOC_INPUT_ZQUOTE
Tipo: F (módulo de función)
Tipo Base: ZQUOTE01
Tipo Mensaje: ZQUOTE
Tipo Objeto: ZIDOCZQOTE
Sentido: 2 (Salida)
40
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
Transacción: BD51
Camino Lógico: Herramientas ALE Desarrollo ALE IDoc Proceso de Entrada
Módulo de Funciones Actualizar atributos
El flag de diálogo posible indica si el IDoc puede ser procesado en modo de diálogo luego de
un error. Si esta opción está seteada, el usuario puede reprocesar el juego de datos en modo
visible.
41
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
Transacción: WE42
Camino Lógico: Desde el área de menú de EDI (transacción WEDI), seleccionar Menú SAP
Desarrollo Parametrizaciones Entrada Cód. operación proceso de entrada
En este paso se asigna el código de operación de proceso al módulo de función creado para
el proceso de entrada. El código de operación de proceso es un medio indirecto de identificar
al módulo de función.
Descripción: Oferta
Módulo de Función: Z_IDOC_INPUT_ZQOTE
Cantidad máxima de repeticiones: 2
42
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
Transacción: BD67
Este paso crea un link entre el código de proceso definido en el paso previo y el módulo de
función. Además, se definen parámetros adicionales que la componente de workflow utiliza
para manejo de errores, así como programación avanzada de workflow.
Transacción: WE20
Camino Lógico: Desde el área de menú de EDI (transacción WEDI), seleccionar Menú SAP
Gestión Acuerdo entre interlocutores EDI.
Nro. Interlocutor EDI: Poner el nombre del sistema lógico que se haya creado.
Tipo de Interlocutor EDI: LS (sistema lógico)
Tipo de Autor: US (Usuario)
43
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
Presionar Grabar.
Opciones de Salida:
Definición de Puerta
Transacción: WE21
Camino Lógico: Desde el área de menú de EDI (transacción WEDI), seleccionar Gestión
Descripción Puerta
Se crea una puerta, (Ejempo EDI_ZQOT02) de tipo fichero, para definir el destino físico del
IDOC una vez generado y transmitido a la puerta de salida.
1. Directorio físico: X
2. Fichero de salida: ZQUOTE02 “Valor de Ejemplo
En general, los módulos de funciones que reciben Idocs tienen los siguientes parámetros:
44
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
MASS_PROCESSING BDWFAP_PAR-MASS_PROC N
Exceptions
WRONG_FUNCTION_CALLED
* DECLARACION DE DATOS
DATA: C_SEGNAM(10) TYPE C VALUE 'Z1INVRV'.
IT_Z1INVRV = IDOC_DATA-SDATA.
PERFORM F_PROCESAR_XXXX
...
...
...
45
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
WHEN C_XXXXXX.
IT_XXXXXXX = IDOC_DATA-SDATA.
PERFORM F_PROCESAR_NNNN
ENDCASE.
************************************************************************
* FORMS
************************************************************************
FORM F_PROCESAR_XXXX
ENDFORM.
FORM UPDATE_IDOC_STATUS.
*--- Now we check the CALL TRANSACTION return code and set IDOC status
CLEAR IDOC_STATUS.
IF RETURN_CODE = 0.
WORKFLOW_RESULT = '0'.
IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
IDOC_STATUS-STATUS = '53'.
IDOC_STATUS-UNAME = SY-UNAME.
IDOC_STATUS-REPID = SY-REPID.
IDOC_STATUS-MSGTY = SY-MSGTY.
IDOC_STATUS-MSGID = SY-MSGID.
IDOC_STATUS-MSGNO = SY-MSGNO.
IDOC_STATUS-MSGV1 = SY-MSGV1.
IDOC_STATUS-MSGV2 = SY-MSGV2.
IDOC_STATUS-MSGV3 = SY-MSGV3.
IDOC_STATUS-MSGV4 = SY-MSGV4.
RETURN_VARIABLES-WF_PARAM = 'Processed_IDOCs'.
RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.
APPEND RETURN_VARIABLES.
ELSE.
WORKFLOW_RESULT = '99999'.
IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
IDOC_STATUS-STATUS = '51'.
IDOC_STATUS-UNAME = SY-UNAME.
IDOC_STATUS-REPID = SY-REPID.
IDOC_STATUS-MSGTY = SY-MSGTY.
IDOC_STATUS-MSGID = SY-MSGID.
IDOC_STATUS-MSGNO = SY-MSGNO.
46
MANUALES Y TUTORIALES WWW.MUNDOSAP.COM
IDOC_STATUS-MSGV1 = SY-MSGV1.
IDOC_STATUS-MSGV2 = SY-MSGV2.
IDOC_STATUS-MSGV3 = SY-MSGV3.
IDOC_STATUS-MSGV4 = SY-MSGV4.
RETURN_VARIABLES-WF_PARAM = 'ERROR_IDOCS'.
RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.
APPEND RETURN_VARIABLES.
ENDIF.
APPEND IDOC_STATUS.
ENDFORM. " UPDATE_IDOC_STATUS
47