100% encontró este documento útil (1 voto)
577 vistas36 páginas

Manual SAP Workflow Con Ejemplo Completo

Este documento proporciona una guía sobre cómo configurar y utilizar SAP Workflow. Explica los pasos para crear un objeto de negocio, desarrollar campos, atributos, métodos y eventos. Luego describe cómo definir e implementar un flujo de trabajo, incluida la creación de tareas y actividades, y finalmente cómo lanzar un flujo de trabajo mediante un programa.

Cargado por

Cristian Segura
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (1 voto)
577 vistas36 páginas

Manual SAP Workflow Con Ejemplo Completo

Este documento proporciona una guía sobre cómo configurar y utilizar SAP Workflow. Explica los pasos para crear un objeto de negocio, desarrollar campos, atributos, métodos y eventos. Luego describe cómo definir e implementar un flujo de trabajo, incluida la creación de tareas y actividades, y finalmente cómo lanzar un flujo de trabajo mediante un programa.

Cargado por

Cristian Segura
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 36

https://alejandroajc.wordpress.

com/2015/04/10/manual-sap-workflow/

Manual SAP Workflow


Cita abril 10, 2015 alejandroajc

 Que es un Workflow
Es una herramienta que permite la implementación técnica de
procesos de negocio complejos independientemente del tiempo y
del lugar.
El flujo de trabajo es controlado y coordinado activamente por el
sistema workflow. El control incluye la monitorización de pasos de
trabajo individuales y el inicio de procesos para escalar las tareas
que lleguen a su fecha de vencimiento.
El sistema workflow se integra completamente con las funciones
de negocio del sistema R/3 a través de su Business Object
Repository BOR en la transacción SWO1.
Adicionalmente el sistema Workflow permite su integración con la
gestión de la organización, lo que permite relacionar personas o
estructuras organizativas a las tareas del workflow.
Creación de un Workflow
A continuación se indican los pasos que se tienen que realizar para
la creación de un workflow y comprede la siguiente arquitectura.
Definición e implementación
del Business Object
Repository
Lo primero que se tiene que hacer es la creación del BOR, que se
realiza en la transacción SWO1.
 Vamos a la transacción SWO1
Conforme lo creamos sale de la siguiente forma.
Estado de un tipo de objeto
A continuación se indican los estados de un tipo de objeto:

 Modelado : En este estado el tipo de objeto no se puede


instanciar, es decir no se pueden generar objetos de este tipo.
 Implementado : Solo para pruebas, uso interno o
posiblemente inestable.
 Liberado : Liberado para ser utilizado por el cliente, solo se
podrán realizar ampliaciones pero no modificar radicalmente el
tipo.
 Obsoleto : El tipo de objeto ha sido reemplazado por otro.
A continuación vamos a indicar que el BOR está como tipo de
objeto “Implementado” y luego vamos a Grabar y generar y luego
en “Liberado”.
Desarrollo de un tipo de objeto campo clave
A continuación lo que se tendrá que generar los campos claves del
objeto que acabamos de crear.
A continuación grabaremos y generaremos el objeto, una vez
grabado pondremos el campo clave primero en “Implementado” y
luego en “Liberado”.

Desarrollo de un tipo de objeto atributo


A continuación lo que se tendrá que generar los atributos del
objeto que acabamos de crear.
Los atributos pueden ser o de base de datos o virtuales, en este
ejemplo crearemos un atributo virtual.

Atributo virtual

Al generar un atributo virtual el sistema no generará el código


automáticamente pero si nos presentará donde debemos colocar el
programa (entre las clausulas GET_PROPERTY y
END_PROPERTY).
El atributo se crea mediante el programa (como una variable) y
luego se coloca como resultado en el container del objeto mediante
la macro SWC_SET_ELEMENT.
En el caso que el atributo virtual sea un objeto deberemos
instanciar un objeto mediante la macro SWC_CREATE_OBJECT.
A continuación grabaremos y generaremos el objeto, una vez
grabado pondremos el atributo primero en “Implementado” y
luego en “Liberado”.
Ahora se tendrá que implementar el código del atributo.
get_property estado changing container.
SELECT SINGLE estado INTO object-estado
FROM zprocesowf
WHERE identificador EQ object-key-identificador.
swc_set_element container ‘estado’ object-estado.
end_property.

Desarrollo de un tipo de objeto método


Los métodos son las actividades que podemos llevar a cabo sobre
un objeto, pueden ser de dos tipos:

 Asincronos: El resultado siempre es enviado de vuelta al


programa llamador en la forma de un evento

 Sincronos: El resultado es enviado directamente al programa


que lo ejecuto.

Ambos tipos de métodos pueden recibir datos a través de


parámetros (parámetros de importanción) .
A continuación grabaremos y generaremos el objeto, una vez
grabado pondremos el método, primero en “Implementado” y
luego en “Liberado”.
Después se tendrá que realizar la implementación del método.

