Gestion des erreurs dans Power Automate via le branchement parallèle
Découvrez l
Je vais vous montrer comment ajouter un paramètre dans la fonction M dans votre requête de table de dates . Cet exemple est basé sur une question qui a été soulevée sur le . Vous pouvez regarder la vidéo complète de ce tutoriel au bas de ce blog.
La question était de savoir comment passer la numérotation du 1er jour de la semaine de 0 à 1 . Notez que cela ne change pas le début réel du jour de la semaine. Dans ce tableau de dates, le début de la semaine sera toujours lundi. Il s'agit simplement de désigner le lundi comme le jour 1 au lieu du jour 0.
Ce processus n'est pas nécessairement complexe, mais vous avez besoin d'une compréhension de base de la structure du langage M. Si vous êtes membre de LuckyTemplates, vous pouvez consulter le . L'introduction touche au sujet.
Table des matières
La fonction M et la table de date étendue
Permettez-moi de commencer par entrer dans le Power Query . J'ai déjà copié la fonction table de dates M ici.
J'ai obtenu la fonction M de la catégorie M Code Showcase du forum LuckyTemplates . Le code se trouve sous la rubrique .
Si j'ouvre l' éditeur avancé , voici le code.
Il y a beaucoup de code M là-dedans, ce qui pourrait être distrayant.
Création d'une requête de test
Puisqu'il se passe trop de choses dans la fonction M, je vais plutôt commencer par une nouvelle requête vide .
Je vais nommer cette requête de test .
Ensuite, je vais ouvrir l' éditeur avancé .
Parce que je vais créer une fonction, je vais ajouter une paire de parenthèses et supprimer tout le code par défaut qu'il contient.
Pour démarrer la fonction, je vais déclarer un paramètre optionnel .
Ensuite, je vais ajouter une variable. J'appellerai cette variable WDStartNum car elle représentera le numéro de début du jour de la semaine. J'ai aussi besoin de déclarer son type, donc je vais taper number .
Je déclare le type pour éviter les erreurs. Si je le laisse comme n'importe quel type, cela signifie qu'il pourrait transmettre une table ou une valeur de date au lieu de simplement transmettre des nombres.
L'étape suivante consiste à ajouter la clause let et la clause in .
Sous la clause let, j'ai besoin d'un nom de variable. Je vais donc appeler cette variable WDStart .
Maintenant, je dois tester si le WDStartNum a été passé. S'il réussit, cela n'équivaudra pas à null . Je vais donc déclarer que si le WDStartNum n'est pas égal à null, je veux qu'une valeur soit retournée .
Quant à la clause in, je veux que la même étape soit adoptée. Donc je vais juste mettre WDStart là, c'est ce que nous avons nommé notre variable plus tôt sous la clause let.
Une fois que j'appuie sur Terminé, la fonction sera créée. Je vais donc essayer de transmettre une valeur à cette fonction.
Je vais essayer de taper la lettre "a".
Rappelez-vous que plus tôt j'ai déclaré que la valeur doit être un nombre. Parce qu'il reconnaît que la valeur que j'ai entrée ne répond pas à cette exigence, il ne me permettra pas d'entrer ce paramètre.
Je vais donc supprimer cela et laisser l'espace vide.
Une fois que je clique sur Invoke, il renvoie une valeur de 0.
Pour en revenir à ma requête d'origine, il indique que si la valeur n'est pas égale à null, le WDStartNum doit être renvoyé. S'il est égal à null, un 0 doit être renvoyé.
Alors que 0 est correct.
Cette fois, je vais essayer de transmettre une valeur en modifiant le nombre dans TestQuery. Il est vrai qu'il renvoie un "1" une fois que j'ai appuyé sur Entrée.
Maintenant, laissez-moi essayer de passer 2020 dans le TestQuery. Une fois que j'ai appuyé sur Entrée, il renvoie également 2020.
De toute évidence, je ne veux pas que cela se produise. Puisque je veux une valeur qui représente le début de la semaine, je veux qu'un 0 ou un 1 apparaisse. Cela signifie que je dois créer un autre test pour voir si le nombre entré est un 0 ou un 1. Je peux utiliser la fonction List.Contains pour cela.
Utilisation de List.Contains
J'ai créé une requête vide et entré List.Contains sans utiliser de parenthèses.
Une fois que j'appuie sur Entrée, je peux voir la documentation sur cette fonction.
List.Contains indique si la liste contient une valeur.
Il nécessite donc une liste comme premier paramètre, puis une valeur est ajoutée après cela. Si cette valeur se trouve dans la liste, elle renvoie true. Sinon, il retournera faux.
J'ouvrirai à nouveau l' éditeur avancé afin de pouvoir apporter les modifications nécessaires à ma requête.
Au lieu de tester si une valeur n'est pas égale à null, je vais utiliser List.Contains .
Maintenant, je vais donner une liste de valeurs à appliquer à cette fonction.
J'utiliserai des accolades comme initialiseur de liste. À l'intérieur de ces accolades, je mettrai 0, 1. J'ajouterai une virgule après avoir fermé cette accolade.
Pour le deuxième paramètre, je vais utiliser WDStartNum. Ensuite, j'ajouterai la parenthèse fermante.
Avec cela en place, cela signifie qu'un 0 ou un 1 devrait me donner le WDStartNumber. Si autre chose qu'un 0 ou un 1 est placé, je devrais obtenir un résultat de 0.
Laissez-moi tester cela en mettant 2020 dans le TestQuery. Comme prévu, cela renvoie un "0" (zéro).
C'est parce que la valeur 2020 n'est pas dans la liste.
Ajout du paramètre dans la fonction M
Maintenant que je suis sûr que le code fonctionne, je peux enfin le mettre dans la table de date réelle et la fonction M. Je vais ouvrir l' éditeur avancé puis je vais copier la logique .
Ensuite, je vais entrer dans la requête de table de dates.
Je vais ouvrir la fonction M d'origine via l' éditeur avancé .
Ensuite, je vais y coller mon code. Assurons-nous qu'il y a une virgule à la fin de la ligne.
Ensuite, je vais mettre en surbrillance et copier mon paramètre name .
Ensuite, je vais ajouter ce paramètre ici .
Notez que je dois d'abord ajouter une virgule à la fin de la ligne existante, puis je dois déclarer ce paramètre comme étant optionnel . Ensuite, je peux placer WDStartNum et ajouter le type .
J'ai ajouté le paramètre et j'ai également intégré la logique. Mais je dois aussi m'assurer d'obtenir les résultats escomptés. Je vais donc chercher la ligne de code qui couvre le jour de la semaine.
Ensuite, je vais ajouter + WDStart .
Je clique sur Terminé pour fermer l'éditeur. Ensuite, je vais invoquer la requête.
Pour la StartDate, je mettrai le 1er janvier 2020, puis j'utiliserai le 31 décembre 2020 comme EndDate.
J'utiliserai "7" comme mois de début de l'année fiscale, puis je mettrai "0" comme WDStartNum.
Je clique sur Invoquer. Maintenant, j'ai le tableau des dates.
Je vais le renommer pour qu'il soit facilement identifiable.
Maintenant, je vais vérifier les résultats.
Ceci est ma colonne DayOfWeek .
Cela montre que lundi est revenu à 0.
Pour en revenir à la question dans le Forum, j'ai besoin de changer le numéro du début de la semaine à 1 au lieu de 0. Je vais donc juste changer cela dans la mesure.
Lorsque j'appuie sur Entrée, le lundi sera désormais le jour 1 au lieu du jour 0.
En regardant la plage de nombres, elle va maintenant de 1 à 7 au lieu de 0 à 6.
Que se passe-t-il si je passe une valeur nulle ?
Ensuite, le DayOfWeek du lundi revient à 0.
Utilisation de la fonction M pour créer une table de dates LuckyTemplates étendue
Guide du débutant sur le code M dans LuckyTemplates
Configuration d'une date de début et d'une date de fin dynamiques pour les tables de dates Power Query
Conclusion
C'est ainsi que vous pouvez ajouter un paramètre supplémentaire directement dans la fonction M de votre requête de table de dates. Le processus n'est pas du tout complexe, comme je l'ai mentionné plus tôt. Tant que vous avez une source pour le code M, c'est assez facile à partir de là.
Encore une fois, vous pouvez toujours consulter le cours Advanced Data Transformations & Modeling dans Online si vous n'avez aucune connaissance du fonctionnement des codes M.
Tous mes vœux,
Mélisse
***** Apprendre LuckyTemplates ? *****
Découvrez l
Découvrez comment comparer facilement des tables dans Power Query pour signaler les différences et optimiser vos analyses de données.
Dans ce blog, vous découvrirez comment diviser les colonnes dans LuckyTemplates par délimiteurs à l'aide de DAX, une méthode efficace pour gérer des modèles de données complexes.
Découvrez comment récolter une valeur avec SELECTEDVALUE DAX pour des calculs dynamiques dans LuckyTemplates.
Calculez la marge en pourcentage à l
Dans ce didacticiel, nous allons explorer une méthode rapide pour convertir du texte en formats de date à l
Dans ce blog, vous apprendrez à enregistrer automatiquement la pièce jointe d
Découvrez comment adapter les cellules Excel au texte avec ces 4 solutions simples pour améliorer la présentation de vos données.
Dans ce didacticiel SSRS Report Builder, découvrez comment utiliser le générateur d
Découvrez les outils pour créer un thème de couleur efficace pour vos rapports LuckyTemplates et améliorer leur apparence.