Gerenciador de transações: Regras e agrupamentos de regras
As regras no Gerenciador de transações são semelhantes às regras de configuração. Você também pode agrupar regras quando elas forem executadas juntas.
Como na configuração, as regras no Gerenciador de transações regem quais ações são realizadas quando um usuário faz uma entrada na IU de compra do Gerenciador de transações. As regras consistem em três componentes no Gerenciador de transações: Nível, condições e ações.
O nível determina se a regra é executada no nível da transação ou no nível da linha de transação. O nível determina quais campos podem ser usados na definição de condições e ações na regra.
As condições determinam quando uma regra executa suas ações. Se as condições definidas para uma regra forem avaliadas como VERDADEIRAS, as ações da regra serão executadas. Se as condições de uma regra forem avaliadas como FALSAS, as ações da regra não serão executadas.
As ações determinam o que as regras fazem quando são executadas.
Cada tipo de ação tem um conjunto exclusivo de parâmetros de regra que devem ser definidos. As ações são descritas mais detalhadamente nas seções a seguir.
Crie uma nova regra
No menu Administrador do Gerenciador de transações, clique em Regras relacionadas . Para criar uma nova regra, clique em Nova regra .
Em Nova regra janela pop-up, insira o nome da nova regra e verifique o nome da variável. Para mudar o nome da variável, clique no ícone de lápis à direita.
Para definir o nível da nova regra, clique em um dos dois Transação ou Linha de transação .
- As regras de nível de transação podem usar campos de nível de transação nas condições e ações na regra.
- As regras de nível de linha de transação podem usar campos de nível de transação e de linha de transação nas condições da regra, mas somente campos de nível de linha de transação nas ações na regra.
Clique em Salvar.
Na página do editor de regras, você pode modificar o nome e a descrição da regra. A alternância Ativo permite ativar ou desativar a regra.
Abaixo do campo Descrição está a área de condição. Clicando em Agir quando o menu exibe opções para implementar as condições desta nova regra. Selecione o método de condições a ser usado para esta nova regra.
- Sempre verdadeiro Executa a regra sempre que um usuário faz uma mudança na IU de compra do Gerenciador de transações.
- Todas as condições foram atendidas Executa a regra se alguma condição for avaliada como VERDADEIRA. (As condições são logicamente OU juntas.)
- Todas as condições foram atendidas Executa a regra se todas as condições forem avaliadas como VERDADEIRAS. (As condições são logicamente E juntas.)
- Lógica personalizada Permite o uso de parênteses e uma mistura de ANDs e ORs para criar uma avaliação de lógica personalizada das condições na lista de condições (por exemplo, se Cond_1 E (Cond_2 OU Cond_3)).
- Função avançada permite que o administrador grave um script para determinar se as regras devem ser executadas. O script retorna um valor VERDADEIRO ou FALSO.
Se você mudar o valor de Agir quando do valor padrão de Sempre , você precisa especificar a lista de condições que determinam se a regra é executada. Você pode definir uma ou mais condições individuais para uma regra. Para definir uma condição, use o menu Inserir/Selecionar um campo para selecionar o campo Gerenciador de transações a ser testado e, em seguida, escolha o operador para a condição no menu Iguais e defina o valor de teste para o campo no menu Inserir/Selecionar um valor para determinar se a condição é VERDADEIRA ou FALSA. Use o botão Adicionar condição para adicionar várias condições à regra.
Depois que as condições forem definidas, você poderá definir as ações que a regra executa. Tal como acontece com as condições, você pode adicionar uma ou mais ações a uma regra, e diferentes tipos de ações podem ser incluídos na mesma regra.
Para adicionar uma ação, selecione o tipo de ação a ser adicionada e clique nele na área Ações. Em seguida, você será levado para o conjunto de parâmetros Tipo de ação para definir a ação.
- Uma ação de ocultação oculta condicionalmente um campo.
- Uma ação de mensagem exibe uma mensagem de texto para o usuário comprador.
- Uma ação de exclusão oculta ou desabilita uma opção de menu em um campo de lista de seleção.
- Uma ação de inclusão exibe uma opção de menu em um campo de lista de seleção.
- Uma ação de determinação define ou limpa o valor de um campo.
Uma revisão dos diferentes conjuntos de parâmetros de ação a seguir.
A ação de ocultação
A ação Ocultar permite ocultar um campo no layout de compra. O único parâmetro para este tipo de ação é o campo a ser ocultado. Use a caixa de pesquisa de campo para identificar o campo.
A ação Mensagem
Uma ação Mensagem permite a exibição de uma mensagem de texto para o usuário comprador no layout do Gerenciador de transações. Há quatro tipos de mensagem no Quero exibir menu:
- Uma mensagem informativa usa um ícone circular azul e um texto de mensagem azul. O ícone e a cor do texto não podem ser alterados.
- Uma mensagem de aviso usa um ícone amarelo triangular e um texto de mensagem amarelo. O ícone e a cor do texto não podem ser alterados.
- Uma mensagem de erro usa um ícone vermelho triangular e um texto de mensagem vermelho. O ícone e a cor do texto não podem ser alterados.
- As mensagens personalizadas podem ter qualquer ícone e cor de texto.
Use o. Mostrar a mensagem em campo para definir onde no layout de compra você deseja que a mensagem apareça. A mensagem geralmente é anexada a um campo, mas também pode ser anexada a um componente de layout, como uma camada ou um conjunto de colunas.
. Conteúdo da mensagem o campo permite que você escreva a mensagem a ser exibida para o usuário comprador. Definindo o. Avançado a alternância permite que você escreva um script para criar a mensagem. Use o. Quando a mensagem é exibida campo para determinar se a transação pode ser salva quando a mensagem é exibida.
A ação de exclusão/inclusão
As ações de exclusão e inclusão permitem definir a visibilidade e o uso das opções de menu definidas para um campo de lista de seleção. As ações de exclusão permitem ocultar ou desabilitar opções de menu. As ações de inclusão permitem mostrar ou habilitar opções de menu. As ações de exclusão e inclusão usam o mesmo conjunto de parâmetros.
Use o. Para este campo menu para selecionar o campo da lista de seleção cujas opções de menu serão excluídas ou incluídas no menu.
Use o. Quero [excluir|incluir] essas opções para selecionar as opções do menu da lista de seleção a serem excluídas ou incluídas no menu. Você pode selecionar várias opções, uma de cada vez. Use o. Avançado alterne para usar um script para determinar quais opções de menu fazem parte da execução da regra.
Use o. Para opções excluídas para determinar como as opções de menu excluídas são tratadas. (Em uma ação de inclusão, as opções de menu não incluídas no menu são tratadas como opções de menu excluídas.) Escolha oculte-os para ocultar as opções. Escolha desabilite-os para mantê-los no menu em um estado desabilitado.
Use o. Se algum já estiver selecionado menu para determinar o que fazer quando o usuário já tiver selecionado um item de menu excluído quando a regra for executada:
- deixe inalterado deixa o item excluído como o item selecionado.
- desmarque-os desmarca a opção excluída, forçando o usuário a selecionar outra opção.
- em vez disso, selecione a primeira opção válida desmarca a opção excluída, mas a substitui pela primeira opção disponível no menu após a execução da regra.
A ação de determinação
As ações de determinação permitem definir e limpar o valor de um campo no Gerenciador de transações.
Use o. Para este campo menu para pesquisar e selecionar o campo para a regra agir.
Em Eu quero... , defina se o valor do campo deve ser definido ou limpo e se o usuário deve permitir ou impedir que edite seu valor após ele ter sido modificado pela regra.
Em Se o usuário tiver valores modificados , você pode escolher se deseja manter um valor no campo modificado pelo usuário ou substituir o valor pelo valor na regra. Para manter o valor inserido pelo usuário, use Quando os valores do usuário são mantidos menu para definir se será exibida ao usuário uma mensagem com uma recomendação sobre o valor do campo.
Por fim, defina o valor a ser atribuído ao campo. . Use este valor o campo define este valor. Você pode usar o. Avançado alterne para habilitar um script para determinar o valor.
Agrupamentos de regras
Os agrupamentos de regras são coleções de regras a serem executadas em conjunto. Um agrupamento de regras pode conter regras de nível de transação e de linha de transação.
Os agrupamentos de regras são usados em fases e eventos para vincular grupos de regras para execução. Cada fase pode ter qualquer número de agrupamentos de regras associados a ela, determinando quais regras serão executadas quando um usuário fizer mudanças em um campo na fase. Para que as regras sejam executadas, o administrador deve associar um agrupamento de regras a uma fase ou evento. Para obter instruções sobre como fazer isso, consulte os seguintes artigos:
Criando um agrupamento de regras
Para começar, clique em Agrupamentos de regras No menu Administrador e, em seguida, clique em Novo agrupamento de regras .
Em Novo agrupamento de regras , insira um nome de variável para o novo agrupamento de regras e clique em Salvar .
A página Editor de agrupamento de regras é aberta. Clique em Associate Rules .
Um painel deslizante é exibido, onde você pode selecionar as regras a serem incluídas no novo agrupamento de regras. Clique em . em Resultados coluna para mover uma regra para Selecionado coluna. Repita isso para cada regra a ser incluída no agrupamento de regras.
Quando terminar de selecionar as regras, clique em Concluído . Você será levado de volta para a página do editor de agrupamento de regras, onde verá as regras que foram adicionadas ao grupo.
Agregados de regra
As agregações são funções de script para uso em uma ação de determinação de regra. Os agregados podem aprimorar a automação, otimizar cálculos de preços e melhorar a organização de dados em fluxos de trabalho de cotação e transação e foram criados para otimizar o desempenho do mecanismo de regras no Gerenciador de transações.
As funções agregadas executam vários cálculos matemáticos nos campos de linha de transação. Os resultados desses cálculos são armazenados em um campo de transação (cabeçalho) ou em um campo de linha de transação.
Os agregados de regra incluem as seguintes categorias:
- Média, Contagem, Mín, Máx, Soma
- If, CountIf, SumIF
- SumSecundários
- Pesquisar
Média, Contagem, Mín, Máx, Soma
Estas funções agregadas agregam o valor do campo de linha de transação para todas as linhas e armazenam o resultado em um campo de cabeçalho (o campo de destino da ação de determinação):
Retornar txn.LINE.Functions.<function>(txn.LINE.<fieldVarName>)
Os valores de <function> incluem avgField, countField, minField, Maxfield e sumField.
If, CountIf, SumIF
Essas funções agregadas aplicam um filtro ao valor do campo de linha de transação para todas as linhas e, em seguida, executam o cálculo nas linhas restantes, armazenando o resultado em um campo de cabeçalho (o campo de destino da ação de determinação):
txn.LINE.Functions.<function>(txn.LINE.<fieldVarName>, <condition> [, <default>])
Os valores de <function> incluem avgFieldIf, countFieldIf e sumFieldIf.
- BooleanField: Verdadeiro
- txn.line.Functions.somChildrenField(txn.LINE.<fieldVarName>)> 0
Se não houver secundários para agregar e o valor padrão for indefinido, a função retornará nulo .
As verificações condicionais do texto diferenciam maiúsculas de minúsculas.
Exemplo de caso de uso: Soma de preços de lista para o tipo de BOM de vendas
A transação de amostra da fase de rascunho abaixo calcula a soma dos preços de lista de itens cujo tipo de BOM éSALES. O tipo de BOM é um campo de linha derivado do sistema que reflete o tipo definido primeiro quando o item de configuração foi criado.
Etapas:
- Crie um campo de cabeçalho chamado Preço total do tipo de vendas .
- Adicione-o ao layout e implante a transação.
- Configure uma regra de determinação usando
SumFieldIffunção, aplicada na fase de rascunho com o seguinte script:return txn.line.functions.sumFieldIf(txn.line.pricing.list, txn.line.configuration.item.bomType == 'SALES');Nota:A verificação condicional diferencia maiúsculas de minúsculas. UsoVENDAS, nãovendas. Maiúsculas incorretas não geram erros, mas resulta em uma soma de 0 porque, no caso de uso, nenhuma linha tem um tipo de BOM de Vendas. - Implantar e recarregar a transação. O campo retorna corretamente o total de preços de linha correspondentes: $46 000 (de 0, 40 000, 2 500, 1 000, 2 500).
SumSecundários
Esta função agregada agrega o valor do campo de linha de transação para todas as linhas secundárias e armazena o resultado no campo primário imediato de nível de linha das linhas secundárias (o campo de destino da ação de determinação):
txn.line.Functions.somChildrenField(txn.LINE.<fieldVarName>)Pesquisar
Essas funções agregadas recuperam valores em vez de calcular totais. Elas retornam um único valor ou uma matriz de valores, permitindo que os usuários extraiam informações-chave dinamicamente para uso em cálculos de preços, regras de validação e documentos de saída.
As funções básicas de pesquisa incluem:
txn.line.Functions.LookupField (<field>)Recupera uma matriz de valores do campo especificado em todas as linhas de transação.
txn.line.functions.lookupFirstField(<field> [, <default>])Recupera o primeiro valor de campo correspondente. Se nenhum for encontrado, retornará o padrão opcional.
tsn.line.Functions.LookupChildrenField (<field>)Recupera uma matriz de valores de itens de linha secundários.
txn.line.functions.lookupFirstChildrenField(<field> [, <default>])Recupera o primeiro valor correspondente dos itens de linha secundários, com um padrão opcional.
As verificações condicionais do texto diferenciam maiúsculas de minúsculas. As funções de pesquisa condicional incluem:
txn.line.functions.lookupFieldIf(<field>, <condition>)Recupera uma matriz de valores de campo com base em uma condição.
txn.line.functions.lookupFirstFieldIf(<field>, <condition> [, <default>])Recupera o primeiro valor de campo correspondente com base em uma condição, com um padrão opcional.
txn.line.functions.lookupChildrenFieldIf(<field>, <condition>)Recupera uma matriz de valores de itens de linha secundários com base em uma condição.
txn.line.functions.lookupFirstChildrenFieldIf(<field>, <condition> [, <default>])Recupera o primeiro valor do campo de item de linha secundário correspondente com base em uma condição, com um padrão opcional.
As funções seguem uma convenção de nomenclatura estruturada para fins de clareza e consistência.
pesquisaretorna uma matriz.LookupFirstretorna um único valor.- Contexto: Nenhum contexto (todas as linhas) ou
Secundários(somente itens de linha secundários). - Objeto:
Campo(aplica-se somente a uma pesquisa de campo). - Condição: Nenhuma condição, ou
Se(pesquisa condicional).
As funções de pesquisa armazenam valores recuperados em campos intermediários, tornando-os disponíveis para cálculos adicionais e automação. Isso permite a integração com regras de preços, aprovações e documentos de saída.
Os benefícios dos campos intermediários incluem o seguinte:
- Eles minimizam cálculos redundantes armazenando valores comumente referenciados
- Eles mantêm um conjunto consistente de valores de campo nos processos de preços e cotação
- Eles permitem atualizações dinâmicas para campos dependentes, garantindo precisão em tempo real nos preços e aprovações
As agregações de pesquisa são ajustadas dinamicamente quando os itens de linha entre aspas são removidos. O sistema garante que as referências a linhas de transação excluídas sejam limpas, mantendo a precisão dos dados nos preços e descontos recalculados. Veja os exemplos a seguir.
var taxCodes =
txn.line.functions.lookupFieldIf("taxCode", txn.line.amount > 0);
var firstPrice =
txn.line.functions.lookupFirstField("price", 0); var childService =
txn.line.functions.lookupChildrenField("serviceType"); var totalTax =
txn.line.functions.lookupFirstField(txn.line.taxAmount, 0); return totalTax * 1.05; //
Applies a 5% surcharge based on retrieved tax amount