MuleSoft - Componentes principais e configuração

Uma das habilidades mais importantes do Mule é que ele pode executar roteamento, transformação e processamento com os componentes, por isso o arquivo de configuração do aplicativo Mule que combina vários elementos é muito grande.

A seguir estão os tipos de padrões de configuração fornecidos pelo Mule -

  • Padrão de serviço simples
  • Bridge
  • Validator
  • Proxy HTTP
  • Proxy WS

Configurando o componente

No Anypoint Studio, podemos seguir as etapas abaixo para configurar um componente -

Step 1

Precisamos arrastar o componente que desejamos usar em nosso aplicativo Mule. Por exemplo, aqui usamos o componente ouvinte HTTP da seguinte maneira -

Step 2

Em seguida, clique duas vezes no componente para obter a janela de configuração. Para ouvinte HTTP, é mostrado abaixo -

Step 3

Podemos configurar o componente de acordo com os requisitos do nosso projeto. Digamos, por exemplo, que fizemos para o componente de ouvinte HTTP -

Os componentes principais são um dos blocos de construção importantes do fluxo de trabalho no aplicativo Mule. A lógica para processar um evento Mule é fornecida por esses componentes principais. No Anypoint Studio, para acessar esses componentes principais, você pode clicar no Core da Mule Palette conforme mostrado abaixo -

A seguir estão vários core components and their working in Mule 4 -

Eventos de negócios personalizados

Este componente principal é usado para a coleta de informações sobre fluxos, bem como processadores de mensagens que lidam com as transações de negócios no aplicativo Mule. Em outras palavras, podemos usar o componente Custom Business Event para adicionar o seguinte em nosso fluxo de trabalho -

  • Metadata
  • Indicadores-chave de desempenho (KPIs)

Como adicionar KPIs?

A seguir estão as etapas para adicionar KPIs em nosso fluxo no aplicativo Mule -

Step 1 - Siga Mula Palette → Core → Components → Custom Business Event, para adicionar o componente Custom Business Event a um fluxo de trabalho em seu aplicativo Mule.

Step 2 - Clique no componente para abri-lo.

Step 3 - Agora, precisamos fornecer valores para Nome de exibição e Nome do evento.

Step 4 - Para capturar informações da carga útil da mensagem, adicione KPIs da seguinte forma -

  • Dê um nome (chave) para o KPI ( rastreamento: elemento de metadados ) e um valor. O nome será usado na interface de pesquisa do Runtime Manager.

  • Forneça um valor que pode ser qualquer expressão de Mula.

Exemplo

A tabela a seguir consiste na lista de KPIs com nome e valor -

Nome Expressão / Valor
Student RollNo # [carga útil ['RollNo']]
Nome do aluno # [carga útil ['Nome']]

Avaliação Dinâmica

Este componente principal é usado para selecionar dinamicamente um script no aplicativo Mule. Também podemos usar script hardcore por meio do Transform Message Component, mas usar o componente Dynamic Evaluate é a melhor maneira. Este componente principal funciona da seguinte maneira -

  • Primeiramente, ele avalia uma expressão que deve resultar em outro script.
  • Em seguida, ele avalia esse script para o resultado final.

Dessa forma, ele nos permite selecionar dinamicamente o script em vez de codificá-lo permanentemente.

Exemplo

A seguir está um exemplo de seleção de um script do banco de dados por meio de um parâmetro de consulta Id e armazenamento desse script em uma variável chamada MyScript . Agora, o componente de avaliação dinâmica acessará a variável para invocar os scripts para que possa adicionar uma variável de nome deUName parâmetro de consulta.

A configuração XML do fluxo é fornecida abaixo -

<flow name = "DynamicE-example-flow">
   <http:listener config-ref = "HTTP_Listener_Configuration" path = "/"/>
   <db:select config-ref = "dbConfig" target = "myScript">
      <db:sql>#["SELECT script FROM SCRIPTS WHERE ID = 
         $(attributes.queryParams.Id)"]
      </db:sql>
   </db:select>
   <ee:dynamic-evaluate expression = "#[vars.myScript]">
      <ee:parameters>#[{name: attributes.queryParams.UName}]</ee:parameters>
   </ee:dynamic-evaluate>
</flow>

O script pode usar variáveis ​​de contexto como mensagem, carga útil, vars ou atributos. No entanto, se você deseja adicionar uma variável de contexto personalizada, você precisa fornecer um conjunto de pares de valores-chave.

Configurando Avaliação Dinâmica

A tabela a seguir fornece uma maneira de configurar o componente Dynamic Evaluate -

Campo Valor Descrição Exemplo
Expressão Expressão DataWeave Ele especifica a expressão a ser avaliada no script final. expression = "# [vars.generateOrderScript]"
Parâmetros Expressão DataWeave Ele especifica pares de valores-chave. # [{joiner: 'e', ​​id: payload.user.id}]

Componente de referência de fluxo

Se você deseja rotear o evento Mule para outro fluxo ou subfluxo e de volta ao mesmo aplicativo Mule, o componente de referência de fluxo é a opção certa.

