Neste artigo vamos entender de maneira prática como manipular os registros de uma árvore de dados e algumas funções que podem ser usadas no Ligaí.
Primeiro vejamos uma árvore de dados como exemplo. Ao final de uma simulação de etapa, suponha que você encontre o seguinte resultado:
Entenda como chegar no resultado da simulação lendo este Artigo.
Agora vamos supor que você queira buscar o resultado do campo “RequestedDeliveryDate”.
O caminho deve ser, portanto:
$.to_ScheduleLine.results.[0].RequestedDeliveryDate != ""
Desta forma, você indica que o robô retorna o resultado sempre que o campo “RequestedDeliveryDate” for diferente de vazio (indicado por “ != ""”).
Mas o que acontece se alguma variável não existir dentro deste array?
Caso isso aconteça, o robô retornará o erro “"Cannot read properties of undefined". Para saná-lo, então, você deve incluir o operador condicional “?”, que possui a função de verificar se a requisição é verdadeira ou falsa, ou seja, se o existe ou não o campo buscado.
Assim a sintaxe deverá ser:
$.to_ScheduleLine?.results?.[0]?.RequestedDeliveryDate != ""
Desta forma você garante que o robô retornará “undefined” caso a requisição não seja encontrada, evitando erros.
Alguns métodos Javascript mais utilizadas no Ligaí:
- Map
É um método Javascript usado para manipulação de array. Tem o objetivo de executar uma função em cada item de um array. Ele funciona como uma estrutura de repetição, pois percorre todos os elementos do array, executa determinada ação e retorna um novo conteúdo.
Neste exemplo, vamos supor que você deseja que em todos os resultados encontrados seja trazida a variável “nome” que está contida dentro de “despesas”. Observe:
A sintaxe, portanto, deve ser escrita assim:
$.despesas.map( $=> $.nome)
Caso queira aprofundar seus conhecimentos, consulte este Artigo.
Find
É um método Javascript muito útil quando precisamos encontrar um item específico dentro de um array.
Exemplo prático:
Suponhamos que na árvore abaixo você precisa incluir o campo “LongText” apenas quando o “LongTextID” for igual a “TX03”
Perceba que dentro do array existem 2 resultados diferentes para “LongTextID” (“TX01” e “TX03”). Você vai precisar primeiro encontrá-lo nos resultados para depois inserir o “LongText”.
A sintaxe deve ser escrita da seguinte forma:
$.to_SalesAreaText?.results?.find($=> $.LongTextID == "TX03")?.LongText
Caso queira aprofundar seus conhecimentos, consulte este Artigo.
Filter
É um método Javascript utilizado para filtrar um array. Inclui apenas o elemento no array de resultados se o elemento satisfizer o teste na função que foi passada.
Neste exemplo, suponhamos que precisamos filtrar dentro de “PartnerFunction” apenas os resultados que retornem "RM","ZR","ZC","ZN","ZT".
Assim construiremos a sintaxe da seguinte forma:
$.to_Partner.results.filter($$=>["RM","ZR","ZC","ZN","ZT"].includes($$.PartnerFunction))
Caso queira aprofundar seus conhecimentos, consulte este Artigo.
OBS: O método “includes” vai determinar se o array contém um determinado elemento retornado no filtro estabelecido (neste caso o próprio “ZR”).
Não deixe de consultar os artigos:
O que fazer quando ao receber o erro "Cannot read properties of undefined"