Debugging Scriptcode
Siehe JavaScript und FormCalc Scripting im LiveCycle Designer.
Siehe Scripting MessageBox.
Der Adobe LiveCycle Designer bietet im Gegensatz zu ABAP nur wenige Möglichkeiten den Script-Code zu debuggen und eine Syntaxprüfung vorzunehmen. Hier ist noch viel Verbesserungspotential.
Debugging mit MessageBoxen
Man kann ein improvisiertes Debugging programmieren, indem man Variablen in MessageBoxen ausgibt. Dies kann jedoch gerade in Schleifen oder mit vielen MessageBoxen nervig sein, da hier alle MessageBoxen bestätigt werden müssen.
xfa.host.messageBox("Feldinhalt Objekt XY: " + this.rawValue); //Java-Script
$host.messageBox("Variableninhalt:" + $.rawValue) //Form-Calc
Für die Ausgabe von MessageBoxen muss der Parameter „Dynamic“ beim Formularaufruf gesetzt sein.
Hier im Beispiel soll der Wert der Auftragsnummer ausgegeben werden.
Beim Aufruf des generierten Funktionsbausteins für das Formular wird auch die Druckstruktur LS_DOCPARAMS übergeben.
In dieser Druckstruktur wird der Parameter DYNAMIC auf "X" gesetzt.
Beim Ausgeben des Formulars wird nun diese Meldung ausgegeben.
Es bietet sich an neben dem Feldinhalt auch den Namen des Feldes im LiveCycle Designers oder des Bindingfeldes anzugeben, um das Messagefenster eindeutig zuordnen zu können.
Debugging mit Textfeldern
Man kann sich notfalls auch behelfen, indem man Textfelder auf dem Formular platziert, die man mit Variableninhalten füllt. Diese Variablenfelder können später auch sehr schnell wieder inaktiv gesetzt werden, damit sie nicht mehr auf dem Formular erscheinen, aber trotzdem auch schnell wieder genutzt werden können, indem sie erneut aktiv gesetzt werden.
Ein Wert in 1 Textfeld
Hier wird der Wert aus der Variablen "S_OVM.GV_ANZ_VERGLEICHSMIETE" im Kontext in das Textfeld "Textfeld1" geschrieben.
Textfeld1.rawValue = xfa.record.S_OVM.GV_ANZ_VERGLEICHSMIETE.value; //Java-Script
Das Textfeld wird nun auf dem Formular ausgegeben mit dem Variableninhalt "4". Hier sind es die vier Tabellenzeilen, die darüber zu sehen sind.
Mehrere Werte in 1 Textfeld (Concat)
In ein Textfeld lassen sich auch mehrere Felder schreiben unter FormCalc mit dem Befehl Concat.
$ = Concat(BUKRS.$, "/", EBELN.$, "/", EBELP.$ ) //FormCalc
Debugging-Konsole
Beim Test konnte jedoch diese Beschreibung aus einem Buch nicht nachvollzogen werden.
console.show(); console.println("Inhalt Objekt XY:" + this.rawValue);
Die Debugging-Konsole bietet sich v. a. an, wenn viele Einträge erfolgen, z. B. in Schleifen.
Dafür muss die Debugging-Konsole im Acrobat Professionell aktiviert sein.
Menü: Bearbeiten - Voreinstellungen.
Kategorie: JavaScript.
Der Haken bei "Konsole bei Fehler und Meldungen anzeigen" (bzw. "Show console on errors and messages" im Englischen) muss gesetzt sein.
Syntaxprüfung und Palette Bericht
Web-Links
- Adobe Hilfe: Debugging von Berechnungen und Skripten
- Adobe Hilfe über JavaScript-Debugging
- Adobe Hilfe: Messagebox
- Adobe Hilfe über Script-Debugging (PDF), S. 71-74
Literatur
- SAP Interactive Forms by Adobe, 2. Auflage, von Jürgen Hauser, Andreas Deutesfeld, Stephan Rehmann, Thomas Szücs und Philipp Thun, S. 353ff.