Code-Compiler hat Problem mit elseif: Fehler "Unknown element"
Zur Info:
Der Code-Compiler für Formulare hat ein Problem mit elseif-Anweisungen, wenn diese Variablen, Felder, Konstanten, etc. enthalten die "nicht existieren".
Dies ist z.B. der Fall wenn man ein Template sowohl für Einkaufs- als auch Verkaufsbelege verwendet und darin über if-Verzweigungen (z.B. hasfield(AUF_Art/BESTELL_Art)) die entsprechenden Felder/Variablen anspricht.
Bei der Verwendung von if- und else-Anweisungen tritt der Fehler nicht auf.
Ein Beispiel:
'Masterdokument für das setzen von PDF- und Email-Metadaten
'Einstellungen für Einkauf
if hasField("BESTELL_Art")
Do something
endif
' Einstellungen für Verkauf
if hasField("AUF_Art")
if ( AUF_Lieferart = "")
elseif ( AUF_Lieferart = "DHL" )
elseif ( AUF_Lieferart = "UPS" )
...
else
endif
endif
Ruft man das obige Beispiel aus dem Einkaufs-Druckdialog auf, so wird der Fehler "Unknown element AUF_Lieferart" angezeigt, die Zeile mit "elseif ( AUF_Lieferart = "DHL" )" markiert und die Belegerstellung abgebrochen.
Obwohl der Compiler gar nicht in den Auftrags-Zweig springen dürfte, moniert er das Auftragsfeld "AUF_Lieferart" als unbekannt an!
Dies scheint ein Fehler im Compiler zu sein und wird zur Zeit vom MO-Support geprüft.
Eine Lösung wird es vermutlich nicht kurzfristig geben.
Bis dahin kann man den Fehler nur umgehen, indem man entweder die elseif-Anweisungen in if/else-Konstrukte umschreibt oder für jeden Bereich ein Template erstellt, so dass keine "unknown elements" im Formular vorhanden sind.
Da mich die Fehlersuche einen ganzen Nachmittag gekostet hat, hoffe ich anderen hiermit etwas Zeit zu sparen!
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.
Kommentare
0 Kommentare