Training
Module
Handle errors by using application language in Dynamics 365 Business Central - Training
Learn how to handle errors in Dynamics 365 Business Central by using application language (AL).
Deze browser wordt niet meer ondersteund.
Upgrade naar Microsoft Edge om te profiteren van de nieuwste functies, beveiligingsupdates en technische ondersteuning.
Een fout in de formuletaal Power Query M is een indicatie dat het proces voor het evalueren van een expressie geen waarde kan opleveren. Fouten worden gegenereerd door operators en functies die foutvoorwaarden tegenkomen of door de foutexpressie te gebruiken. Fouten worden verwerkt met behulp van de try-expressie . Wanneer er een fout optreedt, wordt een waarde opgegeven die kan worden gebruikt om aan te geven waarom de fout is opgetreden.
Een try-expressie converteert waarden en fouten naar een recordwaarde die aangeeft of de try-expressie een fout heeft verwerkt, of niet, en de juiste waarde of de foutrecord die is geëxtraheerd bij het verwerken van de fout. Denk bijvoorbeeld aan de volgende expressie die een fout genereert en deze vervolgens meteen afhandelt:
try error "negative unit count"
Deze expressie evalueert naar de volgende geneste recordwaarde, waarin de opzoekacties voor velden [HasError], [Error]
[Message]
in het voorbeeld van de eenheidsprijs eerder worden uitgelegd.
[
HasError = true,
Error =
[
Reason = "Expression.Error",
Message = "negative unit count",
Detail = null
]
]
Een veelvoorkomend geval is het vervangen van fouten door standaardwaarden. De try-expressie kan worden gebruikt met een optionele component anders om alleen dat in een compacte vorm te bereiken:
try error "negative unit count" otherwise 42
// equals 42
let Sales =
[
ProductName = "Fishing rod",
Revenue = 2000,
Units = 1000,
UnitPrice = if Units = 0 then error "No Units"
else Revenue / Units
],
//Get UnitPrice from Sales record
textUnitPrice = try Number.ToText(Sales[UnitPrice]),
Label = "Unit Price: " &
(if textUnitPrice[HasError] then textUnitPrice[Error][Message]
//Continue expression flow
else textUnitPrice[Value])
in
Label
In het vorige voorbeeld wordt het Sales[UnitPrice]
veld geopend en wordt de waarde opgemaakt die het resultaat produceert:
"Unit Price: 2"
Als het veld Eenheden nul was, zou het UnitPrice
veld een fout hebben gegenereerd die door de poging zou zijn verwerkt. De resulterende waarde zou dan zijn:
"No Units"
Training
Module
Handle errors by using application language in Dynamics 365 Business Central - Training
Learn how to handle errors in Dynamics 365 Business Central by using application language (AL).