Valuekeep Guía de Iniciación
Guía de Iniciación
Guía de Iniciación
Volver | Lista de Artículos

¿Cómo configurar reglas de negocio?

Última modificación el 14/11/2025
Este artículo se aplica a:
PT
ES
AO
CV
MZ
ST
GW

La extensibilidad es una ventaja importante para cualquier producto. En Valuekeep, es posible definir qué campos deben completarse obligatoriamente y crear reglas para garantizar que se rellenan correctamente.

Configurador de reglas de negocio

El configurador de reglas de negocio está disponible como complemento (coste adicional) y solo en la línea Universe.

Las entidades que permiten esta extensibilidad son:

  • Equipamientos (incluye herramientas);
  • Localizaciones;
  • Órdenes de trabajo;
  • Solicitudes;
  • Rutas;

Tras adquirir el complemento, puede acceder a la funcionalidad a través del menú, accediendo a Definiciones | Sistema | Configurador de Reglas de Negocio.

Campos presentados

Los campos se presentan en orden alfabético, y los campos personalizados aparecen al final.

La definición de la obligatoriedad de un campo personalizado sigue realizándose a través de la opción del menú Creación de Campos Personalizados.

El campo Solo en la Creación afecta al cálculo del campo Fórmula de Cálculo. Si este campo está activo, la fórmula de cálculo se aplicará solo en el momento de la creación del registro.

El campo Fórmula de Cálculo solo se calculará en el momento de guardar el registro, lo que significa que, si existe una fórmula de cálculo asociada a un campo que ya es obligatorio por definición, deberá rellenarlo manualmente y, en el momento de guardar, el valor calculado por la fórmula sustituirá al valor introducido.

Los campos que son obligatorios por definición no permiten eliminar la obligatoriedad.

Los siguientes tipos de campos personalizados no se pueden configurar en la configuración de reglas de negocio:

  • Correo electrónico;
  • Phone;
  • EntityLookup, del tipo ValueList;
  • Enumerable;
  • Url;
  • Porcentaje;

Reglas de negocio

Algunas reglas que se pueden aplicar son las siguientes:

Equipamientos/Localizaciones

Algunas normas aplicables a los equipamientos y las localizaciones son las siguientes:

Regla Campo donde aplicar la fórmula Campo de validación Ejemplo de fórmula
Si la marca está rellenada, el modelo también debe estarlo. Modelo Fórmula requerida HasValue([BrandNaturalKey])
La fecha de finalización de la garantía es 15 días después de la fecha de entrada en servicio. Fecha de finalización Fórmula de cálculo DateAdd('d', 15, [OnServiceDate])
La descripción del equipamiento es la concatenación de los tres primeros campos de la ubicación, seguida del texto ‘MC CUSTOM’. Descripción Fórmula de cálculo 'Concat'(Substring([LocationNaturalKey], 0, 3),'MC CUSTOM')
Las observaciones contienen 10 caracteres de la descripción. Observaciones Fórmula de cálculo Substring([Description], 0, 10)

Solicitudes y órdenes de trabajo

Los siguientes campos están disponibles para personalización:

Solicitudes

  • Descripción;
  • Tipo de solicitud;
  • Tipo de activo;
  • Nivel de prioridad;
  • Motivo de la solicitud;
  • Estado de funcionamiento;
  • Observaciones.

Órdenes de trabajo

  • Coste real;
  • Duración real;
  • Tipo (tipo de activo);
  • Clientes;
  • Descripción;
  • Coste previsto;
  • Duración prevista;
  • Estado de funcionamiento;
  • Observaciones;
  • Responsable;
  • Tipo de orden de trabajo;
  • Taller;

Algunas reglas aplicables a las solicitudes y órdenes de trabajo son las siguientes:

Regla Campo donde aplicar la fórmula Campo de validación Ejemplo de fórmula Observaciones
Solo debe ser posible crear órdenes de trabajo para el tipo de activo equipamiento. Tipo de activo Fórmula de validación [AssetTypeValue] == 2
Si el tipo de orden de trabajo es “CR", el tipo de activo debe ser equipamiento. Tipo de orden de trabajo Fórmula de validación -          Ifs([WorkOrderTypeNaturalKey] == 'JQ' && [AssetType] != [AssetTypeValue.Equipment], false, true)

-          !([WorkOrderTypeNaturalKey] == 'JQ' && [AssetType] != [AssetTypeValue.Equipment])

