i
Detalle de Reglas Embebidas
A continuación se describen las propiedades del detalle.
Origin
El valor puede ser un campo de formulario, un flujo condicional o elementos de una página.
Type
Es el tipo de regla embebida.
Posibles valores:
•OBLIGATORY: para la obligatoriedad de un campo del formulario.
•EDITION: para la edición de un campo del formulario.
•COND: para una validación de un campo del formulario.
•CALC: para una regla de cálculo de un campo del formulario.
•RULE_RELATION: para una relación a una regla avanzada en un campo del formulario.
•VALUE_LIST_RELATION: para una relación a una lista de valores en un campo del formulario.
•ENTITY_RELATION: para una relación a una entidad en un campo del formulario.
Expression
Se visualiza la expresión de la regla modelada.
Ejemplos
A continuación se incluyen diferentes ejemplos de reglas embebidas
Obligatoriedad
El campo project es obligatorio si el campo newProject y task están vacíos.
{ Origin: "project", Type: "OBLIGATORY", Expresion: "Y(ESBLANCO(newProject), ESBLANCO(task))" }
Validación
El campo from debe ser menor a la función fecha().
{ Origin: "dtBegin", Type: "COND", Expresion: "SI(from > fecha(), "Debe ser anterior o igual al día de hoy")" }
El campo hours debe ser mayor a 0 si el campo totalHours es menor o igual a 0.
{ Origin: "hours", Type: "COND", Expresion: "SI(totalHours <=0, "Debe informar la cantidad de horas")" }
Si se presiona el botón Desarrollar se debe cargar el campo assignedProgrammerCd.
{ Origin: “assignedProgrammerCd”, Type: "COND", Expresion: "SI(Y(ultimoBotonPresionado()=="Desarrollar", ESBLANCO(assignedProgrammerCd)), "Debe ingresar un Programador")" }
Se evalúa con una regla embebida si el owner no es blanco y con un regla avanzada llamada ContainsCrmPermissions se evalúa si no tiene licencia CRM.
{ Origin: "", Type: "COND", Expresion:
"SI(Y(NO(ESBLANCO(owner)),NO(containsCrmPermissions( owner))),"El Propietario no posee permisos de aplicación CRM")" }
Cálculo
Ejemplo de una regla de cálculo con una regla avanzada. El campo autUser obtiene el autorizante con el llamado a la siguiente regla:
{ Origin: "autUser", Type: "CALC", Expresion: "getAuthorizingUser(requestingUser)" }
Al campo dateMondayWeek se le suman 10 días.
{ Origin: “dateMondayWeek”, Type: "CALC", Expresion: "sumarDías(startDate,10)" }
El campo totalEstimado tiene la sumatoria del iterativo lineas.total.
{ Origin: ”totalEstimated”, Type: "CALC", Expresion: "sumatoria(rows.total)" }
Cálculo en un campo iterativo del formulario
Realiza el cálculo para la primera ocurrencia del iterativo del campo rows/total donde multiplica el campo rows.amount por rows.unitPrice.
{ Origin: "rows/total (0)", Type: "CALC", Expresion: "rows.amount * rows.unitPrice"}
Realiza el cálculo para la segunda ocurrencia del iterativo del campo rows/total donde multiplica el campo rows.amount por rows.unitPrice.
{ Origin: " rows/total(1)", Type: "CALC", Expresion: " rows.amount * rows.unitPrice"}