Documentation Index

Fetch the complete documentation index at: https://help.ila.cegid.com/llms.txt

Use this file to discover all available pages before exploring further.

Explore as funcionalidades disponíveis para aproveitar todo o potencial da nova plataforma de ajuda!

Como configurar regras de negócio?

Prev Next
  • PT

  • ES


A extensibilidade é uma vantagem importante para qualquer produto. No Valuekeep, é possível definir quais os campos que devem ser preenchidos obrigatoriamente e criar regras para garantir o correto preenchimento desses campos.


Configurador de Regras de Negócio

O configurador de regras de negócio está disponível como add-on (custo adicional) e apenas na linha Universe.

As entidades que permitem esta extensibilidade são:

  • Equipamentos (inclui as ferramentas);

  • Localizações;

  • Ordens de trabalho;

  • Pedidos;

  • Rotas;

Após a aquisição do add-on, pode aceder à funcionalidade através do menu, acedendo a Definições | Sistema |Configurador de regras de negócio.

Campos apresentados

Os campos são apresentados por ordem alfabética, sendo que os campos personalizados aparecem no final.

A definição da obrigatoriedade de um campo personalizado continua a ser feita através da opção de menu de Criação de campos personalizados.

O campo Apenas na criação afeta o cálculo do campo Fórmula de Cálculo. Se este campo estiver ativo, a fórmula de cálculo será aplicada apenas no momento de criação do registo.

O campo Fórmula de Cálculo apenas será calculado no momento da gravação do registo, o que significa que, se existir uma fórmula de cálculo associada a um campo que já é obrigatório por definição, terá de o preencher manualmente e, no momento da gravação, o valor calculado pela fórmula irá substituir o valor introduzido.

Os campos que são obrigatórios por definição não permitem remover a obrigatoriedade

Os seguintes tipos de campos personalizados não podem ser configurados na configuração de regras de negócio:

  • Email;

  • Phone;

  • EntityLookup, do tipo ValueList;

  • Enumerable;

  • Url;

  • Percentagem;


Regras de Negócio

Algumas regras que podem ser aplicadas são as seguintes:

Equipamentos/Localizações

Algumas regras aplicáveis aos equipamentos e localizações são as seguintes:

Regra

Campo onde aplicar a fórmula

Campo de validação

Exemplo de fórmula

Se a marca estiver preenchida, o modelo também tem de estar.

Modelo

Fórmula requerida

HasValue([BrandNaturalKey])

A data de fim de garantia é 15 dias depois da data de entrada ao serviço.

Data de fim

Fórmula de cálculo

DateAdd('d', 15, [OnServiceDate])

A descrição do equipamento é a concatenação dos três primeiros campos da localização, seguida do texto 'MC CUSTOM'.

Descrição

Fórmula de cálculo

'Concat'(Substring([LocationNaturalKey], 0, 3),'MC CUSTOM')

As observações contêm 10 caracteres da descrição.

Observações

Fórmula de cálculo

Substring([Description], 0, 10)

Pedidos e Ordens de trabalho

Os campos seguintes são os disponíveis para personalização:

Pedidos

  • Descrição;

  • Tipo de pedido

  • Tipo de ativo;

  • Nível de prioridade;

  • Motivo do pedido;

  • Estado de funcionamento;

  • Observações.

Ordens de trabalho

  • Custo real;

  • Duração real;

  • Tipo (tipo de ativo);

  • Clientes;

  • Descrição;

  • Custo esperado;

  • Duração esperada;

  • Estado de funcionamento;

  • Observações;

  • Responsável;

  • Tipo de ordem de trabalho;

  • Oficina;

Algumas regras aplicáveis aos pedidos e ordens de trabalho são as seguintes:

Regra

Campo donde aplicar a fórmula

Campo de validação

Exemplo de fórmula

Observações

Apenas deve ser possível criar ordens de trabalho para o tipo de ativo equipamento.

Tipo de ativo

Fórmula de validação

[AssetTypeValue] == 2

Se o tipo de ordem de trabalho for “CR”. o tipo de ativo tem de ser equipamento.

Tipo de ordem de trabalho

Fórmula de  validação

  • Ifs([WorkOrderTypeNaturalKey] == 'JQ' && [AssetType] != [AssetTypeValue.Equipment], false, true)

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

Quando a ordem de trabalho transita para o estado Aprovado, o campo de utilizador Orçamento tem de estar preenchido.

User_Orcamento

Fórmula requerida

[SchemaEntityStateNaturalKey] == 'OT02'

O campo de utilizador criado é do tipo short text e não está como obrigatório.

Quando a ordem de trabalho transita para o estado Executado, o campo Custo Esperado tem de ser diferente de zero.

Custo Esperado

Fórmula de validação

Ifs([SchemaEntityStateNaturalKey] == 'OT03' && [ExpectedCost] == 0, false, true)

Quando uma ordem de trabalho transita para o estado Fechado, o campo Tipo de Reparação tem de estar preenchido.

User_TipoReparacao

Fórmula requerida

[SchemaEntityStateNaturalKey] == 'OT04'

Quando uma ordem de trabalho alterar para o estado Em Curso, o campo Fornecedor não pode estar vazio.

Fornecedor

Fórmula requerida

[SchemaEntityStateNaturalKey] == 'OT02'

Se a ordem de trabalho passa para o estado Fechado, o campo de utilizador Site tem de ser preenchido.

User_Site

Fórmula requerida

[SchemaEntityStateNaturalKey] == 'OT04'

O campo Site é uma entidade personalizada. Se o campo Data estiver preenchido, o campo Duração tem de ser maior do que zero.

Validar que se o campo Custo esperado estiver preenchido, a duração esperada não pode ser zero.

Duração Esperada

Fórmula de validação

Ifs(HasValue(ExpectedCost) && [ExpectedDurationSeconds] == 0, false, true)

O campo Custo esperado e o campo Duração esperada é, por defeito, sempre zero. A aplicação desta fórmula define que estes campos nunca podem ter o valor zero.

Validar que o campo Duração real é sempre maior do que zero.

Duração Atual

Fórmula de validação

Ifs([ActualDurationSeconds] > 0, true, false)

Preenchimento das observações com base na informação de outros campos.

Observações

Fórmula de cálculo

'Concat'([Date],'-',[Description],'-', [WorkOrderTypeDescription],'-', [CustomerDescription],'-',[SupplierNaturalKey])

Exemplos de fórmulas de cálculo

Algumas das fórmulas de cálculo que podem ser utilizadas são as seguintes:

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)