Ejemplo: Configuración de un flujo de trabajo para su uso con el Administrador de procesos
Cuando la persona a la que se le ha asignado la tarea de flujo de trabajo abre la tarea en el Administrador de procesos, se muestra el nombre del evento en el campo Nombre del evento. La persona hace clic en el botón para empezar el flujo de trabajo.
El evento HR_NewHireAnnouncement y su controlador de eventos, así como algunas acciones de eventos y un procedimiento almacenado de muestra, se proporcionan en la base de datos iniciada como un flujo de trabajo de ejemplo para que lo modifique y lo pruebe en el Administrador de procesos. Este flujo de trabajo de muestra envía una notificación a todos los empleados que proporciona el nuevo nombre del contratado y los datos del puesto. Debe editar este ejemplo tal como se describe a continuación si desea probarlo en su sistema. El ejemplo muestra cómo trasladar parámetros a través de una secuencia de comandos de formulario para este evento. El procedimiento almacenado genérico activa un evento personalizado en particular.
Evento, Definición
Este evento HR_NewHireAnnouncement de muestra tiene un controlador y tres acciones de evento:
- Tipo de acción "Establecer atributos" SET(EVENTTITLE=E(EventTitle)): Esta acción de eventos escribe la tarea de proceso RowPointer en el título del evento con fines de referencia cruzada.
- El tipo de acción "Notificar" tiene los siguientes parámetros:
- A: Constante global de eventos "HRNewHireAnnouncementRecipients"
Nota: Debe definir la lista de usuarios asociados para esta constante global de eventos.
- Tema: Cadena traducible "Bienvenida al nuevo empleado <empname>"
- Cuerpo: Cadena traducible "Me complace anunciar que <empname> se unirá hoy a nosotros como <empposition>."
Esta acción de eventos notifica a los usuarios asociados con la constante global de eventos acerca de la nueva contratación. EmpName y EmpPosition son los parámetros de entrada para este evento. Esa información se extrae del proceso donde se origina este flujo de trabajo.
- A: Constante global de eventos "HRNewHireAnnouncementRecipients"
- Tipo acción: Finalizar
Si desea escribir sus propios eventos, debe usar la primera y la tercera acción de eventos, y escribir sus propios eventos entre medias, en función de sus requisitos.
El evento HR_NewHireAnnouncement de muestra se ofrece como inactivo. Debe activarlo en el formulario Activación de controlador de eventos del flujo de trabajo para poder usarlo. En el campo Notificar usuarios, especifique los usuarios correspondientes que deben recibir la notificación Anuncio de nueva contratación.
Secuencia de comandos del formulario:
- Para todos los eventos personalizados, los eventos que deben ser compatibles con el Administrador de procesos, identifican todos los parámetros de entrada obligatorios. (El evento HR_NewHireAnnouncement de ejemplo requiere dos parámetros de entrada: EmpName y EmpPosition).
- Si un evento usa parámetros de entrada, determine si dichos valores de los parámetros de entrada se pueden recuperar de las variables, las propiedades o los componentes de página del formulario. De lo contrario, recupere dichos valores en el formulario. Asigne dichos parámetros de entrada. (Para nuestro ejemplo, ambos datos de los parámetros de entrada se pueden recuperar de los componentes del formulario.)
Asigne parámetros de entrada como se muestra en nuestro ejemplo:
If ThisForm.Components("MyTasksFormPageEventNameEdit").Text = "HR_NewHireAnnouncement" Then ThisForm.Variables("ParmName1").Value = "EmpName" ThisForm.Variables("ParmValue1").Value = ThisForm.Components("MyTasksFormPageEmpName1Edit").Text ThisForm.Variables("ParmName2").Value = "EmpPosition" ThisForm.Variables("ParmValue2").Value = ThisForm.Components("MyTasksFormPageJobTitleEdit").Text End If
Nota: Si desea ejecutar eventos de recursos humanos personalizados adicionales del Administrador de procesos, añada su propio bloque de código en la secuencia de comandos del formulario Administrador de procesos para asignar parámetros de entrada para sus eventos personalizados. Proporcionamos el código de ejemplo como un marco sobre el que puede trabajar. - Ejecute el procedimiento almacenado con el nombre de evento disponible en el formulario, junto con todos los pares nombre/valor que admita el procedimiento almacenado.
Procedimiento almacenado
Proporcionamos un procedimiento almacenado genérico GenericNotifyEventGlobalCsSp con los siguientes parámetros:
- @EventName
- @ProcessTaskRowPointer
- @EventStateRowPointer OUTPUT
- @Infobar OUTPUT
- @ParmName1
- @ParmValue1
- @ParmName2
- @ParmValue2
- …etc. para nombres y valores de parámetro 3 a 19 ...
- @ParmName20
- @ParmValue20
El procedimiento almacenado realiza los siguientes pasos:
- Iniciar @SessionId, @EventTrxId, @EventParmId
- Pasar @ProcessTaskRowPointer como parámetro de entrada al evento, que se almacena en el “Título del evento”
- Ejecutar FireEventSp al pasar @EventName, @SessionId, @EventTrxId y @EventParmId
- WAITFOR DELAY '00:00:05'
- Lea el estado de evento RowPointer y vuelva al formulario.
Cuando se actualiza un código de ejemplo tal como se especifica aquí, y se hace clic en el botón Administrador de procesos, el valor RowPointer del registro Estado del evento creado se almacena en process_mgr_process_task.EventStateRowPointer. El mensaje de éxito se muestra como "Se inició el evento."
en el formulario