Programmsymbole 
Die Integration von SAPscript ermöglicht es Ihnen, Daten, die in den verschiedenen Anwendungen des SAP-Systems abgelegt sind, in Textbausteine einzubinden. Ein Beispiel hierfür ist die Erstellung eines Serienbriefes, der an mehrere Kunden geschickt werden soll. Die Anschriftendaten dieser Kunden stehen in der SAP-Datenbank und sollen nun in den Brief übernommen werden. SAPscript kann diese Werte nicht selbst aus der SAP-Datenbank lesen, sondern ist darauf angewiesen, daß dies ein Programm erledigt. Die Daten werden dort z.B. in mit TABLES deklarierten Arbeitsbereichen abgelegt.
Hinweis
Ab 3.1G ist man nicht mehr auf TABLES-Anweisungen allein beschränkt, sondern man kann grundsätzlich jede globale Variable über ein Programmsymbol ansprechen. Die Dictionary-Information (Ausgabelänge, Anzahl der Dezimalstellen, etc.) kann jetzt neben TABLES-Feldern auch für INFOTYPES-Felder und Variablen mit LIKE-Bezug ausgewertet werden.
Beispiel:
DATA: MYCOUNTRY LIKE USR03-LAND1.
In jedem Fall werden alle Ausgabeeigenschaften, die über den ABAP-Befehl DESCRIBE geholt werden können, berücksichtigt
Wenn SAPscript nun von diesem Programm zwecks Aufbereitung eines Textes aufgerufen wird, kann es Daten aus diesen Arbeitsbereichen übernehmen.
Symbole, die ihre Werte aus solchen Datenbereichen erhalten, werden Programmsymbole genannt. Der Wert eines Programmsymbols darf maximal 255 Zeichen belegen. Der Name eines Programmsymbols besteht, bei Verwendung von TABLES-Anweisungen, aus dem Tabellennamen und dem Feldnamen, getrennt durch einen Bindestrich. Beispiel für Anschriftenfelder von Kunden sind &KNA1-NAME1&, &KNA1-ORT01&, &KNA1-PFACH& usw.. Ansonsten sieht das Symbol so aus, wie es im Druckprogramm definiert ist (z.B.: &MYCOUNTRY&). Wenn SAPscript auf ein Symbol trifft, prüft es zunächst nach, ob es sich um ein Systemsymbol handelt. Wird kein entsprechender Eintrag gefunden, wird versucht eine Tabelle oder Struktur im rufenden ABAP-Programm zu finden (Deklaration über TABLES:....). Ist dies der Fall, handelt es sich um ein Programmsymbol, und es wird anschließend im Dictionary nachgesehen, ob diese Tabelle das spezifizierte Feld enthält.
Ist dies nicht der Fall, erfolgt eine Abfrage nach einem Standardsymbol. Sollte in der Tabelle TTDTG kein Eintrag vorhanden sein, vollzieht sich eine Überprüfung des rufenden ABAP-Programms hinsichtlich globaler Definitionen (Data, Constants, Infotype, Parameter). Werden die entsprechenden Definitionen gefunden, bereitet SAPscript die Symbole als Programmsymbole auf.
Erst wenn auch keine globalen Symboldefinitionen vorliegen, wird das Symbol als Textsymbol aufbereitet.
Grundsätzlich gilt, daß ein bereits definiertes Textsymbol auch ein Textsymbol bleibt, selbst dann, wenn im Druckprogramm z.B. eine Data-Anweisung mit dem gleichen Namen verwendet wird.
Hinweis
Hinsichtlich der Ersetzung der Variablen kommt es im entsprechenden Text auf die Reihenfolge der Variablen an.
Beispiel
Formular/Text:
....
/: DEFINE &mysymbol& = 'abc'
* &mysymbol&
....
Druckprogramm:
....
Data: mysymbol(5) value 'xyz'.
....
In diesem Beispiel wird im Formular/Text anstelle von &mysymbol& der Wert des mit DEFINE definierten Textsymbols, also abc,ausgegeben.
Beispiel
Formular/Text:
....
* &mysymbol&
/: DEFINE &mysymbol& = 'abc'
....
Druckprogramm:
....
Data: mysymbol(5) value 'xyz'.
....
In diesem Beispiel wird im Formular/Text anstelle von &mysymbol& der Wert des im Druckprogramm definierten Programmsymbols, also xyz, ausgegeben.
Standardmäßig sucht SAPscript die Tabellenarbeitsbereiche und die globalen Variablen im Hauptteil des gestarteten ABAP-Programms. Sollen z.B. die Tabellenarbeitsbereiche von gerufenen Funktionsbausteinen verwendet werden, so ist beim OPEN_FORM das Feld TDPROGRAM der im Parameter OPTIONS angebbaren Struktur auf den Namen des entsprechenden Programms zu setzen. Diese Definition gilt dann für alle Programmsymbole bis zum nächsten CLOSE_FORM. Sie können aber auch im Parameter PROGRAM des Funktionsbausteins START_FORM den Namen des Programms angeben. Diese Angabe gilt dann bis zum nächsten END_FORM. Wird dieser Parameter bei START_FORM nicht gesetzt, so gilt die im OPEN_FORM vorgenommene Einstellung.
Für die Aufbereitung eines Programmsymbols werden die im Dictionary definierten Angaben verwendet (Ausgabelänge, Aufbereitungsroutine etc.). Bestimmte Datentypen erfordern für die Wertaufbereitung zusätzliche Informationen aus anderen Feldern. So kann der Inhalt von Währungsfeldern nur in Zusammenhang mit dem Währungsschlüsselfeld richtig dargestellt werden. Die dazu notwendigen Informationen beschafft sich SAPscript selbständig anhand der Dictionary-Information.
Hinweis
SAPscript verwendet zur Ausgabe der Programmsymbole den WRITE-Befehl der ABAP-Programmiersprache. Die Wirkung dieses Befehls wird, abhängig vom Datentyp, über Parameter von außen gesteuert (z.B. Angaben im Benutzerstammsatz, Tabelle T005X). Entspricht die Aufbereitung eines Programmsymbols nicht den Erwartungen, sollten Sie zunächst klären, ob die obigen Steuerparameter richtig eingestellt sind.
Auf Felder aus bestimmten Tabellen-Workareas können Sie sich in allen SAPscript-Textbausteinen beziehen: