SAPscript

Aus SAP-Wiki
(Weitergeleitet von SAPScript)
Wechseln zu: Navigation, Suche

SAPscript ist die älteste Technologie und wird immer noch im SAP-System eingesetzt. Vom Rahmenprogramm zum Formular erfolgt die Datenübertragung mittels globaler Variablen bzw. DDIC-Strukturen und es gibt keine transparente Schnittstelle. Die Oberfläche der Formularbearbeitung ist in Smart Forms oder in Adobe Interactive Forms wesentlich moderner geworden und speziell für Einsteiger ist die SAPscript-Technologie sehr gewöhnungsbedürftig und wenig intuitiv.

Bestehende SAPscript-Formulare werden in aller Regel aufgrund des dafür nötigen sehr hohen Aufwands nicht in Smart Forms oder in Adobe Forms migriert und daher bleiben SAPscript-Kenntnisse für Formularentwickler weiterhin wertvoll.

Empfehlungen

  • Neue SAPscript-Formulare sollten heute in aller Regel nicht mehr erstellt werden, sondern in Smart Forms oder Adobe Interactive Forms. Bei Massendrucken soll SAPscript jedoch performanter sein als Smart Forms und Adobe Interactive Forms. .
  • Wenn ein Formular mit SAPscript erstellt worden ist, ist es in der Regel nicht empfehlenswert diese Formulare auf eine andere Technologieplattform zu bringen. Die Formulare und das Rahmenprogramm müssten praktisch neu erstellt werden, was viel Arbeit bedeutet und die Gefahr von Fehlern beinhaltet. Eine Ausnahme für eine notwendige Migration eines SAPscript-Formulars besteht, wenn ein Formular interaktiv sein muss. Diese Möglichkeit besteht nur in Adobe Interactive Forms und hier kann es Sinn machen ein bestehendes SAPscript-Formular in ein Adobe Forms-Formular zu migrieren.

Transaktionen

Druckrahmenprogramm

  • Die Variablen, die im SAPscript-Formular ausgegeben werden, müssen im Rahmenprogramm global definiert werden. Es gibt im Gegensatz zu Smart Forms und Adobe Interactive Forms keinen Funktionsbausteinaufruf, in dem die Variablen übergeben werden.
  • Um Probleme mit nicht geclearten Variablen zu vermeiden bei Formularaurufen in einem Loop oder in einem Batch-Lauf, sollten die globalen Daten vor den entsprechenden Leseroutinen ein Clear auf die Variablen vorgenommen werden.

Absatzformate und Zeichenformate und SAPscript-Stil

  • Siehe auch SAPscript-Stil.
  • Sowohl Absatzformate als auch Zeichenformate werden durch ein zweistelliges Kürzel definiert. Es ist daher nicht einfach eine gut merkbare Systematik bei der Namensvergabe zu erstellen. Hier ist es sinnvoll intensiv über die Namensvergabe nachzudenken und auch etwas in die Zukunft zu schauen welche neuen Anforderungen an ein Formular und deren Absatz- und Zeichenformate kommen können.
  • Absatzformate und Zeichenformate können einerseits im SAPscript-Formular lokal definiert werden, aber sie können auch zusätzlich die Absatz- und Zeichenformate eines SAPscript-Stil nutzen, der in den Grundeinstellungen im SAPscript-Formular eingebunden wurde.
  • Für die technische Nutzung gilt im Prinzip das Gleiche für die Definition von lokalen Absatzformaten und Zeichenformaten im SAPscript, wie für die Nutzung von Absatzformaten und Zeichenformaten in einem SAPsript-Stil.
  • Sehr spezielle Absatz- und Zeichenformaten sollte man lokal in SAPscript definieren. Absatzformate und Zeichenformate, die sich über viele Formulare wiederholen, sollte man über einen gut durchdachten SAPscript-Stil ins Formular einbinden und deren Formate nutzen. So besteht auch die Chance sich diese Absatz- und Zeichenformate zu merken.
  • Ändert man in einem SAPscript-Stil ein Absatz- oder Zeichenformat, so muss man immer auch die Auswirkungen auf andere SAPscript-Formulare, Smart Forms, Adobe Forms und Standardtexten berücksichtigen. In SAPscript kann ein SAPscript-Stil explizit als Standardstil eingebunden sein. In Smart Forms und Adobe Forms können die SAPscript-Stile in Kombination mit Standardtexten genutzt werden. In jedem Fall sollte man sehr vorsichtig sein einen SAPscript-Stil zu ändern. Es kann für die eigene Entwicklung sinnvoll sein, aber negative Auswirkungen an ganz anderer Stelle bzw. Formularausgaben haben. Daher sollte meist die Änderung von bestehenden Absatz- und Zeichenformaten in einem Standardstil vermieden werden.
  • Neue Absatzformate und Zeichenformate in einem SAPscript-Stil sind unproblematischer, weil sie bisher noch nicht von anderen Formularen bzw. Standardtexten genutzt sein können. Aber auch dann sollte man zurückhaltend sein sehr spezielle Absatzformate und Zeichenformate im SAPscript-Stil anzulegen, weil sonst sehr leicht die Übersicht im SAPscript-Stil verloren gehen kann. In jedem Fall sollte man extrem sorgfältig sein bei der Anlage ein neues Absatzformatd oder Zeichenformatd bezüglich der Namensvergabe und der Unterscheidung zu den bestehenden Absatzformaten und Zeichenformaten.
  • Neue Absatzformate und Zeichenformate im SAPscript-Format sind für andere SAPscript-Formulare, Smart Forms und Adobe Forms nicht relevant, weil sie in diesem Fall nur lokal in dem einem SAPscript-Formular genutzt werden können. Auch hier sollte man sorgfältig sein bei der Anlage und der Änderung von lokalen Absatzformaten oder Zeichenformaten sein. Eine klare nachvollziehbare Namensvergabe erleichtert später die Nutzung der Formate und reduziert Fehler.