Características

A seguir estão as características deste componente principal -

  • Este componente central nos permite tratar todo o fluxo referenciado como um único componente no fluxo atual.

  • Ele divide o aplicativo Mule em unidades discretas e reutilizáveis. Por exemplo, um fluxo está listando arquivos regularmente. Ele pode fazer referência a outro fluxo que processa a saída da operação de lista.

  • Dessa forma, em vez de anexar todas as etapas de processamento, podemos anexar Referências de Fluxo que apontam para o fluxo de processamento. A captura de tela abaixo mostra que o componente principal de referência de fluxo está apontando para um subfluxo denominadoProcessFiles.

Trabalhando

O funcionamento do componente Flow Ref pode ser compreendido com a ajuda do seguinte diagrama -

O diagrama mostra a ordem de processamento no aplicativo Mule quando um fluxo faz referência a outro fluxo no mesmo aplicativo. Quando o fluxo de trabalho principal no aplicativo Mule é acionado, o evento Mule percorre e executa o fluxo até que o evento Mule alcance a Referência de Fluxo.

Após atingir a Referência de Fluxo, o evento Mule executa o fluxo referenciado do início ao fim. Assim que o evento Mule termina de executar o Ref Flow, ele retorna ao fluxo principal.

Exemplo

Para melhor compreensão, let us use this component in Anypoint Studio. Neste exemplo, estamos pegando o ouvinte HTTP para GET uma mensagem, como fizemos no capítulo anterior. Portanto, podemos arrastar e soltar o componente e configurar. Mas, para este exemplo, precisamos adicionar um componente Subfluxo e definir o componente Payload sob ele, conforme mostrado abaixo -

Em seguida, precisamos configurar Set Payload, clicando duas vezes nele. Aqui estamos dando o valor, “Subfluxo executado” conforme mostrado abaixo -

Depois de configurar com êxito o componente de subfluxo, precisamos que o Componente de Referência de Fluxo seja definido após Definir Carga Útil do fluxo principal, que podemos arrastar e soltar da Paleta de Mulas, conforme mostrado abaixo -

Em seguida, ao configurar o componente de referência de fluxo, precisamos escolher o nome do fluxo na guia genérico conforme mostrado abaixo -

Agora, salve e execute este aplicativo. Para testar isso, vá para POSTMAN e digitehttp:/localhost:8181/FirstAPP na barra de URL, e você obterá a mensagem Subfluxo executado.

Componente Logger

O componente principal chamado logger nos ajuda a monitorar e depurar nosso aplicativo Mule, registrando informações importantes como mensagens de erro, notificações de status, cargas úteis, etc. No AnyPoint Studio, eles aparecem no Console.

Vantagens

A seguir estão algumas vantagens do Componente Logger -

  • Podemos adicionar esse componente central em qualquer lugar do fluxo de trabalho.
  • Podemos configurá-lo para registrar uma string especificada por nós.
  • Podemos configurá-lo para a saída de uma expressão DataWeave escrita por nós.
  • Também podemos configurá-lo para qualquer combinação de strings e expressões.

Exemplo

O exemplo abaixo exibe a mensagem “Hello World” no Set Payload em um navegador e registra a mensagem também.

A seguir está a configuração XML do fluxo no exemplo acima -

<http:listener-config name = "HTTP_Listener_Configuration" host = "localhost" port = "8081"/>
<flow name = "mymuleprojectFlow">
   <http:listener config-ref="HTTP_Listener_Configuration" path="/"/>
   <set-payload value="Hello World"/>
   <logger message = "#[payload]" level = "INFO"/>
</flow>

Transferir componente de mensagem

O Transform Message Component, também chamado de componente Transfer, nos permite converter os dados de entrada em um novo formato de saída.

Métodos para construir a transformação

Podemos construir nossa transformação com a ajuda dos dois métodos a seguir -

Drag-and-Drop Editor (Graphical View)- Este é o primeiro e mais utilizado método para construir nossa transformação. Nesse método, podemos usar o mapeador visual desse componente para arrastar e soltar os elementos da estrutura de dados de entrada. Por exemplo, no diagrama a seguir, duas visualizações em árvore mostram as estruturas de metadados esperadas de entrada e saída. As linhas que conectam a entrada ao campo de saída representam o mapeamento entre duas visualizações em árvore.

Script View- O mapeamento visual da Transformação também pode ser representado com a ajuda do DataWeave, uma linguagem para código Mule. Podemos fazer a codificação para algumas transformações avançadas como agregação, normalização, agrupamento, junção, particionamento, dinamização e filtragem. O exemplo é dado abaixo -

Este componente principal basicamente aceita metadados de entrada e saída para uma variável, um atributo ou carga útil de mensagem. Podemos fornecer recursos específicos de formato para o seguinte -

  • CSV
  • Schema
  • Esquema de arquivo simples
  • JSON
  • Classe de objeto
  • Tipo Simples
  • Esquema XML
  • Nome e tipo da coluna do Excel
  • Nome e tipo da coluna de largura fixa