Todos os artigos
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



  1. Abra o drawer da rule
  2. Origem: to_Item[].to_PricingElement[].ConditionAmount
  3. Destino: LIN[*].MOA.C516.C51602 (gross amount EDIFACT)
  4. Transform: escolha "Filter Lookup"
  5. Condição: adicione cláusula ConditionType é igual a "PR00"
  6. 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
Como usar Filter Lookup pra mapear campos condicionais · Lefia Help