- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-10-2022 04:12 AM
Mais uma dúvida,
Tenho uma tabela, que possui os campos" data limite", "data atendimento" e "justificativa".
Eu criei o script em anexo para configurar a "data de atendimento" através de uma Regrea de Negócio (está funcionando normalmente).
Agora eu preciso complementar o código, para que traga o seguinte resultado:
Se a "data de atendimento" estiver menor que a "data limite", o campo "justificativa" não precisa ser ativado.
Mas se a "data do atendimento" for maior que a "data limite" o campo "justificativa precisa ser preenchido" de forma mandatória.
Mais uma vez agradeço
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-10-2022 01:32 PM
Olá Amanda,
A regra de negócio (Business Rule) executa do lado do server e pode atender o propósito que você utilizou, de abortar uma transação e exibir uma mensagem ao usuário, mas ela não definirá o campo como obrigatório no formulário. Para definir regras de obrigatoriedade e edição de campos no formulário, há algumas formas:
- Data Policies: executadas no server-side e forçam regras de obrigatoriedade por ex. de maneira mais abrangente, é mais seguro pois cobre todo o sistema, mas é preciso considerar o uso com cautela e realizar testes, pois outras origens ou regras podem ser impactadas (dependendo de como uma Data Policy estiver definida, ela pode impedir por exemplo uma Integração de atualizar algo no registro)
- UI Policies: executadas no client-side (navegador), e não requerem necessariamente um script, através dos operadores disponíveis lhe permitem comparar condições entre os campos, em campos de data há opções como: "is more than", "is less than", "is relative"... dentre outras. Permite aplicar regras (UI Policy Actions) para tornar campos obrigatórios, visíveis e/ou editáveis.
PS: a UI Policy é executada no formulário (e não na aba Lista), portanto, é preciso tomar cuidado se os usuários tiverem permissão para atualizar os campos na aba Lista (se eles podem editar as células dos registros na Lista)
- Client Scripts: executados no client-side (navegador) e também lhe permitem tornar campos obrigatórios, visíveis e/ou editáveis, mas por ser um script lhe dá flexibilidade para utilizar outros métodos também e fazer condições mais complexas. Algo que também o diferencia da UI Policy, é a possibilidade de criar um Client Script com o type "onCellEdit", que aplica-se à aba Lista, ou seja, permite tornar o campo obrigatório também na Lista
Vale ressaltar que quando uma regra é executada somente no client-side, um usuário que possua conhecimento em web pode forçar um bypass através do navegador dele.
Dependendo da situação, para restringir o acesso de edição aos campos no formulário e na aba lista, cabe o uso de ACLs (Access Control List), que também é um meio seguro como a Data Policy (também roda no server side), mas creio que não é bem este o propósito aqui, por isso não mencionarei a ACL.
Aqui há alguns comparativos entre Client Script x UI Policy, que podem ajuda-la a definir o que mais se adequa ao seu cenário (não há um caminho certo ou errado, depende muito do cenário):
Obrigada,
Viviane Brasil

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-10-2022 01:32 PM
Olá Amanda,
A regra de negócio (Business Rule) executa do lado do server e pode atender o propósito que você utilizou, de abortar uma transação e exibir uma mensagem ao usuário, mas ela não definirá o campo como obrigatório no formulário. Para definir regras de obrigatoriedade e edição de campos no formulário, há algumas formas:
- Data Policies: executadas no server-side e forçam regras de obrigatoriedade por ex. de maneira mais abrangente, é mais seguro pois cobre todo o sistema, mas é preciso considerar o uso com cautela e realizar testes, pois outras origens ou regras podem ser impactadas (dependendo de como uma Data Policy estiver definida, ela pode impedir por exemplo uma Integração de atualizar algo no registro)
- UI Policies: executadas no client-side (navegador), e não requerem necessariamente um script, através dos operadores disponíveis lhe permitem comparar condições entre os campos, em campos de data há opções como: "is more than", "is less than", "is relative"... dentre outras. Permite aplicar regras (UI Policy Actions) para tornar campos obrigatórios, visíveis e/ou editáveis.
PS: a UI Policy é executada no formulário (e não na aba Lista), portanto, é preciso tomar cuidado se os usuários tiverem permissão para atualizar os campos na aba Lista (se eles podem editar as células dos registros na Lista)
- Client Scripts: executados no client-side (navegador) e também lhe permitem tornar campos obrigatórios, visíveis e/ou editáveis, mas por ser um script lhe dá flexibilidade para utilizar outros métodos também e fazer condições mais complexas. Algo que também o diferencia da UI Policy, é a possibilidade de criar um Client Script com o type "onCellEdit", que aplica-se à aba Lista, ou seja, permite tornar o campo obrigatório também na Lista
Vale ressaltar que quando uma regra é executada somente no client-side, um usuário que possua conhecimento em web pode forçar um bypass através do navegador dele.
Dependendo da situação, para restringir o acesso de edição aos campos no formulário e na aba lista, cabe o uso de ACLs (Access Control List), que também é um meio seguro como a Data Policy (também roda no server side), mas creio que não é bem este o propósito aqui, por isso não mencionarei a ACL.
Aqui há alguns comparativos entre Client Script x UI Policy, que podem ajuda-la a definir o que mais se adequa ao seu cenário (não há um caminho certo ou errado, depende muito do cenário):
Obrigada,
Viviane Brasil
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-10-2022 11:02 PM
Muito obrigada,
Deu certinho.
Sds

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-11-2022 04:02 AM
Que bom que deu certo Amanda! Eu quem agradeço pelo seu retorno. 😃
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-11-2022 06:11 AM
Oi Amanda, uma dica "low-code" seria passar os dados do client para o server é usar uma BR do tipo Display, onde tu nem precisará usar scripts, pois a BR já possui o campo condition para fazer a primeira etapa da sua regra.
Depois, basta usar a variável g_scratchpad (link abaixo) para passar o resultado para ser utilizado em sua ui policy/client script.
ScriptingWithDisplayBusinessRules