Skriptobjekt

Aus SAP-Wiki
Zur Navigation springenZur Suche springen

Siehe JavaScript und FormCalc Scripting im LiveCycle Designer.

In jeder Programmiersprache gilt das DRY-Prinzip (Don't repeat yourself). Umfangreicher Code, der einmal geschrieben wurde, sollte auch im Adobe LiveCycle Designer im gleichen Formular nicht mehrfach vorkommen. Dies würde die Wartung erschweren und ist fehleranfällig.

In einem Skriptbobjekt kann allerdings nur JavaScript-Code implementiert werden. FormCalc steht nicht zur Auswahl.

Ein Skriptobjekt sollte in allen Formularen gleich heißen, damit man sich den Namen leicht merken kann. Der Skriptobjektname muss beim Aufruf auch genannt werden.

Funktionen

  • ABAP bietet hier deutlich mehr Möglichkeiten Quellcode zu modularisieren als beim Scripting im Adobe LiveCycle Designer, aber mit JavaScript können Funktionen verwendet werden, die Funktionsbausteinen oder Form-Routinen in ABAP ähneln.
  • In einer Funktion kann mit einer Import- und Exportschnittstelle Quellcode gekapselt werden und von den Verwendern aufgerufen werden.
  • Damit vom gesamten Formular die Funktion genutzt werden kann, kann das Coding der Funktionen in einem Skriptobjekt abgelegt werden. Code in Skriptobjekten kann aus allen Objekten des Formulars aufgerufen werden.
  • Es erleichtert auch die Übersicht, wenn alle übergreifenden Codingblöcke zentral in einem, bzw. mehreren Skriptobjekten zu finden sind.

Skriptobjekt

Anlage Skriptingobjekt

  1. Klick in der Formularhierarchie auf den obersten Eintrag (das Formularobjekt)
  2. Rechte Maustaste "Skiptobjekt einfügen" wählen
  3. Das erzeugte Skriptobjekt mit dem Namen "(unbenannt - Skriptobjekt)" sprechend umbenennen, hier in "Main"
  4. In das Skriptobjekt den Code der Funktion einfügen


Aufruf Funktion in Skriptobjekt

  • Nun kann die Funktion aus jedem Objekt des Formulars aufgerufen werden.
  • Der Name des Skriptobjekts wird immer vor den Funktionsaufruf gesetzt. In diesem Fall beim Skriptobjekt „Main“ und der Funktion „SetCounter“ z. B.
Ergebnis = Main.SetCounter();

Nur wenn die Funktion im gleichen Programmknoten liegt, würde man schreiben

Ergebnis = SetCounter();

Coding im Skriptobjekt

Hier sieht man das Coding im Skriptobjekt „Main“.

Skriptobjekt1.JPG

Web-Links

Literatur