Dans mon expérience de développement de flow service et de de demi-flux dans le designer webMethods, j’ai gardé quelques petites astuces plus ou moins connues qui peuvent vous faire gagner du temps et que je souhaite vous faire partager.
1ère Astuce : Tester la valeur d’une string
Le cas 1 est un cas que je vois souvent lors de revues de code.
Faire une séquence pour le cas vide et une séquence pour le cas null alors que fonctionnellement la règle sera la même.
Il faut alors utiliser le cas 2 avec une regex.
utiliser /[^ ]/ pour dire commence par un caractère, cela vérifie que la string d’entrée n’est ni vide ni null.
2ème Astuce : Utiliser le String.replace
Toujours dans la manipulation des objets string et Regex, un petit service que l’on trouve dans le package pub peut s’avérer très utile, le pub.string:replace:
Dans l’image précédente j’ai exécuté le service replace avec en entrée une string IdFact_an2_1123
J’ai cherché à remplacer les caractères entre underscore (an2) avec une string REPLACE.
Ce qui donne en sortie IdFact_REPLACE_1123
C’est un cas que l’on a souvent à faire et qui peut être fait facilement grâce à cette fonction.
Autre cas si on veut replacer les 3 dernier caractères :
en entrée : IdFact123
Regex: ^(.*)(.{3})$
en sortie IdFactReplace.
PS : ne pas oublier le useRegex à true 😉
3ème Astuce : Créer un service universel pour vos trans-codifications
Ah les fameuses transco ! Vous en aurez besoin dans presque chaque demi-flux et parfois chaque développeur a tendance à le faire à sa sauce.
Pour les trans-codifications simple de valeur A vers B, créer un service réutilisable par tout le monde dans un package commun ou si vous voulez éviter les dépendances à reprendre dans chaque package de demi-flux peut aussi vous faire gagner du temps.
En voici un que j’ai appelé fromXtoYUniversal :
d’abord voici les input du service.
inputValue: la string qui doit subir la transformation.
defaultValue: la valeur par défaut si transformation non trouvée.
TranscoValues, la table de trans-codification avec clé-valeur.
Le Service en lui même :
Tout d’abord on initialise la sortie avec la valeur par défaut.
Ensuite on vérifie si notre input n’est pas null ou vide, puis on boucle sur notre table de transco à la recherche de notre valeur.
Une fois trouver on quitte la boucle et on clean nos variables.
Exemple concret d’utilisation :
Ici en entrée on a le code de civilité Mlle, Mr et on a besoin du libelle.
Le service retournera donc Mdemoiselle au vue de l’inputValue
Evidemment se service est perfectible et peut être amélioré pour chercher vos trans-codification dans une bdd avec des adapters, dans un fichier plat, dans des propriétés globales…
Mais avoir une façon centraliser de le faire évites les erreurs.
Dernière Astuce : utilisation du package PS Utilities
Le package PS Utilities est disponible ici.
Il s’agit d’un package développé par des personnes de chez softwareAg.
Vous y trouverez tout un tas de Flow Services utile qui ne sont pas dans wm.public.
A notez aussi par exemple la présence dans ce package d’une gestion de liste beaucoup plus performante que le pub.list:appendToDocumentList.
Bon développement à vous.