Toda la información de producto en wiki.bizagi.com aplica para Bizagi BPM Suite 9.1.X.
Para las nuevas versiones de Bizagi BPM Suite (10.X y superior) visite la Guía de Usuario.
 

Como Hacer Operaciones de Fecha

De

<keywords content="keywords">fecha, hora, comparar, sumar, restar, operacion, calcular edad, calcular edad, año, minuto, regla de negocio, hoy, DateTime.Now, DateTime.Today</keywords> 

Contenido

¿Cómo Hacer Operaciones de Fecha en Reglas de Negocio?

Este documento explica algunas operaciones de fecha que pueden ser requeridas cuando se automatizan procesos con Bizagi.

Las siguientes son algunas, aunque no todas, de las operaciones de fecha más comúnmente usadas:


Image:Bulletazul.gif Comparar Fechas

Image:Bulletazul.gif Restar Fechas

Image:Bulletazul.gif Asignar la Fecha de Hoy a un Atributo

Image:Bulletazul.gif Calcular la Edad

Image:Bulletazul.gif Agregar Fechas

Comparar Fechas (aplica para las Ediciones .NET)

Un proceso automatizado puede requerir la comparación de fechas para validar ciertas condiciones que habilitan que el proceso continúe.

Un ejemplo puede ser visto en el proceso de solicitud de vacaciones. Un empleado debe tener completado al menos un año con la organización para tener derecho a vacaciones. El proceso debe validar que la fecha de inicio de las vacaciones sea mayor que la fecha de entrada del empleado, a la organización, más un año.

Para hacer la comparación de fechas, siga estos pasos:

1.Cree una regla yendo a Bizagi Studio > Seleccionar el Proceso (Select the Process) (en este caso Solicitud de Vacaciones (Vacation Request)) > Expresiones (Expressions) > Reglas de Ejecución (Execution Rules) y luego haga clic en Nueva Expresión (New Expression)

 

2. Llene la información básica de la regla como se muestra a continuación.




3.Declare las variables que son requeridas en la regla haciendo clic derecho sobre  Image:HowToSendANotification_Image011.jpg  y seleccionando Declaración de Variable (Variable Declaration).


Agregue los atributos (la fecha de entrada del empleado y fecha de inicio de vacaciones) esos son para ser usados en la regla de negocio como se indica a continuación.


4. Cree una expresión para agregar un año a la variable que corresponde a la fecha de entrada del empleado haciendo clic derecho sobre la flecha negra y seleccione Adicionar Expresión (Add Expression).


De un nombre diciente a la expresión para hacer la regla fácil de entender, por ejemplo "Adicionar Año" (Add Year).

Haga doble clic sobre la expresión para agregar un año a la fecha de entrada del empleado. Para evitar errores cuando escriba el nombre de la variable, use la funciónOpciones (Options).

La expresión inicial debe leerse como:


5. Cree la condición SI (IF) para comparar las variables haciendo clic derecho sobre la flecha que inicia desde la expresión, y seleccione Adicionar Si (Add If)<span style="font-style: italic;"


Haga doble clic sobre el rectángulo redondeado de color gris y que está vacío.



Ajuste la condición como se muestra abajo, y a mano derecha de la lista que se despliega, seleccione Seleccionar Campo (Select Field)


Luego seleccione la variable IniciarFecha (StartDate) y haga clic en Seleccionar (Select)


Haga clic en el botón Seleccionar (Select)


6. En la transición que satisface la condición establecida, cree una expresión como en el Paso 5. Esta expresión incluirá el mensaje de error que le aparecerá al usuario si la fecha de solicitud de vacaciones es menor a la fecha de vacaciones real. La expresión debe verse como esta:


Note que al final de la expresión la variable TrabajoEntrante (EntranceJob) es usada para mostrar al usuario la fecha en que las vacaciones son permitidas.

La regla luce como:


7. Guarde la regla haciendo clic en el botón OK.

Ahora, la regla puede ser probada. Si el usuario solicita unas vacaciones antes de un año de haber sido empleado, el mensaje luce como este.


Restar Fechas

Puede ser necesario restar fechas para encontrar el número de días (años, horas, minutos) entre dos fecha dentro de un proceso. para ilustrar esta operación, el número de días laborales en una solicitud de vacaciones será calculado las fechas de inicio de vacaciones y de fin.

1. Cree una nueva regla como en los Pasos 1 y 2 en Comparar Fechas, de arriba.

2. Declare como variables las fechas de inicio y fin de las vacaciones solicitadas, haciendo clic derecho sobre Image:HowToSendANotification_Image011.jpg y luego haga clic en Declaración de Variable (Variable Declaration)

Incluya las variables como se muestran a continuación. Tenga en cuenta que el valor inicial para cada variable, en este caso, está determinado con expresiones XPath usando la estructura del modelo de datos.


3. Luego de la declaración de variables, agregue una condición SI (IF) haciendo clic derecho sobre la flecha negra.


Después, haga doble clic sobre el rectángulo redondeado de color gris, que está en blanco.


