M vous permet également d’écrire des fonctions personnalisées qui peuvent effectuer des tâches très spécifiques à plusieurs reprises.
Comme exemple de fonction personnalisée très simple, essayez d’ajouter l’extrait de code suivant à une nouvelle requête vide :
let DiscountAnalysis = (Discount as number)
if Discount < 10 then “Poor” else “Excellent” in DiscountAnalysis
Lorsque vous fermerez l’éditeur avancé, vous verrez que cette requête a été reconnue comme étant une fonction M et apparaît comme telle dans la liste des requêtes. Vous pouvez le voir dans la Figure (où je l’ai renommé “DiscountAnalysis”).
Fonctions définies par l’utilisateur dans M
Vous pouvez maintenant appeler la fonction à tout moment de manière interactive en saisissant une valeur comme remise et en cliquant sur le bouton Appeler. Vous pouvez également utiliser cette fonction dans d’autres fonctions M. En effet, c’est probablement la raison pour laquelle vous avez créé une fonction personnalisée en premier lieu.
Si vous souhaitez voir une fonction plus avancée, jetez un œil à l’extrait de code suivant, qui complète une date pour ajouter des zéros au jour et au mois si ceux-ci sont obligatoire:
let let
in in
FormatDate = (InDate as date) =>
Source = Text.PadStart(Text.From(Date.Month(InDate)),2,”0″) & “/”
& Text.PadStart(Text.From(Date.Day(InDate)),2,”0″) & “/” &Text. From(Date.Year(InDate))
Source
FormatDate
Ajout de commentaires au code M
Le code M complexe peut être extrêmement dense. Vous aurez donc probablement besoin de moyens de vous rappeler pourquoi vous avez créé un processus lorsque vous y reviendrez des semaines ou des mois plus tard.
Un moyen simple de vous faciliter la vie consiste à ajouter des commentaires au code M. Vous pouvez le faire à la fois pour le code que vous avez écrit et pour les requêtes qui ont été générées automatiquement.
Il existe deux façons d’ajouter des commentaires.
Commentaires sur une seule ligne
Pour commenter une seule ligne (ce que vous pouvez faire au début de la ligne ou au milieu de la ligne), ajoutez simplement deux barres obliques, comme ceci :
// Ceci est un commentaire
Tout, depuis les deux barres obliques jusqu’à la fin de la ligne, sera considéré comme un commentaire et ne sera pas évalué par M.
Commentaires multilignes
Les commentaires multilignes peuvent couvrir plusieurs lignes, voire une partie d’une ligne. Ils couvrent tout le texte qui est joint
in /∗ … ∗/.
/* This is a comment
Over
Several lines */
Tout à l’intérieur du /∗ … ∗/
sera considéré comme un commentaire et ne sera pas évalué par M.