begin_method cambiarestado changing container.
DATA: lv_identificador TYPE numc10,
lv_estado         TYPE cms_re_dte_obj_cond.
DATA: ls_proceso       TYPE zprocesowf.
swc_get_element container ‘IDENTIFICADOR’ lv_identificador.” 
Dato de entrada de la tarea
swc_get_element container ‘ESTADO’ lv_estado.” Dato de entra
da de la tarea
UPDATE zprocesowf
SET   estado        = lv_estado
WHERE identificador = lv_identificador.
COMMIT WORK AND WAIT.
swc_set_element container ‘ESTADO’ lv_estado.” Dato de salida 
de la tarea.
end_method.” Cambiar estado
Después de realizar la implementación se tendrán que declarar los
parámetros.
Desarrollo de un tipo de objeto evento
Para lanzar el workflow se tendrá que definir un evento de
lanzamiento.
A continuación grabaremos y generaremos el objeto, una vez
grabado pondremos el evento primero en “Implementado” y luego
en “Liberado”.

Definición e implementación del


Workflow
Para realizar la implementación del workflow vamos a la
transacción PFTC,

 Datos del container

Lo primero que se tiene que hacer es incluir en el container el BOR


que hemos creado.
 Datos básicos

 Workflow Builder
A continuación se definirá el proceso de negocio mediante el
workflow builder y el evento desencadenante del workflow.

 Definición del evento desencadenante


Crear Tarea
Primero se tiene que crear una tarea en la Transacción PFTC para
luego asociarla a una actividad del workflow.
Ahora se tiene que crear la actividad
Ponemos la tarea antes creada
Tarea de decisión de usuario
A continuación vamos hacer una tarea de decisión de usuario, para
enviar una tarea al Workitem de un un usuario.
Después vamos a la transacción SE37, para crear la función que
determinará el responsable

ACTOR_TAB            LIKE    SWHACTOR


AC_CONTAINER      LIKE    SWCONT
FUNCTION zwf_usuario_tarea.
*”———————————————————————-
*”*”Interfase local
*”  TABLES
*”      ACTOR_TAB STRUCTURE  SWHACTOR
*”      AC_CONTAINER STRUCTURE  SWCONT
*”———————————————————————-
INCLUDE <cntain>.” Incluimos el container del BOR
DATA: lv_identificador TYPE numc10,
lv_estado        TYPE cms_re_dte_obj_cond.
DATA: ls_log           TYPE zlog_procesowf.
swc_get_element ac_container ‘IDENTIFICADOR’ lv_identificad
or.
swc_get_element ac_container ‘ESTADO’ lv_estado.
actor_tab-otype = ‘US’.
actor_tab-objid = sy-uname.
APPEND actor_tab.
actor_tab-otype = ‘US’.
actor_tab-objid = ‘AJIMENEZ’.
APPEND actor_tab.
ls_log-identificador = lv_identificador.
ls_log-estado        = lv_estado.
CONCATENATE ‘US’ ‘AJIMENEZ’ INTO ls_log-usuario.
ls_log-fecha         = sy-datum.
ls_log-hora          = sy-uzeit.
INSERT zlog_procesowf FROM ls_log.
COMMIT WORK AND WAIT.
ENDFUNCTION
Después vamos a la transacción PFAC.
Creamos la actividad en el workflow

Se pone el número de la regla que acabamos de crear.


A continuación se pone la tarea que hemos creado
Cuando se lanza el workflow tiene que salir lo siguiente.
A continuación muestro como se ve el Worflow.
Programa para lanzar
Workflow
*&———————————————————————*
*& Report  ZLANZAR_WF
*&
*&———————————————————————*
*&
*&
*&———————————————————————*
REPORT zlanzar_wf.
TABLES: zprocesowf.
CONSTANTS: lc_estado TYPE cms_re_dte_obj_cond VALUE ‘IN
ICIO’.
DATA: lv_rango         TYPE numc10,
ls_proceso       TYPE zprocesowf.
DATA: lv_identificador LIKE swr_struct-object_key,
lv_evento        LIKE swr_struct-event,
lv_swf_xmlcnt    TYPE swf_xmlcnt,
lv_swf_xmlsiz    TYPE swf_xmlsiz,
lt_mensaje       TYPE TABLE OF swr_messag.
CALL FUNCTION ‘NUMBER_GET_NEXT’ ” número para el Log
EXPORTING
nr_range_nr = ’01’
object      = ‘ZPROCESO’
quantity    = ‘1’
IMPORTING
number      = lv_rango.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WIT
H sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ls_proceso-identificador = lv_rango.
ls_proceso-estado        = lc_estado.
INSERT zprocesowf FROM ls_proceso.
COMMIT WORK AND WAIT.
lv_identificador = ls_proceso-identificador.
lv_evento        = ls_proceso-estado.
CALL FUNCTION ‘SWF_CREATE_EVENT’
EXPORTING
object_type    = ‘ZPROCESOWF’
object_key     = lv_identificador
event          = lv_evento
xml_container  = lv_swf_xmlcnt
xml_size       = lv_swf_xmlsiz
commit_work    = ‘X’
event_language = sy-langu
language       = sy-langu
user           = sy-uname
TABLES
message_lines  = lt_mensaje.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WIT
H sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

También podría gustarte