Ajuste la condición como se muestra a continuación. A mano derecha en la lista desplegable, haga clic en Seleccionar Campo (Select Field).


Luego seleccione la variable que necesita ser considerada. En este caso Finales (Ends).


Haga clic en Seleccionar (Select)


4. Ahora una expresión es necesaria para calcular los días. Haga clic derecho sobre la flecha negra que sale del lado izquierdo de la condición Si (IF) que se acaba de crear, y seleccione la opción Adicionar Expresión (Add Expression).


Incluya una nombre que haga la regla fácil de entender. En este caso Calcular Días (Calculate Days).


Haga doble clic en la expresión que se acaba de crear.


Encuentre el atributo en donde la diferencia en número de días será guardada. Use la ayuda para prevenir errores como se muestra a continuación. En este caso el atributo en donde se guarda el cálculo es iDaysRequested y está localizado en la entidad Solicitud (Request)


Asígnele a ese atributo la expresión que se muestra a continuación. Ésta automáticamente calculará el número de minutos entre las dos fechas.


Note que la expresión previa es dividida por 480. Esto es hecho por dos razones: la primera es que el resultado necesita estar en días y el tiempo de trabajo (laboral) para esta aplicación tiene 8 horas diarias (60 min.* 8 horas = 480 min). Luego, si el resultado es requerido en minutos, la división puede ser omitida.


5. Agregue una expresión en el lado del Si no (Else) de la condición para informar al usuario sobre el error. Haga clic derecho sobre la flecha negra que sale de la condición Si no (Else), y seleccione Adicionar Expresión (Add Expression).


Llámela Alerta (Alert).


Haga doble clic sobre la expresión que acabó de crear.


Incluya el mensaje de error como se muestra a continuación para asegurarse que el usuario incluya la información como se espera.

6. La regla está finalizada, pero necesita ser asociada en el proceso. Abra las propiedades de la figura en donde está será incluida (la regla) y vaya a la pestaña Acciones (Actions) para seleccionar la regla. En este caso, la regla es asociada Al Salir (On Exit)  de la primera actividad y, el campo en donde el valor es guardado, es mostrado en la segunda actividad del proceso.


7. Ahora pruebe la regla. Haga un error en las fechas como se muestra para probar el mensaje de error.


Ahora pruebe el cálculo. Así es como la segunda actividad luce con el campo que guardó el número de días calculados en la regla.

Ir al Principio


Asignar la Fecha de Hoy a un Atributo

El proceso de Solicitud de Vacaciones será nuevamente usado para mostrar como esto funciona. El objetivo en el siguiente ejemplo es incluir la fecha de hoy en la solicitud como una referencia para todos durante el proceso y luego de que el proceso se ha cerrado.

1. Cree una nueva regla como en los Pasos 1 y 2 en Comparar Fechas arriba. 

2. Cree una expresión haciendo clic derecho en la flecha negra y seleccione Adicionar Expresión (Add Expression)

Nombre la expresión como Poner Fecha (Set Date).

Luego haga doble clic en la expresión.

3. Iniciando desde la entidad que fue usada como contexto en la regla, use XPath para determinar el atributo necesario para asignar la fecha actual. En este ejemplo, la Fecha Actual necesita ser asignada a un atributo llamado dRequestDate (Nombre del Atributo en el diagrama es Solicitud de Fecha (Date Request)) en la entidad Solicitud (Request). Esta entidad guardará la fecha en que el empleado hace la solicitud de vacaciones como una referencia en las formas del proceso. El modelo de datos luce:


Para asignar DateTime.Today a un atributo por medio de Xpath es necesario utilizar la función Me.setXPath.



Para incluir la fecha de hoy como un valor en el atributo hágalo igual a: DateTime.Now, para incluir la hora y la fecha de hoy, o DateTime.Today, para la fecha únicamente. El ejemplo luce como:

Me.setXPath("idRequest-dDateRequest",DateTime.Today);


4. Guarde la regla y ahora asóciela en el proceso en donde sea requerido, en el ejemplo, la fecha en que el caso fue creado para indicar cuándo la solicitud inició.

La regla ahora será incluida en el proceso. Vaya a Proceso (Process)> Seleccione el proceso (en este ejemplo, Solicitud de Vacaciones (Vacation Request))  > luego clic en Check-out


Haga clic derecho sobre la actividad y haga clic en Propiedades (Properties), como se muestra a continuación. En el ejemplo, la regla es necesaria en la primera actividad de Solicitar Vacaciones (Request Vacation)


Vaya a la pestaña Acciones (Actions) y agregue una nueva acción. Luego seleccione la regla que acabó de crear usando el signo de suma (+).

Determine si la regla debe ser ejecutada Al Entrar, Al Guardar o Al Salir (On Enter, On Save u On Exit). En este ejemplo, necesitamos que la regla sea ejecutada Al Entrar (On Enter).

Haga clic en Ok. Ahora esta lista para ser probada.


La fecha de hoy ahora será asignada a cualquier caso que sea creado. Esto es mostrado a continuación:



Articulos Relacionados

<comments />