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.
- Helen cria um formulário e adiciona diferentes campos de Moeda para registrar todas as despesas incorridas e declarar o Orçamento .
- A soma de todas as despesas é calculada usando o script do cliente e armazenada em um novo campo Moeda, chamado Custo total .
- 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.
- Adicione campos de Moeda para registrar diferentes despesas, como custo do item, imposto e frete.
- Crie um campo Moeda para calcular e exibir o Custo total.
- 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
- Crie um novo script e insira um nome - Cálculo do custo da ordem de compra.
- Escolha Purchase Order Orchestration (Orquestração de ordem de compra) no menu suspenso Form (Formulário).
- 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.
- 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.
- Copie e cole o script abaixo em seu editor de script e substitua os nomes dos parâmetros.
- Você pode usar o ícone ? no canto superior direito do editor de script para fazer referência aos nomes dos parâmetros.
- 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
-
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.
- Além disso, você pode escolher onChange ou onSubmit como Execution Trigger (Gatilho de execução).
- Selecionar onChange permitirá que o script calcule o custo total sempre que os valores de despesa forem alterados.
- 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
- Crie um novo script e insira um nome: Validação do orçamento da ordem de compra.
- Escolha Purchase Order Orchestration (Orquestração de ordem de compra) no menu suspenso Form (Formulário).
- 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.
- 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).
- Copie e cole o script abaixo em seu editor de script e substitua os nomes dos parâmetros.
- Você pode usar o ícone ? no canto superior direito do editor de script para fazer referência aos nomes dos parâmetros.
- 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
- 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.
- Além disso, você pode escolher onChange ou onSubmit como Execution Trigger (Gatilho de execução).
- Selecionar onChange permitirá que o script valide o orçamento sempre que os valores de despesa ou o custo total forem alterados.
- 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.
- Navegue até Cards (Cartões) e clique em Add Card (Adicionar cartão) .
- Selecione Purchase Order Orchestration (Orquestração de ordem de compra) na lista suspensa Form (Formulário).
- Insira os detalhes do cartão e as despesas incorridas.
- O custo total é calculado automaticamente.
- Se o custo total for maior que o orçamento, uma mensagem de erro será exibida.
Related Articles
Caso de negócio 3: usar scripts de cliente para buscar dados de aplicativos ou sites de terceiros
Ao projetar formulários, às vezes podemos querer exibir dados de outros sites ou aplicativos, como taxas de estoque, status de voo, detalhes de frete, atualizações meteorológicas etc. Para buscar essas informações de sites ou aplicativos de terceiros ...
Gerenciar scripts do cliente
Os scripts do cliente são usados para incorporar validações adicionais aos dados de negócios enquanto são registrados no Qntrl. Em scripts de cliente, você pode codificar usando JavaScript e executar o código no navegador do usuário final enquanto ...
Caso de negócio 2: usar scripts de cliente para preencher automaticamente os campos com base na entrada do usuário
Ao projetar formulários, às vezes queremos exibir diferentes conjuntos de campos para diferentes respostas de usuário. Esse preenchimento automático de campo pode ser tratado usando scripts de cliente. Cenário de negócios Helen cria um formulário de ...
Caso de negócio 3: validar novos dados inseridos em cartões usando scripts de servidor (antes da atualização)
Realizar operações e coordenar com as equipes pode ser uma tarefa bastante trabalhosa. Se as informações fornecidas nos detalhes do cartão forem alteradas para corromper informações posteriormente, elas poderão criar caos e atrasar a conclusão da ...
Caso de negócio 2: buscar dados de sites de terceiros usando scripts de servidor (antes de criar)
Às vezes, podemos querer buscar dados externos de outros aplicativos ou sites, como detalhes meteorológicos, taxas de estoque ou status de voo relacionados ao cartão, quando criamos um cartão. Os scripts do servidor podem ser usados para buscar esses ...