Debugging Scriptcode

Aus SAP-Wiki
Zur Navigation springenZur Suche springen


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.

ScriptDebug0.JPG


Beim Aufruf des generierten Funktionsbausteins für das Formular wird auch die Druckstruktur LS_DOCPARAMS übergeben.

ScriptDebug1.JPG


In dieser Druckstruktur wird der Parameter DYNAMIC auf "X" gesetzt.

ScriptDebug2.JPG


Beim Ausgeben des Formulars wird nun diese Meldung ausgegeben.

ScriptDebug3.JPG

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.

Scriptdebugging6.jpg

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.

Scriptdebugging1.jpg

Kategorie: JavaScript.

Der Haken bei "Konsole bei Fehler und Meldungen anzeigen" (bzw. "Show console on errors and messages" im Englischen) muss gesetzt sein.

Scriptdebugging2.jpg

Syntaxprüfung und Palette Bericht

Web-Links

Literatur