Scripting Fehleranalyse

Aus SAP-Wiki
Zur Navigation springenZur Suche springen

Siehe JavaScript und FormCalc Scripting im LiveCycle Designer.

Scriptingcode ohne Fehler im LiveCycle Designer zu schreiben hat einige Hürden, die man in ABAP nicht kennt.

Schwierigkeiten bei Fehleranalyse im Scripting

  • Es gibt standardmäßig keine Fehlermeldung, wenn man Code mit Syntaxfehlern schreibt
  • Stößt man den Syntaxchec manuell an, wird nur manchmal die Zeile markiert, die den Syntaxfehler verursacht. Zur markierten Zeile gibt es keine Fehlerbeschreibung.
  • Wird ein Codingblock angesprochen, der einen Syntaxfehler beinhaltet, wird der Codingblock ignoriert. Es gibt aber auch keine Meldung darüber, dass der Codingblock aufgrund eines Syntaxfehler ignoriert wurde.
  • Die Hilfe zum Scripting im LiveCycle Designer ist rudimentär, unvollständig und schwer verständlich.
  • Man hat in jedem Codingblock die Möglichkeit zwischen FormCalc und JavaScript zu wählen. Es erfolgt aber auch keine Prüfung, ob das Coding zur gewählten Programmiersprache passt.

Komponenten, die einen Fehler versuchen können im Coding

  • Das Coding ist für FormCalc geschrieben, aber die Programmsprache ist auf JavaScript eingestellt, bzw. umgekehrt
  • Das Ereignis zum Codeobjekt ist unpassend zum gewünschten Zeitpunkt/Event
  • Der Code verursacht einen Syntaxfehler und der Code wird daher nicht ausgeführt
  • Die Ausführung von Scripting-Code ist im Adobe Reader bzw. im aktuellen PDF-Anzeigeprogramm ausgeschaltet

Tipp: Scripting reduzieren

Was sich sehr gut bewährt hat, ist die Reduzierung des Codings auf einzelne unbedingte Anweisungen. Funktioniert diese, erhöht man schrittweise die Komplexität des Codings und prüft jeweils, ob der Code wie erwartet funktioniert.

Zum Beispiel will man eine Zeile ausblenden in Abhängigkeit von einer Bedingung Nun reduziert man das Coding auf eine Zeile.

$.presence = „hidden“  //FormCalc
This.presence = „hidden“;  //JavaScript

Nun kann das Coding komplexer werden

if ($ == null) then. /FormCalc
 $.presence = „hidden“ 
endif
If this.rawValue == null). //JavaScript
{
This.presence = „hidden;
}

So kann man nach und nach ein Coding komplexer gestalten und kommt dadurch schnell auf die Spur auf den Codingbestandteil, der das nicht erwünschte Verhalten, bzw. Nichtverhalten verursacht.

Debugging Scriptcode