MuleSoft - Composants principaux et configuration
L'une des capacités les plus importantes de Mule est qu'il peut effectuer le routage, la transformation et le traitement avec les composants, grâce à quoi le fichier de configuration de l'application Mule qui combine divers éléments est de très grande taille.
Voici les types de modèles de configuration fournis par Mule -
- Modèle de service simple
- Bridge
- Validator
- Http proxy
- Proxy WS
Configurer le composant
Dans Anypoint studio, nous pouvons suivre les étapes ci-dessous pour configurer un composant -
Step 1
Nous devons faire glisser le composant que nous souhaitons utiliser dans notre application Mule. Par exemple, ici, nous utilisons le composant d'écoute HTTP comme suit -
Step 2
Ensuite, double-cliquez sur le composant pour obtenir la fenêtre de configuration. Pour l'écouteur HTTP, il est montré ci-dessous -
Step 3
Nous pouvons configurer le composant selon les exigences de notre projet. Disons par exemple que nous l'avons fait pour le composant d'écoute HTTP -
Les composants de base sont l'un des éléments de base importants du flux de travail dans l'application Mule. La logique de traitement d'un événement Mule est fournie par ces composants de base. Dans le studio Anypoint, pour accéder à ces composants de base, vous pouvez cliquer sur la palette Core from Mule comme indiqué ci-dessous -
Voici divers core components and their working in Mule 4 -
Événements commerciaux personnalisés
Ce composant principal est utilisé pour la collecte d'informations sur les flux ainsi que sur les processeurs de messages qui gèrent les transactions commerciales dans l'application Mule. En d'autres termes, nous pouvons utiliser le composant Custom Business Event pour ajouter les éléments suivants à notre flux de travail:
- Metadata
- Indicateurs clés de performance (KPI)
Comment ajouter des KPI?
Voici les étapes pour ajouter des KPI dans notre flux dans l'application Mule -
Step 1 - Suivez Mule Palette → Core → Components → Custom Business Event, pour ajouter un composant d'événement professionnel personnalisé à un flux de travail dans votre application Mule.
Step 2 - Cliquez sur le composant pour l'ouvrir.
Step 3 - Maintenant, nous devons fournir des valeurs pour le nom d'affichage et le nom de l'événement.
Step 4 - Pour capturer des informations à partir de la charge utile du message, ajoutez les KPI comme suit -
Donnez un nom (clé) pour le KPI ( tracking: élément de méta-données ) et une valeur. Le nom sera utilisé dans l'interface de recherche de Runtime Manager.
Donnez une valeur qui peut être n'importe quelle expression Mule.
Exemple
Le tableau suivant comprend la liste des indicateurs de performance clés avec le nom et la valeur -
Nom | Expression / Valeur |
---|---|
Rouleau étudiant Non | # [payload ['RollNo']] |
Nom d'étudiant | # [payload ['Name']] |
Évaluation dynamique
Ce composant principal est utilisé pour sélectionner dynamiquement un script dans l'application Mule. Nous pouvons également utiliser un script hardcore via le composant Transform Message, mais l'utilisation du composant Dynamic Evaluate est un meilleur moyen. Ce composant de base fonctionne comme suit -
- Premièrement, il évalue une expression qui devrait aboutir à un autre script.
- Ensuite, il évalue ce script pour le résultat final.
De cette façon, cela nous permet de sélectionner dynamiquement le script plutôt que de le coder en dur.
Exemple
Voici un exemple de sélection d'un script dans la base de données via un paramètre de requête Id et de stockage de ce script dans une variable nommée MyScript . Maintenant, le composant d'évaluation dynamique accédera à la variable pour appeler les scripts afin qu'il puisse ajouter une variable de nom à partir deUName paramètre de requête.
La configuration XML du flux est donnée ci-dessous -
<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>
Le script peut utiliser des variables de contexte telles que message, charge utile, vars ou attributs. Toutefois, si vous souhaitez ajouter une variable de contexte personnalisée, vous devez fournir un ensemble de paires clé-valeur.
Configuration de l'évaluation dynamique
Le tableau suivant fournit un moyen de configurer le composant Dynamic Evaluate -
Champ | Valeur | La description | Exemple |
---|---|---|---|
Expression | Expression DataWeave | Il spécifie l'expression à évaluer dans le script final. | expression = "# [vars.generateOrderScript]" |
Paramètres | Expression DataWeave | Il spécifie des paires clé-valeur. | # [{joiner: 'and', id: payload.user.id}] |
Composant de référence de flux
Si vous souhaitez acheminer l'événement Mule vers un autre flux ou sous-flux et revenir dans la même application Mule, le composant de référence de flux est la bonne option.
Caractéristiques
Voici les caractéristiques de ce composant de base -
Ce composant de base nous permet de traiter l'ensemble du flux référencé comme un composant unique dans le flux de courant.
Il divise l'application Mule en unités discrètes et réutilisables. Par exemple, un flux répertorie les fichiers régulièrement. Il peut faire référence à un autre flux qui traite la sortie de l'opération de liste.
De cette façon, plutôt que d'ajouter toutes les étapes de traitement, nous pouvons ajouter des références de flux qui pointent vers le flux de traitement. La capture d'écran ci-dessous montre que le composant principal de référence de flux pointe vers un sous-flux nomméProcessFiles.
Travail
Le fonctionnement du composant Flow Ref peut être compris à l'aide du diagramme suivant -
Le diagramme montre l'ordre de traitement dans l'application Mule lorsqu'un flux fait référence à un autre flux dans la même application. Lorsque le flux de travail principal de l'application Mule est déclenché, l'événement Mule parcourt et exécute le flux jusqu'à ce que l'événement Mule atteigne la référence de flux.
Après avoir atteint la référence de flux, l'événement Mule exécute le flux référencé du début à la fin. Une fois que l'événement Mule a terminé d'exécuter le flux de référence, il revient au flux principal.
Exemple
Pour une meilleure compréhension, let us use this component in Anypoint Studio. Dans cet exemple, nous utilisons un écouteur HTTP pour GET un message, comme nous l'avons fait dans le chapitre précédent. Ainsi, nous pouvons faire glisser et déposer le composant et configurer. Mais pour cet exemple, nous devons ajouter un composant de sous-flux et définir le composant Payload sous celui-ci, comme indiqué ci-dessous -
Ensuite, nous devons configurer Set Payload, en double-cliquant dessus. Ici, nous donnons la valeur «Sous-flux exécuté» comme indiqué ci-dessous -
Une fois la configuration réussie du composant de sous-flux, nous avons besoin du composant de référence de flux à définir après Set Payload of Main Flow, que nous pouvons faire glisser et déposer depuis la palette Mule comme indiqué ci-dessous
Ensuite, lors de la configuration du composant de référence de flux, nous devons choisir Nom du flux sous l'onglet Générique comme indiqué ci-dessous -
Maintenant, enregistrez et exécutez cette application. Pour tester cela, allez dans POSTMAN et tapezhttp:/localhost:8181/FirstAPP dans la barre d'URL, et vous obtiendrez le message, Sous-flux exécuté.
Composant enregistreur
Le composant de base appelé logger nous aide à surveiller et à déboguer notre application Mule en enregistrant des informations importantes telles que les messages d'erreur, les notifications d'état, les charges utiles, etc. Console.
Avantages
Voici quelques avantages du composant Logger -
- Nous pouvons ajouter ce composant de base n'importe où dans le flux de travail.
- Nous pouvons le configurer pour enregistrer une chaîne que nous avons spécifiée.
- Nous pouvons le configurer sur la sortie d'une expression DataWeave écrite par nos soins.
- Nous pouvons également le configurer sur n'importe quelle combinaison de chaînes et d'expressions.
Exemple
L'exemple ci-dessous affiche le message «Hello World» dans Set Payload dans un navigateur et enregistre également le message.
Voici la configuration XML du flux dans l'exemple ci-dessus -
<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>
Composant de message de transfert
Le composant de message de transformation, également appelé composant de transfert, nous permet de convertir les données d'entrée dans un nouveau format de sortie.
Méthodes pour construire la transformation
Nous pouvons construire notre transformation à l'aide des deux méthodes suivantes -
Drag-and-Drop Editor (Graphical View)- C'est la première méthode et la plus utilisée pour construire notre transformation. Dans cette méthode, nous pouvons utiliser le mappeur visuel de ce composant pour glisser-déposer les éléments de la structure de données entrantes. Par exemple, dans le diagramme suivant, deux arborescences montrent les structures de métadonnées attendues de l'entrée et de la sortie. Les lignes qui connectent l'entrée au champ de sortie représentent le mappage entre deux vues arborescentes.
Script View- La cartographie visuelle de Transformation peut également être représentée à l'aide de DataWeave, un langage pour le code Mule. Nous pouvons coder certaines transformations avancées telles que l'agrégation, la normalisation, le regroupement, la jonction, le partitionnement, le pivotement et le filtrage. L'exemple est donné ci-dessous -
Ce composant de base accepte essentiellement les métadonnées d'entrée et de sortie pour une variable, un attribut ou une charge utile de message. Nous pouvons fournir des ressources spécifiques au format pour les éléments suivants -
- CSV
- Schema
- Schéma de fichier plat
- JSON
- Classe d'objets
- Type simple
- Schéma XML
- Nom et type de colonne Excel
- Nom et type de colonne à largeur fixe