<< Clic para mostrar Tabla de Contenidos >> Usar EntityArray para Acciones combinadas |
Puede apoyarse en las Acciones combinadas cuando desee manejar registros múltiples en una sola acción, ejecutando una expresión. Las expresiones en lote para las acciones tienen una sintaxis especial para navegar a través de los registros que han sido incluidos en la regla. Todos los registros son manejados utilizando el objeto EntityArray:
for (var i = 0 ; i < EntityArray.length ; i ++){
EntityArray[i].setXPath("Attribute", value);
EntityArray[i].getXPath("Attribute");
}
Ejemplo
Suponga que usted quiere aprobar varias solicitudes de vacaciones de sus empleados. La compañía tiene una política para las personas que toman sus vacaciones en el mes de Diciembre: todos participarán en una rifa por un viaje gratis. Si usted quiere manejar la aprobación de las vacaciones y definir el ganador del premio usando una expresión, deberá iniciar un proceso para llevar a cabo dicho objetivo.
¿Qué necesita hacer?
1. Crear el Modelo de Datos que soportará el escenario.
2. Crear una búsqueda que verifique todas las solicitudes de vacaciones de sus empleados directos.
3. Crear una acción en lote para ejecutar una expresión que seleccionará todos los registros como aprobados, y seguidamente, avanzará en cada uno de los procesos para iniciar el proceso de asignación del premio.
4. Habilitar el proceso de solicitud de Vacaciones para continuar después de la aprobación en lote.
5. Crear un disparador para gestionar el premio.
Crear el Modelo de Datos que soportará el escenario
El Modelo de Datos para este proceso es muy simple. Una entidad llamada SolicitudVacaciones (VacationRequest) sostiene la mayor proporción de datos para el caso, y tiene una relación con la entidad paramétrica Estatus de la Solicitud (Request State), la cual sostiene el estado de la solicitud. La entidad Estatus es importante en este caso, pues depende de un supervisor quien podrá encontrar las solicitudes pendientes.
Crear una búsqueda que verifique todas las solicitudes de vacaciones de sus empleados directos
Tenemos una Persona llamada Trabajador (Employee) quien tiene configurada una búsqueda que le permite encontrar todas las solicitudes de vacaciones pendientes realizadas por sus subordinados.
Esta búsqueda tiene dos valores establecidos por defecto: uno, el Jefe como aquel usuario que ha iniciado sesión, y dos, el estado de la solicitud para filtrar las solicitudes que están pendientes.
Tenga en cuenta que la forma tiene dos campos de sólo lectura. El Supervisor tiene un valor por defecto que fue construido usando la expresión que se muestra en la imagen a continuación:
Crear una acción en lote para ejecutar una expresión
La acción que seleccionará todas las solicitudes como aprobadas después de realizar una búsqueda, se verá de la siguiente manera. Recuerde seleccionar la opción Agrupar varios ítems en el Asistente Avanzado.
var parameters = new FilterParameters();
parameters.AddParameter("@Code", "AP");
Approvedstate = CHelper.getEntityAttrib("RequestState","idRequestState","Code = @Code",parameters);
random = CHelper.Math.Rand(0,EntityArray.length);
CHelper.trace("Raffle","random "+random);
for (var i = 0 ; i < EntityArray.length ; i ++)
{
EntityArray[i].setXPath("VacationLeaveState", Approvedstate);
if (i == random)
{
EntityArray[i].setXPath("Rafflewin", true);
CHelper.trace("Raffle","i raffle "+i);
}
}
Usaremos un evento condicional para mover hacia adelante en el flujo del proceso todos aquellos procesos que han sido aprobados.
Crear un disparador para gestionar el premio
El disparador que iniciará el ganador del proceso deberá ser construido como se muestra en la siguiente imagen.
Last Updated 10/7/2024 11:40:13 AM