Cuando la orden de trabajo pasa al estado Aprobado, el campo de usuario Presupuesto debe estar rellenado. User_Presupuesto Fórmula requerida [SchemaEntityStateNaturalKey] == 'OT02' El campo de usuario creado es de tipo short text y no es obligatorio.
Cuando la orden de trabajo pasa al estado Ejecutado, el campo Coste Previsto debe ser distinto de cero. Coste previsto Fórmula de validación Ifs([SchemaEntityStateNaturalKey] == 'OT03' && [ExpectedCost] == 0, false, true)
Cuando una orden de trabajo pasa al estado Cerrado, el campo Tipo de Reparación debe estar rellenado. User_TipoReparacion Fórmula requerida [SchemaEntityStateNaturalKey] == 'OT04'
Cuando una orden de trabajo cambia al estado En Curso, el campo Proveedor no puede estar vacío. Proveedor Fórmula requerida [SchemaEntityStateNaturalKey] == 'OT02'
Si la orden de trabajo pasa al estado Cerrado, se debe rellenar el campo de usuario Site. User_Site Fórmula requerida [SchemaEntityStateNaturalKey] == 'OT04' El campo Site es una entidad personalizada. Si el campo Fecha está rellenado, el campo Duración debe ser mayor que cero.
Validar que si el campo Coste previsto está rellenado, la duración prevista no puede ser cero. Duración prevista Fórmula de validación Ifs(HasValue(ExpectedCost) && [ExpectedDurationSeconds] == 0, false, true) El campo Coste esperado y el campo Duración esperada son, por defecto, siempre cero. La aplicación de esta fórmula establece que estos campos nunca pueden tener el valor cero.
Validar que el campo Duración real sea siempre mayor que cero. Duración actual Fórmula de validación Ifs([ActualDurationSeconds] > 0, true, false)
Rellenar los comentarios basándose en la información de otros campos. Observaciones Fórmula de cálculo 'Concat'([Date],'-',[Description],'-', [WorkOrderTypeDescription],'-', [CustomerDescription],'-',[SupplierNaturalKey])

Ejemplos de fórmulas de cálculo

Algunas de las fórmulas de cálculo que se pueden utilizar son las siguientes:

Exp(x) Acos(-0.1)
Floor([ActualCost]) Asin(0.1)
Ceiling([ActualCost]) Atan(0.1)
Cos([ActualCost]) Exp(x) x < 50
Sin([ActualCost]) Floor([ActualCost])
Sqrt([ActualCost]) Ceiling([ActualCost])
Tan([ActualCost]) Cos([ActualCost])
Truncate([ActualCost]) Sin([ActualCost])
Round([ActualCost], 2) Sqrt([ActualCost])
Log([ActualCost], 2) Tan([ActualCost])
Log10([ActualCost]) Truncate([ActualCost])
Ln([ActualCost]) Log([ActualCost], 2)
IEEERemainder([ActualCost],1) Log10([ActualCost])
Abs(-[ActualCost]) Ln([ActualCost])
Acos(-0.1) IEEERemainder([ActualCost],50)
Asin(-0.1) Abs(-[ActualCost])
Atan(-0.1) Acos(-0.1)
Max([ActualCost], [ActualDurationSeconds]) Asin(-0.1)
Min([ActualCost], [ActualDurationSeconds]) Atan(-0.1)
Sign(-10) Max([ActualCost], [ActualDurationSeconds])
if(in(58, [ActualCost], [ExpectedCost], [ActualDurationSeconds]), 1, 2) Min([ActualCost], [ActualDurationSeconds])
Ifs([ActualCost] > 50, 'bar', [ExpectedCost] > 75, 'baz', 'quux') if(DateDiff('mm', [Date], DateAdd('mm', 2, Now())) > 1, 'Mais que um mes', 'Menos que um mes')
Cos([ActualCost]) DateDiff('mm', [Date], DateAdd('mm', 1, Now()))
Sin([ActualCost]) DateAdd('yy', 5, [Date])
Sqrt([ActualCost]) DateAdd('yy', -5, [Date])
Tan([ActualCost]) DateAdd('dd', 15, DateAdd('mm', 8, DateAdd('yy', -5, [Date])))
Log([ActualCost], 2) Month(Now())
Log10([ActualCost]) Year(Now())
Ln([ActualCost]) Day(Now())
Substring(Now(),4, 4)
Substring('Concat'('TESTEOS1234',Now()),4, 20)

Guarda o comparte este artículo
Esta página foi útil?
Obrigado pelo seu voto.
Artículos Relacionados
¿Qué tipos de perfiles de usuario hay? ¿Qué atajos de teclado puedo utilizar en Valuekeep? ¿Qué podemos encontrar en el panel del administrador? ¿Qué podemos encontrar en el panel del técnico? ¿Qué podemos encontrar en el panel del solicitante?