✒️SAP - SAP WorkFlow

SAP SAP WorkFlow

WORK FLOW

  • 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 entrada 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_identificador.
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.


Sobre el autor

Publicación académica de Agustín Sebastián Van Dick, en su ámbito de estudios para el Curso Introducción SAP.

SAP Senior

Agustín Sebastián Van Dick

Profesión: Estudiante - Argentina - Legajo: QA56E

✒️Autor de: 38 Publicaciones Académicas

🎓Egresado del módulo:

Disponibilidad Laboral: FullTime

Presentación:

Actualmente soy estudiante de la carrera de lic. administración y, quiero formarme como consultor de sap.

Certificación Académica de Agustín Van

 

:: Al igual que Agustín ¿Usted está dispuesto a aprender SAP?

El lunes 28 Junio 2021 comenzamos el 🎓Curso Introducción SAP.
Juntos para realizar sus más grandes desafíos!

 Cargando presentación, aguarde unos instantes...

 

 

+Recursos Gratuitos en CVOSOFT:

¡Lo importante es aprender!, por eso en CVOSOFT la comunidad SAP más grande de habla hispana, ponemos a su alcance los siguientes recursos abiertos libres y gratuitos:

Buscador de Publicaciones:

 

 

Consultas y Soporte

👋Hola! ¿Podemos ayudarle con su plan de estudios?

Estamos listos para darle el soporte que su carrera merece mediante un asesoramiento especializado.

Acceda sección contacto y seleccione canal de comunicación más cómodo para usted.

🤝Aguardamos su contacto, Éxitos!