En la entrada anterior aprendimos como crear un workflow para una transacción utilizando AWE. En esta entrada queremos aumentar las posibilidades del AWE incluyendo el manejo del control ruta dentro de nuestro Workflow.
Para los que no está familiarizados con el Control Ruta les cuento que es una herramienta que se utiliza en la anterior tecnología de workflow para restringir el enrutamiento de las transacciones. Por ejemplo, tu tienes una trasacción que solo necesita una aprobación, entonces creamos un rol de aprobador y se lo asociamos a las personas que pueden aprobar la transacción, pero si la transacción se debe aprobar por una sola persona teniendo en cuenta la ciudad donde se haya generado la transacción, o sea el que aprueba las transacciones de Cali no es el mismo que aprueba el de Bucaramanga, ahí es donde entra a jugar el control ruta, este nos permite asignarle a un usuario el rol de aprobador y además las ciudades para las cuales el debe realizar las aprobaciones.
Para nuestro ejemplo vamos a usar el control de ruta para separar los aprobadores de transacciones por país, dependiendo del país en el que se registre el equipo debemos asignar un aprobador diferente.
El primer paso en nuestro ejemplo es crear un tipo control ruta, esto lo hacemos por la siguiente ruta: Inicio > Peopletools > Workflow > Rutas y Roles > Tipos de Control Ruta. En este componente agregamos un nuevo tipo llamado PAISES y como tabla de validación le asignamos COUNTRY_TBL.
El siguiente paso es crear agrupaciones de países para que luego sean asignados a los aprobadores. En nuestro caso crearemos 2 grupos, uno que representará a los países involucrados en la NBA y otro en el que asociaremos los países de latinoamerica. Para esto vamos a Inicio > Peopletools > Workflow > Rutas y Roles > Perfiles de Control de Rutas. En esta ruta agregamos 2 perfiles:
- EQUIPOS LATAM: A este perfil le asociamos el tipo de control ruta que creamos (PAISES) y le agregamos los países de Suramerica.
- EQUIPOS NBA: A este perfil le asociamos el tipo de control ruta que creamos (PAISES) y le agregamos los países de la NBA.
En la entrada anterior habíamos creado 3 usuarios para realizar las aprobaciones: PE_APROBADOR1 Asociado al rol PE_APROBADORES_UNO, PE_APROBADOR2 Asociado al rol PE_APROBADORES_DOS y PE_APROBADOR3 Asociado al rol PE_APROBADORES_TRES. El siguiente paso es asociar a esos 3 usuarios al perfil control ruta "EQUIPOS LATAM" para que estos usuarios queden habilitados solo para aprobar los equipos asociados a países de Suramérica. Esto lo hacemos en Inicio > Peopletools > Seguridad > Perfiles de Usuario > Perfiles de Usuario, buscamos cada uno de los usuarios y vamos al rol de aprobación que tiene asociado cada uno de ellos. Para cada rol asociado al usuario existe un link llamado Control Ruta, en ese link podemos asociar el perfil control ruta "EQUIPOS LATAM".
Para los aprobadores de los equipos de la NBA debemos crear 3 usuario más. PE_APROBADOR1_1 Asociado al rol PE_APROBADORES_UNO, PE_APROBADOR2_1 Asociado al rol PE_APROBADORES_DOS y PE_APROBADOR3_1 Asociado al rol PE_APROBADORES_TRES y en el control ruta asociamos el perfil "EQUIPOS NBA".
Ahora debemos crear las consultas que nos permitirán enlazar el control ruta con el Application Workflow Engine. Por cada rol que manejamos debemos crear 1 consulta por el gestor de consultas de Peoplesoft. De esta forma para nuestro ejemplo las consultas quedarán de la siguiente forma:
- PE_APROBADORES_UNO_QRY:
SELECT A.ROLEUSER
FROM PSROLEUSER A, PS_RTE_CNTL_RUSER B, PS_RTE_CNTL_LN
C, PS_PE_EQUIPOS D WHERE A.ROLEUSER = B.ROLEUSER
AND A.ROLENAME = B.ROLENAME
AND B.RTE_CNTL_PROFILE = C.RTE_CNTL_PROFILE
AND C.RTE_CNTL_TYPE = 'PAISES'
AND D.COUNTRY BETWEEN C.RTE_FROM_VALUE AND C.RTE_TO_VALUE
AND D.PE_ID_EQUIPO = :1
AND A.ROLENAME = 'PE_APROBADORES_UNO'
- PE_APROBADORES_DOS_QRY:
SELECT A.ROLEUSER
FROM PSROLEUSER A, PS_RTE_CNTL_RUSER B, PS_RTE_CNTL_LN
C, PS_PE_EQUIPOS D WHERE A.ROLEUSER = B.ROLEUSER
AND A.ROLENAME = B.ROLENAME
AND B.RTE_CNTL_PROFILE = C.RTE_CNTL_PROFILE
AND C.RTE_CNTL_TYPE = 'PAISES'
AND D.COUNTRY BETWEEN C.RTE_FROM_VALUE AND C.RTE_TO_VALUE
AND D.PE_ID_EQUIPO = :1
AND A.ROLENAME = 'PE_APROBADORES_DOS'
- PE_APROBADORES_TRES_QRY:
SELECT A.ROLEUSER
FROM PSROLEUSER A, PS_RTE_CNTL_RUSER B, PS_RTE_CNTL_LN C, PS_PE_EQUIPOS DWHERE A.ROLEUSER = B.ROLEUSER
AND A.ROLENAME = B.ROLENAME
AND B.RTE_CNTL_PROFILE = C.RTE_CNTL_PROFILE
AND C.RTE_CNTL_TYPE = 'PAISES'
AND D.COUNTRY BETWEEN C.RTE_FROM_VALUE AND C.RTE_TO_VALUE
AND D.PE_ID_EQUIPO = :1
AND A.ROLENAME = 'PE_APROBADORES_TRES'
Como podemos ver, cada consulta está asociada a un rol y además está enlazada al tipo de control ruta PAISES. La consulta adicionalmente tiene un PROMPT que filtra el ID del equipo que se está procesando, esto lo usa el sistema para poder filtrar los usuarios aprobadores que corresponden para cada equipo dependiendo del país que hayamos seleccionado.
El último paso es modificar las listas de usuario que creamos en la entrada anterior, para que ahora apunten a las consultas que acabamos de crear y no directamente a los roles. Las listas de usuarios modificadas deben verse de la siguiente forma:
Y listo de está forma hemos modificado nuestro workflow para que tenga en cuenta el control ruta, solo queda hacer las pruebas y terminamos.
Espero que está entrada les sea de utilidad, hasta la siguiente publicación.
