Entrainement
Module
Découvrez comment gérer les erreurs dans Dynamics 365 Business Central en utilisant le langage d’application (AL).
Ce navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Tout comme Excel et le langage DAX possèdent une fonction IFERROR
, Power Query a sa propre syntaxe pour tester et intercepter les erreurs.
Comme mentionné dans l’article sur la gestion des erreurs dans Power Query, les erreurs peuvent apparaître au niveau de l’étape ou de la cellule. Cet article se concentre sur la façon dont vous pouvez intercepter et gérer les erreurs en fonction de votre propre logique spécifique.
Notes
Pour illustrer ce concept, cet article utilise un classeur Excel comme source de données. Les concepts présentés ici s’appliquent à toutes les valeurs de Power Query et non uniquement à celles provenant d’un classeur Excel.
L’exemple de source de données de cette démonstration est un classeur Excel avec le tableau suivant.
Ce tableau d’un classeur Excel contient des erreurs Excel telles que #NULL!, #REF!, et #DIV/0! dans la colonne Taux standard . Lorsque vous importez cette table dans l’éditeur Power Query, l’image suivante montre à quoi elle ressemble.
Notez comment les erreurs du classeur Excel sont affichées avec la valeur [Error]
dans chacune des cellules.
Dans cet article, vous apprenez à remplacer une erreur par une autre valeur. En outre, vous apprenez également à intercepter une erreur et à l’utiliser pour votre propre logique spécifique.
Dans ce cas, l’objectif est de créer une nouvelle colonne Taux final qui utilise les valeurs de la colonne Taux standard. S’il existe des erreurs, elle utilise la valeur de la colonne de Taux spécial correspondant.
Pour créer une colonne personnalisée, accédez au menu Ajouter une colonne et sélectionnez Colonne personnalisée. Dans la fenêtre Colonne personnalisée, entrez la formule try [Standard Rate] otherwise [Special Rate]
. Nommez ce nouveau Taux final de colonne.
Cette formule tente d’évaluer la colonne Taux standard et génère sa valeur si aucune erreur n’est trouvée. Si des erreurs sont trouvées dans la colonne Taux standard, la sortie est la valeur définie après l’instruction otherwise
, qui, dans ce cas, est la colonne Taux spécial.
Après avoir ajouté les types de données corrects à toutes les colonnes du tableau, l’image suivante montre ce à quoi la table finale ressemble.
Notes
En guise d’approche alternative, vous pouvez également entrer la formule try [Standard Rate] catch ()=> [Special Rate]
, qui équivaut à la formule précédente, mais en utilisant le mot clé catch avec une fonction qui ne nécessite aucun paramètre.
Le mot clé catch
a été introduit dans Power Query en mai 2022.
À l’aide de l’exemple de source de données comme dans la section précédente, le nouvel objectif est de créer une colonne pour le Taux final. Si la valeur du Taux standard existe, alors cette valeur est utilisée. Sinon, la valeur de la colonne Tarif spécial est utilisée, à l’exception des lignes ayant une erreur #REF!
.
Notes
Le seul objectif de l’exclusion de l’erreur #REF!
est à des fins de démonstration. Avec les concepts présentés dans cet article, vous pouvez cibler tous les champs de votre choix à partir de l’enregistrement d’erreur.
Lorsque vous sélectionnez l’un des espaces blancs en regard de la valeur d’erreur, vous obtenez le volet d’informations en bas de l’écran. Le volet d’informations contient à la fois la raison de l’erreur DataFormat.Error
et le message d’erreur Invalid cell value '#REF!'
:
Vous ne pouvez sélectionner qu’une seule cellule à la fois. Vous pouvez donc examiner efficacement les composants d’erreur d’une seule valeur d’erreur à la fois. C’est à ce stade que vous créez une colonne personnalisée et utilisez l’expression try
.
Pour créer une colonne personnalisée, accédez au menu Ajouter une colonne et sélectionnez Colonne personnalisée. Dans la fenêtre Colonne personnalisée, entrez la formule try [Standard Rate]
. Nommez cette nouvelle colonne Toutes les erreurs.
L’expression try
convertit les valeurs et les erreurs en une valeur d’enregistrement qui indique si l’expression try
a géré une erreur ou non, de même que la valeur appropriée ou l’enregistrement d’erreur.
Vous pouvez développer cette colonne nouvellement créée avec des valeurs d’enregistrement et examiner les champs disponibles à développer en sélectionnant l’icône en regard de l’en-tête de colonne.
Cette opération expose trois nouveaux champs :
null
.null
.
Pour plus d’informations, vous pouvez développer la colonne All Errors.Error pour obtenir les trois composants de l’enregistrement d’erreur :
Après avoir effectué l’opération de développement, le champ All Errors.Error.Message affiche le message d’erreur spécifique qui vous indique exactement quelle erreur Excel possède chaque cellule. Le message d’erreur est dérivé du champ Message d’erreur de l’enregistrement d’erreur.
Maintenant, avec chaque message d’erreur dans une nouvelle colonne, vous pouvez créer une colonne conditionnelle avec le nom Taux final et les clauses suivantes :
null
, la sortie sera la valeur de la colonne Taux standard.Invalid cell value '#REF!'.
, la sortie est la valeur de la colonne Taux spécial.
Après avoir conservé uniquement les colonnes Compte, Taux standard, Taux spécialet Taux final, et ajouté du type de données correct pour chaque colonne, l’image suivante montre à quoi ressemble la table finale.
Vous pouvez également créer une colonne personnalisée à l’aide des mots clés try
et catch
.
try [Standard Rate] catch (r)=> if r[Message] <> "Invalid cell value '#REF!'." then [Special Rate] else null
Entrainement
Module
Découvrez comment gérer les erreurs dans Dynamics 365 Business Central en utilisant le langage d’application (AL).