Caso de negócio 1: usar scripts de cliente para executar cálculos matemáticos e validações em dados

Caso de negócio 1: usar scripts de cliente para executar cálculos matemáticos e validações em dados

Ao projetar formulários para replicar documentos relacionados a finanças, como ordem de compra, fatura ou faturas de reembolso, nossos fluxos de trabalho podem exigir o cálculo do custo total ou a soma das despesas incorridas. Para automatizar esses cálculos matemáticos e executar validações em dados numéricos, os scripts do cliente podem ser usados.
 

Cenário de negócios

Helen está procurando automatizar o processo de geração e aprovação de pedidos de compra em sua organização. O requisito de Helen é calcular a soma de todas as despesas incorridas e validá-la em relação a um orçamento fixo, em que as despesas não podem exceder o orçamento.

Solução

Para automatizar esse requisito, Helen usa os scripts do cliente no Qntrl. 
  1. Helen cria um formulário e adiciona diferentes campos de Moeda para registrar todas as despesas incorridas e declarar o Orçamento .
  2. A soma de todas as despesas é calculada usando o script do cliente e armazenada em um novo campo Moeda, chamado Custo total .
  3. O valor fixo do Orçamento pode ser validado em relação ao Custo total usando os scripts do cliente. Se o Custo total exceder o Orçamento, uma mensagem de erro será exibida e o usuário não poderá enviar a OC. Se o Custo total estiver dentro do Orçamento, a OC será enviada para aprovação.

Configuração de exemplo   

Etapa 1 – criar uma orquestração

Crie uma nova orquestração, Orquestração da ordem de compra, e adicione campos relacionados a ela.
  1. Adicione campos de Moeda para registrar diferentes despesas, como custo do item, imposto e frete.
  2. Crie um campo Moeda para calcular e exibir o Custo total.
  3. Crie outro campo Moeda para declarar o Orçamento. Aqui, definimos US$ 1.000 como o valor de orçamento padrão. 


Depois que o formulário for criado, prossiga para projetar o blueprint, definir permissões e publicar a orquestração.

Etapa 2: codificar scripts do cliente

O processo de Helen requer 2 scripts doe cliente, um para calcular o custo total e outro para validar o custo em relação ao orçamento. 

Script 1: Cálculo do custo da ordem de compra

  1. Crie um novo script e insira um nome - Cálculo do custo da ordem de compra.
  2. Escolha Purchase Order Orchestration  (Orquestração de ordem de compra) no menu suspenso Form (Formulário).
  3. Escolha Add new card (Adicionar novo cartão)  como Execution Location (Local de execução) para executar o script quando um novo cartão for adicionado.
  4. Escolha onChange como Execution Trigger (Gatilho de execução) para calcular o custo total sempre que os valores de despesa forem alterados. Ao selecionar essa opção, uma lista suspensa Fields (Campos) será exibida no painel direito, onde você poderá escolher os campos cuja atualização deve acionar o script.
  5. Copie e cole o script abaixo em seu editor de script e substitua os nomes dos parâmetros.
    1. Você pode usar o ícone ? no canto superior direito do editor de script para fazer referência aos nomes dos parâmetros.
  6. Quando o script estiver pronto, Publish (Publique) -o.
Script de amostra

async function onChange(forpage,oldVal,newVal,executeOnLoad){
    if(executeOnLoad){
        return;
    }
    var item_cost = current.Job.getValue(current.Layout.Fields.<select-Item-cost-parameter-here>.id);
    var tax = current.Job.getValue(current.Layout.Fields.<select-Tax-parameter-here>.id);
    var freight = current.Job.getValue(current.Layout.Fields.<select-Freight-charges-parameter-here>.id);
    var total = item_cost.value + tax.value + freight.value;
    current.Job.setValue(current.Layout.Fields.<select-Total-cost-parameter-here>.id, total);



Nota
  1. Você pode escolher Add new card (Adicionar novo cartão)  ou Card details (Detalhes do cartão) ou ambos como Execution
    Location (Local de execução) com base em onde deseja que a validação seja realizada.
  2. Além disso, você pode escolher onChange ou onSubmit como Execution Trigger (Gatilho de execução).
    1. Selecionar onChange permitirá que o script calcule o custo total sempre que os valores de despesa forem alterados.
    2. Selecionar onSubmit permitirá que o script calcule o custo total quando o cartão for enviado ou salvo. 

Script 2: validação do orçamento da ordem de compra

  1. Crie um novo script e insira um nome: Validação do orçamento da ordem de compra.
  2. Escolha Purchase Order Orchestration (Orquestração de ordem de compra)  no menu suspenso Form (Formulário).
  3. Escolha Add new card (Adicionar novo cartão)  como Execution Location (Local de execução) para executar o script quando um novo cartão for adicionado.
  4. Escolha onSubmit como Execution Trigger (Gatilho de execução) para permitir que o script valide o custo total em relação ao orçamento sempre que o novo cartão for enviado clicando no botão Save (Salvar).
  5. Copie e cole o script abaixo em seu editor de script e substitua os nomes dos parâmetros.
    1. Você pode usar o ícone ? no canto superior direito do editor de script para fazer referência aos nomes dos parâmetros.
  6. Quando o script estiver pronto, Publish (Publique) -o. 
Script de amostra

async function onSubmit(forpage) {
    var total = current.Job.getValue(current.Layout.Fields.<select-Total-cost-parameter-here>.id);
    var budget = current.Job.getValue(current.Layout.Fields.<select-Budget-parameter-here>.id);
    if (total.value > budget.value) {
        ZDK.Message.Inline(current.Layout.Fields.<select-Total-cost-parameter-here>.id, "Total cost exceeds the Budget");
        return false;
    }
  return true;
}


Nota
  1. Você pode escolher Add new card (Adicionar novo cartão)  ou Card details (Detalhes do cartão) ou ambos como Execution Location (Local de execução) com base no local em que deseja que a validação seja executada.
  2. Além disso, você pode escolher onChange ou onSubmit como Execution Trigger (Gatilho de execução).
    1. Selecionar onChange permitirá que o script valide o orçamento sempre que os valores de despesa ou o custo total forem alterados.
    2. Selecionar onSubmit permitirá que o script valide o orçamento quando o cartão for enviado ou salvo. 

Etapa 3 - adicionar um cartão

Quando os scripts de formulário, blueprint e cliente estiverem prontos, podemos testar o script criando um novo cartão. 
  1. Navegue até Cards (Cartões) e clique em Add Card (Adicionar cartão) .
  2. Selecione Purchase Order Orchestration  (Orquestração de ordem de compra) na lista suspensa Form (Formulário).
  3. Insira os detalhes do cartão e as despesas incorridas.
    1. O custo total é calculado automaticamente.
    2. Se o custo total for maior que o orçamento, uma mensagem de erro será exibida.