<< Clic para mostrar Tabla de Contenidos >> Incluir o reemplazar la asignación de trabajo |
Las funciones assignWorkItem y assignWorkItemById son funciones avanzadas que permiten incluir o reemplazar la asignación en cualquier tarea de usuario EXISTENTE, incluyendo eventos intermedios.
La sintaxis de la función assignWorkItem es:
Me.Case.assignWorkItem(string sTaskName, int iNewUserId, bool bReplace)
Y la sintaxis de la función assignWorkItemById es:
Me.Case.assignWorkItemById(int iWorkItemId, int iNewUserId, bool bReplace)
Los parámetros principales de estas funciones son:
•El sTaskName: el nombre único de la tarea en la cual el nuevo usuario será agregado o reemplazado.
•El iWorkItemId: el identificador del workItem de la tarea en la cual el nuevo usuario será agregado o reemplazado.
•El iNewUserId: el identificador del usuario que será agregado o reemplazado.
•El bReplace: un atributo Booleano que determina si la asignación actual será reemplazada o actualizada. Si el valor es verdadero (true), reemplazará todos los usuarios asignados. Si es falso (false), el usuario será agregado a los usuarios asignados.
•Es una buena práctica guardar los usuarios asignados en una tabla (colección), si el evento es recurrente (si después de dar clic en Siguiente se crea de nuevo) entonces la regla de asignación será tomar los usuarios desde la colección. •En Sub procesos, las reglas de asignación sólo aplican para los procesos en ejecución. Así, si existen dos actividades nombradas igual en los procesos padre e hijo, la regla de asignación sólo funciona en el proceso que está siendo ejecutado. •Si desea obtener los asignados de una tarea después de utilizar la función assignWorkItem en el mismo evento (Al Entrar, Al Guardar o Al Salir). Utilice el método Me.Case.getWorkItem(sTaskName).Assignees. No utilice Me.Assignees. |
Ejemplo
El siguiente ejemplo ilustrará cómo usar estas funciones.
En un proceso de Solicitud de Créditos Personales, se agrega un nuevo asignado para el evento Declinar Solicitud dependiendo la fase del proceso. La asignación tiene las siguientes reglas:
Fase |
Ejecutante(s) del evento |
---|---|
Prefiltro de solicitantes |
Creador del caso |
Registro de la información de la solicitud |
Creador del caso, Jefe del creador del caso |
Verificación de información |
Creador del caso, Jefe del creador del caso, Líder de seguridad. |
Análisis de resultados |
Líder de seguridad. |
Desembolso |
Vicepresidente de préstamos |
Antes de continuar
•Debe definir las tareas donde será ejecutada la regla de negocio donde se agregarán los usuarios. En nuestro ejemplo, estableceremos la ejecución de la expresión Al Entrar en la primera actividad de la nueva fase o Al Salir de la última actividad de la fase.
En nuestro ejemplo, las actividades serán
➢Al entrar en la tarea Verificar información del solicitante. Primera actividad de la fase Registro de la información de la solicitud.
➢Al entrar en el subproceso Verificar Documentación e Información. Primera actividad de la fase Verificación de información.
➢Al salir de la compuerta ¿Solicita Excepción?. Última actividad de la fase Verificación de información.
➢Al salir de la tarea Verificar Garantías y productos. Última actividad de la fase Análisis de resultados.
•Obtener el identificador del evento Declinar Solicitud en la base de datos. En nuestro ejemplo, el identificador de Declinar Solicitud es 552.
Procedimiento
1. Establezca el asignado del evento usando el paso 5 del asistente de proceso.
2. Vaya a la primera actividad donde la asignación será modificada y cree un expresión ya sea a la entrada o a la salida (como fue definido previamente). En nuestro ejemplo, la primera actividad es Verificar información del solicitante y la expresión será ejecutada a la entrada.
3. Agregue el siguiente código a su expresión para actualizar la asignación.
// Obtenga el nombre para mostrar de la tarea actual
var actDisplayName = Me.Task.DisplayName;
// Cargue en una variable el identificador del evento
var eventName = Me.Task.Name;
// Tanto para las posiciones de vicepresidente y líder, asumimos
// que solo hay un usuario para cada una
var oUser = CHelper.getUsersForPosition("LoansVicepresident");
var loansVpId = oUser[0];
oUser = CHelper.getUsersForPosition("SecurityLeader");
var secLeader = oUser[0];
// Compare el nombre para mostrar con las actividades donde
// cambiará la asignación
if (actDisplayName == "Verify Applicants Information")
{
Me.Case.assignWorkItem(eventName, Me.Case.Creator.BossId, false);
}
else if (actDisplayName == "Verify Documentation and Information")
{
Me.Case.assignWorkItem(eventName, secLeader, false);
}
else if (actDisplayName == "Exception Request?")
{
// La asignación será reemplzada
Me.Case.assignWorkItem(eventName, secLeader, true);
}
else if (actDisplayName == "Verify Collaterals and Products")
{
Me.Case.assignWorkItem(eventName, loansVpId, true);
}
Si prefiere utilizar la función assignWorkItemById, el código será:
// Obtenga el nombre para mostrar de la tarea actual
var actDisplayName = Me.Task.DisplayName;
// Cargue en una variable el identificador del workitem
var workItem = Me.Id;
// Tanto para las posiciones de vicepresidente y líder, asumimos
// que solo hay un usuario para cada una
var oUser = CHelper.getUsersForPosition("LoansVicepresident");
var loansVpId = oUser[0];
oUser = CHelper.getUsersForPosition("SecurityLeader");
var secLeader = oUser[0];
// Compare el nombre para mostrar con las actividades donde
// cambiará la asignación
if (actDisplayName == "Verify Applicants Information")
{
Me.Case.assignWorkItemById(workItem, Me.Case.Creator.BossId, false);
}
else if (actDisplayName == "Verify Documentation and Information")
{
Me.Case.assignWorkItemById(workItem, secLeader, false);
}
else if (actDisplayName == "Exception Request?")
{
// La asignación será reemplzada
Me.Case.assignWorkItemById(workItem, secLeader, true);
}
else if (actDisplayName == "Verify Collaterals and Products")
{
Me.Case.assignWorkItemById(workItem, loansVpId, true);
}
Guarde la expresión y continúe.
4. Agregue la expresión creada previamente en el evento correspondiente de las actividades previamente definidas. Una vez haya establecido la expresión en todas las actividades, guarde su proceso y ejecútelo para probar.
Last Updated 1/26/2022 4:07:04 PM