[GELĂ–ST] AL try catch?

Bild Microsoft Dynamics 365 Business Central (On-Premises Version)
Forumsregeln
Impressum • Community-Knigge • Nutzungsbedingungen • Datenschutzrichtlinie

Bitte unbedingt im Titel angeben, auf welche Version (BC13, BC14, BC15, ...) sich eure Frage bezieht!

[GELĂ–ST] AL try catch?

Beitragvon derPat19 » 21. April 2020 10:50

Hallo, gibt es in der AL Programmierung eig sowas wie ein try catch?

z.b. fehler abfangen wenn ein Datensatz mit einer Codeunit erstellt werden soll, aber schon ein datensatz da ist.

Mit Freundlichen GruĂź
Zuletzt geändert von derPat19 am 21. April 2020 13:46, insgesamt 1-mal geändert.
derPat19
 
Beiträge: 59
Registriert: 19. Dezember 2019 11:19
Arbeitsort: Greiz

Re: AL try catch?

Beitragvon sweikelt » 21. April 2020 11:49

IF NOT xyz.INSERT THEN ....
oder auch
https://docs.microsoft.com/en-us/dynamics-nav/tryfunction-property

die Frage ist, was du erreichen willst
Benutzeravatar
sweikelt
Microsoft Partner
Microsoft Partner
 
Beiträge: 1776
Registriert: 18. November 2010 10:15
Wohnort: Oschatz
Realer Name: Stephan Weikelt
Arbeitsort: Berlin
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 3-2018 | D365BC

Re: AL try catch?

Beitragvon derPat19 » 21. April 2020 11:58

es kommt bei mir ein fehler das ein datensatz net insertet werden kann, weil er schon da ist .... das kann ich doch mit einen try catch in anderen sprachen abfangen, das mĂĽsste ja auch theoretisch in AL gehen
derPat19
 
Beiträge: 59
Registriert: 19. Dezember 2019 11:19
Arbeitsort: Greiz

Re: AL try catch?

Beitragvon elf » 21. April 2020 12:39

derPat19 hat geschrieben:es kommt bei mir ein fehler das ein datensatz net insertet werden kann, weil er schon da ist .... das kann ich doch mit einen try catch in anderen sprachen abfangen, das mĂĽsste ja auch theoretisch in AL gehen


solche globalen try..catch Blöcke gibt es in AL nicht.
Jede einzelne Funktion gibt ein TRUE zurĂĽck, wenn die Funktion fehlerfrei ausgefĂĽhrt wurde, im Fehlerfall ein FALSE, so wie sweikelt es beschrieben hat.
Code: Alles auswählen
if not rec.insert() then
  behandle fehler
else
  mach weiter


oder
Code: Alles auswählen
ohneFehler := rec.insert()
if ohneFehler then
  mach weiter
else
  behandle Fehler
GruĂź aus Zossen bei Berlin
Eddie
Benutzeravatar
elf
 
Beiträge: 220
Registriert: 21. Dezember 2006 15:15
Wohnort: Zossen bei Berlin
Realer Name: Edgar Leifeld
Arbeitsort: Zossen bei Berlin
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV / BC

Re: AL try catch?

Beitragvon Kowa » 21. April 2020 12:54

derPat19 hat geschrieben:das kann ich doch mit einen try catch in anderen sprachen abfangen, das mĂĽsste ja auch theoretisch in AL gehen

Bei ERP-Systemen muss Transaktionssicherheit eines Gesamtprozesses gewährleistet sein, daher geht das nicht einfach so (u.U. mehrere uncommitted changes können beim Auflaufen auf den Fehler offen sein). Erläuterungen dazu aus Sicht von C/AL:
https://vjeko.com/2014/10/17/try-catch-in-cal/
GruĂź, Kai

Frage beantwortet? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, Messenger oder Telefon! DafĂĽr ist dieses Forum da.

Download: Dynamics NAV Object Text Explorer (Alternativlink). MVP Alumni
Benutzeravatar
Kowa
Moderator
Moderator
 
Beiträge: 7835
Registriert: 17. Juni 2005 17:32
Wohnort: Bremen
Realer Name: Kai Kowalewski
Arbeitsort: Osterholz-Scharmbeck
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics 365
Microsoft Dynamics Version: BC, NAV 2018 bis Navision 2.01

Re: AL try catch?

Beitragvon derPat19 » 21. April 2020 13:07

okay danke
Zuletzt geändert von derPat19 am 21. April 2020 13:46, insgesamt 1-mal geändert.
derPat19
 
Beiträge: 59
Registriert: 19. Dezember 2019 11:19
Arbeitsort: Greiz

Re: AL try catch?

Beitragvon sweikelt » 21. April 2020 13:46

... EDIT - da dein letzter Beistrag nun editiert wurde, hat man natürlich nicht mehr den Bezug auf die Frage...das nächste mal mach ich nen QUOTE ;)

Code: Alles auswählen
IF confirm(....) THEN


oder

https://navision24.de/funktionen/dialog/strmenu.htmls

sorry das ich das jetzt schreibe, aber ich empfehle eine Schulung in AL/CAL
Benutzeravatar
sweikelt
Microsoft Partner
Microsoft Partner
 
Beiträge: 1776
Registriert: 18. November 2010 10:15
Wohnort: Oschatz
Realer Name: Stephan Weikelt
Arbeitsort: Berlin
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 3-2018 | D365BC

Re: AL try catch?

Beitragvon derPat19 » 6. Mai 2020 12:11

sweikelt hat geschrieben:sorry das ich das jetzt schreibe, aber ich empfehle eine Schulung in AL/CAL


Alles gut, ja wĂĽrde ich auch empfehlen, wenn mein Chef das zahlt =)
derPat19
 
Beiträge: 59
Registriert: 19. Dezember 2019 11:19
Arbeitsort: Greiz

Re: AL try catch?

Beitragvon Kowa » 1. Februar 2023 17:41

Kowa hat geschrieben:Bei ERP-Systemen muss Transaktionssicherheit eines Gesamtprozesses gewährleistet sein, daher geht das nicht einfach so (u.U. mehrere uncommitted changes können beim Auflaufen auf den Fehler offen sein). Erläuterungen dazu aus Sicht von C/AL:
https://vjeko.com/2014/10/17/try-catch-in-cal/
Bitte beachten: Bei SaaS sind Schreiboperationen in Try Functions möglich :!: , die Dokumentation
Database write transactions in try methods
Because changes made to the database by a try method aren't rolled back, you shouldn't include database write transactions within a try method. By default, the Business Central Server configuration prevents you from doing this. If a try method contains a database write transaction, a runtime error occurs.
stimmt hier nicht mit dem Verhalten ĂĽberein.
OnPrem gibt es den erwähnten Schalter DisableWriteInsideTryFunctions, als Vorgabe auf TRUE.
Thema bei Yammer: https://www.yammer.com/dynamicsnavdev/t ... 2136023040
GruĂź, Kai

Frage beantwortet? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, Messenger oder Telefon! DafĂĽr ist dieses Forum da.

Download: Dynamics NAV Object Text Explorer (Alternativlink). MVP Alumni
Benutzeravatar
Kowa
Moderator
Moderator
 
Beiträge: 7835
Registriert: 17. Juni 2005 17:32
Wohnort: Bremen
Realer Name: Kai Kowalewski
Arbeitsort: Osterholz-Scharmbeck
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics 365
Microsoft Dynamics Version: BC, NAV 2018 bis Navision 2.01


ZurĂĽck zu 365 Business Central (On-Premises)

Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 1 Gast