Coding in SAPscript und Kommandozeilen

Boolesche Operatoren und Zuweisungsoperator

  • Die wichtigsten Booleschen Operatoren werden hier ausgedrückt mit "EQ" und "NE", und ist hier vom Zuweisungsoperator "=" zu unterscheiden.

Adressen einbinden

Ausgabe Felder unter Bedingung

Mit einem Kommandoknoten kann eine Bedingung hinterlegt werden. Hinter dem ENDIF folgt ein Punkt.

Hier wird eine Variable "LTAP-ABLAD" nur ausgegeben, wenn sie gefüllt ist.

/: IF &LTAP-ABLAD& NE &SPACE&
/    Abladestelle:,,&LTAP-ABLAD&
/: ENDIF.

Alternativ kann es so in einer Zeile codiert werden.

&'Abladestelle:,,'LTAP-ABLAD&

Debugging SAPscript

Form-Routine aus SAPscript aufrufen

Kommentare in SAPscript

Das Coding mit der Darstellung von Feldern, Kommandoknoten, Absatzformaten und Zeichenformaten ist recht schwer zu lesen und zu verstehen - selbst wenn man den Code selber geschrieben hat.

Es ist empfehlenswert viel in SAPscript mittels dem speziellen Absatzformat /* zu kommentieren. Alle Zeichen in einer Zeile, die beim Absatzformat /* folgen, sind reine Kommentare.

Man sollte kommentieren:

  • Kommandoknoten-/Befehle
  • Variablen, die nicht aus dem Namen selbsterklärend sind
  • spezielle Absatzformate

Um optisch den Kommentar leicht vom sonstigen Coding-Inhalt zu unterscheiden, kann man die Kommentarzeile beginnen lassen mit dem Text

/* Kommentar: <folgender Text>

Mit einer (oder mehr) leeren Kommentarzeilen lassen sich Codingblöcke auch gut sichtbar strukturieren. Es ist nicht möglich leere Zeile ohne gefülltes Absatzformat zu benutzen. Sobald man einmal „Bild auf / Bild runter“ gedrückt hat, werden diese leeren Zeilen gelöscht - während leere Zeilen mit dem Absatzformat /* beibehalten werden.

...
/*
...

Logo/Grafik einbinden in SAPscript

Variablen (Symbole) in SAPscript

Im SAPscript-Formular werden stets auch variable Werte ausgegeben. Diese Variablen werden unter SAPscript "Symbole" genannt.

Die Symbole werden in SAPscript mit der Syntax "&<variablenname>&" ausgegeben, z. B.

&kna1-kunnr&

Globale Variablen (aus Druckprogramm)

  • In der Regel werden die Symbole im Druckprogramm befüllt. Hier sind sie als globale Variablen definiert.

Lokale Variablen (Schlüsselwort DEFINE)

  • In SAPscript können lokale Variablen definiert werden über eine Kommandozeile. Es kann der Wert einer anderen Variable übernommen werden.
/: DEFINE &GV_NSOLM& = &LTAP-NSOLM&

oder ein Defaultwert angegeben werden.

/: DEFINE &LV_PARTNER_ZM_NAME1& = 'Name 1 ZM'

Im Anschluss die Variablen auch in einem Subroutinen-Pool verändert werden.

Projektbeispiel in Sch:

  • SAPscript = ZMM_WESCHEINVERS und ZQM_PRUEFANW
  • Programm = ZWM_FORMS_SUBROUTINES, Form = READ_NAME1_FROM_LIFNR


siehe auch https://archive.sap.com/discussions/thread/1387843.

Textbausteine (SAPscript)

In SAPscript-Formulare können nur Standard-Textbausteine verwendet werden, die aus dem betriebswirtschaftlichen Beleg kommen, bzw. in der Transaktion SO10 gepflegt werden. Die Nutzung von Smart Forms Textbausteine ist bei SAPscript-Formularen nicht möglich. In Adobe Forms und Smart Forms lassen sich sowohl Smart Forms Textbausteine als auch Standard-Textbausteine verwenden.

Stil pflegen

SAPscript kopieren von Mandant

Migration von SAPscript Formularen zu Smart Forms

Fenster und Seitenfenster in SAPscript

SAPscript forms breakdown helper

SAP ABAP Application Component BC-SRV-SCR (SAPscript)

Web-Links

Literatur