Free Trial

Forum

Trouvez des réponses, posez des questions, et partagez votre expertise d’Alteryx.
TIPS de la semaine

Chaque semaine, découvrez de nouvelles astuces et bonnes pratiques pour devenir un expert !

Voir l'index
SOLVED

Macros de traitement par itération

pwade
5 - Atom

Hello,

 

Je suis nouveau avec les macros et je voulais créer un macro pour automatiser les tests d'une application Alteryx.

 

Le workflow de l'application des déjà finis. L'appli prend en entrée 5 paramètres(nom du projet, xdd, ydd, surface ). En sortie, j'ai les paramètres d'entrées + résultat (dont 6 paramètres de sorties ).  

 

Je veux tester l'appli avec un jeux de données contenant 34 enregistrements. 

Je ne trouve pas pratique de copier et coller chaque ligne d'enregistrement jusqu'à 34....du coup je voulais me lancer sur les macros.

 

D'une manière du concrète, je veux créer un macros qui:

lut l'enregistrement(i) -> exécute l'appli -> écrit le résultat dans la base etc. (de manière itérative)

 

J'ai regardé un peu sur le doc et j'ai compris que qu'il y'a 4 types de macros: standard, batch, itératif etc mais je ne comprend pas commment je peux l'utiliser dans mon cas.

 

Est-ce quelqu'un peut m'aider svp.

 

Merci d'avance

 

 

 

 

 

 

7 REPLIES 7
StephaneP
Alteryx Alumni (Retired)

Salut @pwade,

 

Effectivement ce sont les macros qui vont répondre à ton besoin et plus particulièrement la macro batch.
La macro batch prends une liste en entrée et pour chaque liste effectue le traitement, génère le résultat et refait la même chose pour chacune des lignes. Les résultats sont alors consolidés dans une seule et même sortie.

 

Pour découvrir les macros je te conseille donc:

StephaneP_0-1621157538948.png

 

Dans topic recherche Macro et il y en a plusieurs de débutant à expert

StephaneP_1-1621157848244.png

 

 

Dans les grandes lignes il va te falloir:

  1. transformer ton workflow en macro batch. Celui ci aura un paramètre CONTROL (le ?) qui recevra tes 34 lignes avec tes 5 paramètres. Il produira une sortie macro. l'adaptation consistera à extraire ces paramètres pour les passer à ton workflow existant. Sans doute aura tu besoin des objets d'interface
  2. créer un workflow d'appel de cette macro auquel tu passeras ton fichier de paramètres à 34 lignes

Mais visualise les exemples des liens ci-dessus et ce sera plus clair pour toi.

 

Bon courage et à dispo si besoin de plus de détail,

 

Enjoy Alteryx !

 

Stéphane

Stéphane Portier
Sales Engineer
Alteryx
Ladarthure
14 - Magnetar
14 - Magnetar

Bonjour @pwade,

 

pourrais-tu nous montrer ton workflow/application d'origine et quelle partie tu souhaites transformer en macro afin que l'on puisse t'aider au mieux?

StephaneP
Alteryx Alumni (Retired)

@pwade ,

 

Vu qu'une 1ère macro n'est pas toujours évidente je t'ai préparé un petit exemple.

 

1. tu te créée ton 1er workflow qui fait ton traitement pour 1 ligne. Workflow initial.yxmd

StephaneP_0-1621237378868.png

StephaneP_1-1621237463925.png

 

2. tu la transformes en macro en lui passant les paramètres que tu veux passer à chaque fois (donc ici, Mon projet, xdd, ydd et surface): ExampleMacro.yxmc

StephaneP_2-1621237571240.png

Ici on est dans le cas d'une macro batch d'où l'utilisation de l'objet d'interface "Paramètre de contrôle" pour chaque paramètre à passer.  Il n'y a pas d'entrée dans cette exemple, juste des paramètres mais ce n'est pas toujours le cas. Et il y a une sortie qui sera la consoidation de tous les résultats. A noter justement que pour simplifier cette sortie j'ai activé cette option dans le menu "Concepteur d'Interface" du menu "View"

StephaneP_3-1621237743408.png

3. tu te créé un nouveau workflow qui appel ta macro (ou tu updates ton workflow existant en remplaçant le traitement par ta macro): Workflow final.yxmc

StephaneP_4-1621237825328.png

Pour insérer ta macro tu peux faire clic droit sur le canevas et faire insérer, les macros sont tout en bas.

StephaneP_6-1621237993980.png

 Et là tu débugges 😁

Ne te lances pas tête baissée dans la reproduction de cet exemple. Regarde d'abord les leçons interactives, voir même 1 vidéo cela te simplifiera la vie.

 

N'hésites pas à reposer des questions ici, il y aura tjs quelqu'un pour te répondre.

Et comme le proposais @Ladarthure tu peux aussi nous pousser un petit exemple concret si c'est un peu compliqué au début.

 

Enjoy !

 

Note: la macro est intégrée dans Workflow Final.yxzp

Stéphane Portier
Sales Engineer
Alteryx
StephV
Alteryx Alumni (Retired)

Bonjour @pwade,

 

Merci beaucoup pour ta participation au forum et ta question !

 

Si la réponse de @StephaneP t'a aidé, pourrais-tu l'"Accepter comme solution", tu aideras ainsi d'autres utilisateurs Alteryx.

 

Sinon, tu peux aussi nous partager ton worklflow/application d'origine comme le suggérait @Ladarthure ?

 

Merci beaucoup et une très bonne journée !

Steph Vitale-Havreng
StephV
Alteryx Alumni (Retired)

Quelle réactivité 😎! Merci beaucoup @pwade ! 

 

Si tu as d'autres questions, n'hésitez pas à les poster sur le forum, la communauté est là pour t'aider ! 

 

Excellente journée à toi, 

 

Steph Vitale-Havreng
pwade
5 - Atom

Bonjour à toutes et tous 😄

 

Yes, j'ai réussi à faire un macros batch grâce à vous. Merci à @StephaneP, @Ladarthure et à StephJ pour votre aide.

 

J'avais une petite question sur les paramètres de contrôle. Lors de mon premier test avec 10 enregistrements en entrés le macros m'avait généré 10 *10 = 100 en sortie. Je rappelle que j'avais définis de paramètre de contrôle(PC). Apres, j'ai compris qu'il fallait définir un PC etc.

 

Ma question est que pourquoi si je ne définis pas de PC le macros macros généré les N enregistrement(s) en N fois ?

 

 

En vous remerciant,

 

Pape W.

 

 

StephaneP
Alteryx Alumni (Retired)

Super @pwade que tu es réussi ta 1ère batch macro. Normallement plus rien ne peux t'arrêter désormais 😄

 

Concernant le fait de déclarer un paramètre de contrôle influ sur la manière dont il traite la table de contrôle.

Si tu lui en déclares 1 il va tenter de faire l'équivalent d'un join sur cette colonne donc 10 en sortie:

StephaneP_0-1621348372783.png

 

Si tu n'en déclares pas il va générer toutes les combinaisons possibles (produit cartésien) entre l'entrée et le paramètre, donc 10x10:

StephaneP_1-1621348506137.png

C'est trés bien expliqué dans la vidéo interactive sur les batchs macros: Creating a Batch Macro 

Chapitre "Grouping" pour la théorie et chapitre "Grouping Options" pour un cas concret.

 

Cela correspond à 2 besoins en fait. Appliquer des paramètres en fonction d'un critère ou au contraire traiter en masse toutes les options pour toutes les données.

 

Bye

 

Stéphane

Stéphane Portier
Sales Engineer
Alteryx
Labels