help.categories.mapping
Como usar Filter Lookup pra mapear campos condicionais
Filter Lookup permite extrair valor de um array source onde determinada condição é verdadeira. Caso típico: SAP pricing — pegar ConditionAmount onde ConditionType="PR00".
Atualizado em 5/25/2026
Quando usar
Quando o campo destino precisa de UM valor específico de dentro de um array source com múltiplos elementos, identificado por outro campo do mesmo elemento.
Exemplo SAP: A_BillingDocument item tem
to_PricingElement[*] com pricing conditions: PR00 (preço base), MWST (imposto), ZD01 (desconto), etc. Cada element tem ConditionType + ConditionAmount. Pra preencher MOA do INVOIC EDIFACT (gross amount), você quer apenas o ConditionAmount onde ConditionType == "PR00".Como criar a rule
- Abra o drawer da rule
- Origem:
to_Item[].to_PricingElement[].ConditionAmount - Destino:
LIN[*].MOA.C516.C51602(gross amount EDIFACT) - Transform: escolha "Filter Lookup"
- Condição: adicione cláusula
ConditionTypeé igual a"PR00" - Quando encontrar:
Primeiro match(default)
AND/OR multi-clause
Pra condições compostas:
- Botão "+ Cláusula": adiciona linha irmã (operador AND/OR atual do grupo)
- Botão "+ Grupo OR/AND aninhado": adiciona sub-grupo com operador oposto
Exemplo "PR00 ou ZINV E ativo":
ATENDE TUDO (AND)
├── Grupo OR (basta UM)
│ ├── ConditionType eq "PR00"
│ └── ConditionType eq "ZINV"
└── ConditionIsActive eq true
Match strategies
- Primeiro match: pega o primeiro que bate (default)
- Último match: o último na ordem do array
- Único: erro se 2+ matches (garante unicidade)
- Somar todos: soma valores numéricos (ex: descontos agregados)
- Juntar como texto: concatena com separador (ex: lista de códigos)
Operadores disponíveis
é igual a, é diferente de, está em, não está em, maior que, ≥, menor que, ≤, contém, começa com, termina com, é nulo / vazio, está preenchido