Ich arbeite derzeit an einem Smart Form in ABAP und habe ein Problem mit Fehlermeldungen. Wenn ein Pflichtfeld nicht ausgefüllt ist, möchte ich, dass das Programm die Verarbeitung stoppt und dem Benutzer eine Fehlermeldung anzeigt.
Momentan wird das Programm auch nach Auftreten des Fehlers weiter ausgeführt, was zu unvollständigen oder falschen Ausgaben im Formular führt.
Wie kann ich dieses Szenario richtig handhaben, sodass der Prozess sofort stoppt, wenn der Fehler auftritt? Sollte ich eine Ausnahme oder eine andere Methode verwenden, um dies zu erreichen?
Ich wäre sehr dankbar, wenn Sie einige Codebeispiele oder Best Practices zum Umgang mit solchen Situationen in Smart Forms oder SAP-Skripten teilen könnten.
Die Prüfung sollte VOR dem Aufruf des Smartforms (oder jeder anderen Form der Druckausgabe) erfolgen. Wenn das nicht geht (weil z.B. die SAP in einem Standardprodukt dafür nichts vorgesehen hat um Kundenprüfungen einfließen zu lassen), bietet SF zumindest eine nicht ganz saubere Lösung dafür. In der globalen Initialisierung kann man eine der in der Schnistelle definierten Exceptions auslösen und somit die Verarbeitung abbrechen. Das Problme hier ist, dass der Aufrufer darauf auch reagieren muss und die weitere Verarbeitung (auch wenn der Ausdruck abgebrochen wurde) nicht einfach fortsetzt. Deswegen, wie schon gesagt, sollten solche Prüfungen immer VOR dem Aufruf eines Ausdrucks erfolgen.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.