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:

Conceito de $ e $$

O que fazer quando ao receber o erro "Cannot read properties of undefined"