Olá esse é o integration developer bootcamp estamos na etapa de boas práticas de desenvolvimento nesse vídeo falaremos sobre um componente de transformação componente Transformer J componente transforma e utiliza uma tecnologia externa chamada j e o objetivo do componente é manipular um dião de entrada por meio de outro desom configurado pelo desenvolvedor o desom configurado fará transformações da mensagem e retornará o resultado a partir das configurações os principais casos de uso são transformações complexas ele é muito bom para manipulação de arrays ele também é muito bom paraa manipulação e organização dos atributos de um deson aqui
a gente vai entender melhor na prática como que ele funciona no primeiro quadrado aqui no primeiro campo temos o input que é o Deão de entrada do componente e aqui o dirão de saída após o processamento ao clicar nas configurações do componente temos esses esses parâmetros step name que faz referência ao nome que esse componente terá no Canvas e o Type properties que é onde Vamos definir o Dion de transformação em si olhando para esse campo aqui percebemos que a primeira coisa é uma lista Isso significa que esse componente é capaz de efetuar diversas transformações
de uma única vez para fazer isso precisamos colocar diversos objetos de transformação então aqui cada objeto representa algum tipo de transformação nesse exemplo só temos um objeto dentro desse objeto de transformação temos dois atributos obrigatórios o Operation e o spec Operation el faz referência a Que tipo de operação acontecerá nessa transformação enquanto o spec ele el especifica qual atributo será modificado nessa transforma então novamente Operation aqui está como shift fazer ointe aera shift ela queos estrutura do nosso Jon e aqui temos o exemplo em que nós estamos inspecionando o atributo name dentro da raiz e
vamos fazer essa essa transformação aqui de mudança de nome tá Então olha só inspecionando o atributo name na raiz nós vamos transformar esse atributo em Full name nós fazemos essa transformação porque estamos utilizando a operação shift O resultado é name se torna full name e o valor continua o mesmo porque estamos fazendo apenas uma transformação nos atributos e não seus valores vamos ver um novo exemplo agora assim como no caso anterior também estamos fazendo uma operação de mudança de nome e agora estamos inspecionando Person e dentro de Person inspecionando name então o nosso diz onde
entrada possui um objeto Person e possui um atributo name dentro novamente vamos mudar name para full name para fazer isso nós Espeon o Person que está na raiz estamos especi o dentro de Person e o seu nome se tornará fullname aqui tem um detalhe importante e diferente que é o seguinte precisamos especificar que o full name estará dentro do objeto Person assim na saída ele tem um objeto Person dentro desse objeto possuímos full caso não especificarmos esse objeto Continuará dentro de Person o valor de full name irá pra raiz da do meu output do meu
de saída e não permanecerá aqui dentro agora vamos falar de outras operações componente j ou melhor a tecnologia J ela possui Sete Tipos de operação o shift modifica a estrutura como acabamos de ver ele modifica o nome dos atributos já o Operation Def ele permite que nós criemos valores fixos dentro do nosso Jon temos remove para remover algum atributo sort para pegar todos os atributos e colocar em ordem alfabética assim teremos uma melhor leitura ou melhor debug cardinal que ele corrige entre aspas a cardinalidade de elementos então ele consegue transformar listas de elementos únicos em
um objeto ou transformar um objeto em uma lista de único elemento nós vamos ver isso e os dois últimos são modify que são eh São operações que permitem a utilização de funções na plataforma eh Essas funções são diretamente da tecnologia J nós não conseguimos no componente Transform utilizar as transformações da plataforma a diferença entre essas duas operações é que um vai sobrescrever os dados Enquanto o outro não vai sobrescrever nós veremos isso em breve também vamos começar com o exemplo de shift novamente temos no dião de entrada um objeto chamado customer com três nós que
são code name E nickname então vamos fazer uma transformação shift e vamos inspecionar esse objeto customer aqui dentro nós estamos olhando para o atributo Code e o atributo name code se tornará id e name Continuará com o mesmo nome quando nós colocamos ponto e Comercial nós estamos dizendo que o atributo terá o mesmo nome do início a diferença aqui é que eles não irão continuar em customer Eles serão atribuídos a um objeto chamado client o resultado dessa transformação é que agora temos no de saída client ID um e name n Vader vamos ver o Jone
de entrada e o Jone de saída para fazer essas comparações customer agora é client visto que definimos o objeto como client code se torna ID porque definimos que code se tornaria ID name continua name porque colocamos o e Comercial que faz referência manter o mesmo nome e aqui temos Outro ponto importante nickname não foi informado no di de transformação Isso significa que ele não será reproduzido no dião de saída Esse é um ponto crucial caso queiramos que um objeto continue no Jon de saída precisamos fazer referência a ele por meio do Jon de transformação agora
vamos paraa função Def Operation Def como eu dito anteriormente ele permite que nós adicionemos um elemento ao nosso Jon então possuímos o mesmo Dion de entrada fazemos agora a operação defo e vamos inspecionar dentro de customer Vamos criar um atributo chamado status com valor Active perceba que anteriormente em dentro de customer não obtos o valor o atributo status e após a transformação temos o status com o valor Active aqui eh na operação de todos os elementos que estavam aqui passarão a continuar então não precisamos fazer nenhum tipo de referência que os atributos vão vão continuar
no pelad da mesma forma um detalhe importante aqui na função defo caso já existisse um atributo chamado status não aconteceria nenhuma mudança no valor desse atributo ou seja se obtivéssemos um status com valor desativado por exemplo e passássemos por essa transformação o valor final continuaria sendo desativado visto que o defa não sobrescreve nosso dião de entrada para função remove no Operation remove nós definimos no nosso spec Qual campo de deveremos remover do nosso payload mas para fazer essa remoção precisamos colocar que o valor dele se torne vazio caso não coloquemos esse valor vazio a remoção
não acontecerá então para o mesmo dião de entrada nós estamos inspecionando customer o nó nickname após dizermos que vamos remover esse elemento meu Dion de saída possui o mesmo objeto porém agora sem o nickname na operação de cardinality nós temos aqui por exemplo no dião de entrada um objeto que possui um atributo de valor um e também possuímos uma lista que possui um objeto de atributo valor a aqui definimos que a lista se tornará One e o objeto se tornará many o resultado disso é que na lista que antes tínhamos uma lista com objeto único
tornará um único objeto enquanto para o objeto se tornará o oposto nós tínhamos um objeto único e agora tem temos uma lista de um único objeto para os dois últimos exemplos temos a os modifies que permitem utilizar funções da própria tecnologia E são essas funções aqui size first Element less Element entre outras que poderá ser acessado pela documentação Como dito anteriormente a diferença entre eles é que no default não sobre escrevemos dados enquanto no overwrite nó sobr escrevemos para dar esse exemplo temos e o dião de entrada com test de valor um scores que é
um Array de diversos elementos e aqui várias operações várias funções são utilizadas como por exemplo o número de elementos desse Array e qual que é o primeiro registro qual que é o último registro e todos os registros de maneira crescente tá sorteados que seriam na verdade ordenados então o resultado disso é que por exemplo no sorted scores em que eles seriam ordenados por ordem crescente ele vai pegar esse Array e vai transformar nesse Array aqui agora com a ordem cresente perceba que aqui teste foi atribuo valor 2 mas teste já existia no pad e aqui
teste continuou com valor 1 porque estamos tratando da função defo abaixo Vemos as mesmas transformações que anteriormente mas a diferença por serr é Que teste que possuia valor um passa a ter valor dois e ele é sobrescrito essa foi a apresentação de jot Obrigado por assistir e nos vemos no próximo vídeo