Adobe Forms Druckstruktur SFPOUTPUTPARAMS und Funktionsbaustein FP JOB OPEN
Siehe Importstruktur SFPDOCPARAMS.
Siehe Access Tabellenbeziehung Spool-Auftrag.
Der Druckauftrag wird geöffnet, in dem ein Formular ausgegeben werden. Für Adobe Forms-Formular wird der Funktionsbaustein FP_JOB_OPEN aufgerufen.
In der Struktur LS_OUTPUTPARAMS (Typ SFPOUTPUTPARAMS) werden Druckparameter übergeben. Der wichtigste Parameter ist DEST, in dem der Drucker enthalten ist. Wenn der Drucker nicht übergeben wird, kommt immer auch der Dialogbildschirm mit den Druckparametern, da der Drucker ein obligatorischer Parameter beim Druck ist.
Die meisten Felder der Druckstruktur können ungefüllt bleiben,. Es ist eine herausfordernde, aber spannende Aufgabe, die Bedeutung der verschiedenen Felder der Druckstruktur zu entdecken.
Struktur SFPOUTPUTPARAMS
Zeile | Feldname | Kurzbeschreibung | Datentyp | ABAP-Typ | Zeichenzahl | Datenelement | Domänenname |
---|---|---|---|---|---|---|---|
1 | DEVICE | Medium | CHAR | C | 8 | FPMEDIUM | FPMEDIUM |
2 | NODIALOG | Dialog unterdrücken | CHAR | C | 1 | FPNODIALOG | FPBOOLEAN |
3 | PREVIEW | Vorschau | CHAR | C | 1 | FPPREVIEW | FPBOOLEAN |
4 | GETPDF | PDF Rückgabe | CHAR | C | 1 | FPGETPDL | FPBOOL |
5 | GETPDL | PDF Rückgabe | CHAR | C | 1 | FPGETPDF | FPBOOL |
6 | GETXML | PDF Rückgabe | CHAR | C | 1 | FPGETXML | FPBOOL |
7 | CONNECTION | Destination | CHAR | C | 32 | RFCDEST | RFCDEST |
8 | ADSTRLEVEL | Trace Level | NUMC | N | 2 | FPADSTRL | FPADSTRL |
9 | JOB_PROFILE | Jobprofil | STRING | g | FPJOBPROFILE | FPJOBPROFILE | |
10 | BUMODE | Modus | CHAR | C | 1 | FPBUMODE | FPBUMODE |
11 | ASSEMBLE | in ein PDF | CHAR | C | 1 | FPASSEMBLE | FPASSEMBLE |
12 | PARALLEL | CHAR | C | 1 | FPBOOLEAN | FPBOOLEAN | |
13 | PDFVERSION | STRING | g | FPPDFVERSION | FPPDFVERSION | ||
14 | PDFTAGGED | CHAR | C | 1 | BOOLEAN | BOOLEAN | |
15 | PDFCHANGESRESTRICTED | keine Änderung | CHAR | C | 1 | FPCHANGESRESTRICTED | FPCHANGESRESTRICTED |
16 | PDFNORM | PDF Norm | CHAR | C | 10 | FPPDFNORM | FPPDFNORM |
18 | DEST | Ausgabegerät | CHAR | C | 4 | RSPOPNAME | RSPOPNAME |
19 | REQNEW | Neuer Spool-Auftrag | CHAR | C | 1 | SYPRNEW | SYCHAR01 |
20 | REQIMM | Sofort ausgeben | CHAR | C | 1 | SYPRIMM | SYCHAR01 |
21 | REQDEL | Löschen nach Ausgabe | CHAR | C | 1 | SYPRREL | SYCHAR01 |
22 | REQFINAL | Spool-Auftrag abschließen | CHAR | C | 1 | RSPOFINAL | CHAR1 |
23 | SPOOLID | Nummer | INT4 | X | 10 | RSPOID | RSPOID |
24 | SENDDATE | Sendedatum | DATS | D | 8 | SKDATE | SKDATE |
25 | SENDTIME | Sendezeit | TIMS | T | 6 | SKTIME | SKTIME |
26 | SCHEDULE | Zeitplan | CHAR | C | 3 | SKSCHEDULE | SKSCHEDULE |
27 | COPIES | Exemplare | NUMC | N | 3 | FPCOPIES | FPCOPIES |
28 | DATASET | Name | CHAR | C | 6 | RSPO0NAME | CHAR6 |
29 | SUFFIX1 | Suffix1 | CHAR | C | 4 | RSPO1NAME | CHAR4 |
30 | SUFFIX2 | Suffix2 | CHAR | C | 12 | RSPO2NAME | CHAR12 |
31 | COVTITLE | Deckblatt-Text | CHAR | C | 68 | SYPRTXT | SYCHAR68K |
32 | COVER | SAP-Deckblatt | CHAR | C | 1 | SYPRSAP | SYPRSAP |
33 | RECEIVER | Empfänger | CHAR | C | 12 | SYPRREC | SYCHAR12 |
34 | DIVISION | Abteilung | CHAR | C | 12 | SYPRABT | SYCHAR12K |
35 | LIFETIME | Spool-Verweildauer | NUMC | N | 1 | SYPEXPI | SYNUM01 |
36 | AUTHORITY | Berechtigung | CHAR | C | 12 | SYPRBER | SYCHAR12 |
37 | RQPOSNAME | Host-Drucker | CHAR | C | 50 | RSPOPRNAME | TEXT50 |
38 | PDLTYPE | Druckersprache | CHAR | C | 30 | FPPDLTYPE | FPPDLTYPE |
39 | XDCNAME | XDC Name | CHAR | C | 51 | FPXDCNAME | FPXDCNAME |
40 | XDCOWNER | Verantworlicher | CHAR | C | 1 | FPOWNER | FPOWNER |
41 | NOPDF | kein PDF | CHAR | C | 1 | FPNOPDF | FPBOOLEAN |
42 | SPONUMIV | Nrkrnummer | CHAR | C | 2 | NRNR | CHAR2 |
43 | PRINTTICKET | Print-Ticket | CHAR | C | 30 | POSS_PRINTTICKETNAME | |
45 | ARCMODE | Ablagemodus | CHAR | C | 1 | SYARMOD | SYARMOD |
46 | NOARMCH | CHAR | C | 1 | FPNOARMCH | FPBOOLEAN | |
48 | TITLE | Titel | CHAR | C | 50 | FPTITLE | FPTITLE |
49 | NOPREVIEW | keine Vorschau | CHAR | C | 1 | FPNOPREVIEW | FPBOOLEAN |
50 | NOPRINT | keine Druckausgabe | CHAR | C | 1 | FPNOPRINT | FPBOOLEAN |
51 | NOARCHIVE | keine Archivierung | CHAR | C | 1 | FPNOARCHIVE | FPBOOLEAN |
52 | IMMEXIT | Exit | CHAR | C | 1 | FPIMMEXIT | FPBOOLEAN |
53 | NOPRIBUTT | CHAR | C | 1 | FPNOPRIB | FPBOOLEAN | |
55 | XFP | XFP | CHAR | C | 1 | FPXFPACTIVE | FPBOOLEAN |
56 | XFPTYPE | XFP Variante | CHAR | C | 1 | FPXFPTYPE | FPXFPTYPE |
57 | XFPOUTDEV | Ausgabegerät | CHAR | C | 4 | RSPOPNAME | RSPOPNAME |
Parameter
Parameter NODIALOG
Ist der Parameter "NODIALOG" nicht gesetzt, erscheint eine Abfrage/Druckparameterscreen, wo z. B. nach dem Drucker abgefragt wird. Wird der Parameter "NODIALOG" gesetzt, kann der Druckdialog allerdings nur unterdrückt werden, sofern in den Druckparametern ein Drucker (Parameter DEST) mitgegeben wurde. Ohne das Ausgabegerät ist keine Druckausgabe möglich und dann muss dieser Wert abgefragt werden.
Parameter PREVIEW
ls_outputparams-preview = 'X'.
Das PDF wird als Vorschau auf den Bildschirm ausgegeben.
Parameter DEST
Der Drucker, bzw. Ausgabegerät bei der Nachrichtenverarbeitung.
ls_outputparams-dest = 'ZPDF'. "Drucker (Mußfeld, sonst Abfrage Drucker im Dialogbildschirm Druckparameter)
oder
ls_outputparams-dest = NAST-LDEST. "Drucker/Ausgabegerät, der durch den NAST-Nachrichtensatz mitgeliefert wird
Parameter GETPDF / GETPDL / GETXML
ls_outputparams-getpdf = 'X'.
ls_outputparams-getpdf = 'M'. "M = Fordert Rückgabe der fertigen Formulare von den ADS bei eingestellter Bündelung an
ls_outputparams-getpdl = 'X'.
ls_outputparams-getxml = 'X'.
PDF wird in elektronischer Form zurückgeliefert in Struktur LS_PDF_FILE als PDF, PDL und/oder XML. Es erfolgt dann allerdings keine Ausgabe auf Drucker und Bildschirm/Preview und keine Anlage Spool-Auftrag. Daher muss man mit diesem Parameter sehr vorsichtig sein.
Das PDF wird auch in elektronischer Form zurückgegeben, wenn das Formular im Preview ausgegeben wird und wenn GETPDF = space ist.
Parameter REQNEW und REQFINAL
ls_outputparams-reqnew = 'X'.
Bei jedem Aufruf eines Formulars wird ein neuer Spool-Auftrag erzeugt.
ls_outputparams-reqfinal = 'X'.
Nach dem Aufruf des Formulars wird mit dem Funktionsbaustein FP_JOB_CLOSE der Spool-Auftrag geschlossen. Es kann nicht weiter in den gleichen Spoolauftrag geschrieben werden.
Möchte man z. B. bei der Transaktion VL71 in den gleichen Spoolauftrag schreiben können, müssen die Parameter "REQNEW" und "REQFINAL" leer bleiben. Es wird allerdings nur in den gleichen Spoolauftrag geschrieben, wenn bei den sonstigen Spool-Splitkriterienfeld gleich sind.
Parameter DATASET, SUFFIX1, SUFFIX2 und COVTITLE
Die Felder "DATASET", "SUFFIX1", "SUFFIX2" und "COVTITLE" beschreiben den Transportauftrag mit Attributen. Es ist nicht notwendig die Felder zu füllen im Druckprogramm. Es kann jedoch Sinn machen die Felder mit wohl überlegten Werten zu füllen, um die Spoolaufträge leichter zu identifizieren. "DATASET", "SUFFIX1" und "SUFFIX2" werden jedoch auch bei Nichtfüllen im Druckprogramm mit sinnvollen Werten gefüllt (siehe unten).
Sie sind in der Spooltabelle "TSP01" zu finden in den Felder "RQ0NAME", "RQ1NAME", "RQ2NAME" und "RQTITLE".
Im Spoolauftrag sind die Ausprägungen der Felder zu sehen, hier bei einem Spoolauftrag mit der Nummer 2563. "SUFFIX1" und "SUFFIX2" enthalten den Ausgabedrucker und den Benutzernamen des Erstellers, sofern die Felder im Druckprogramm leer gelassen wurden. Ansonsten die Werte, die im Druckprogramm in die Felder "SUFFIX1" und SUFFIX2" gefüllt worden sind. "PBFORM" steht hier für einen PDF-Ausdruck von Adobe Forms.
In der Übersichtsliste der Spoolaufträge sind diese 3 Felder im Feld "Title" zu sehen, sofern das Feld "Title" im Detailbild nicht gefüllt ist (wie beim Spoolauftrag 2563). Sonst ist in der Übersichtsliste im Feld "Title" auch das Feld von der Detailansicht "Title" zu sehen.
Parameter REQIMMM
ls_outputparams-reqimm = 'X'.
Es wird nicht nur ein Spoolauftrag erzeugt, sondern es erfolgt sofort die Verarbeitung auf das Ausgabegerät.
Parameter NOPRINT
ls_outputparams-noprint = 'X'.
Das PDF kann nicht gedruckt werden aus der PDF-Vorschau. Dieser Parameter sieht man immer erstaunlicherweise immer wieder in Projekten gefüllt. Da es die User verwirrt, wenn z. B bei der Druckvorschau dieser Parameter gesetzt ist und es dann nicht möglich ist aus der Druckvorschau heraus zu drucken, ist es nicht nachvollziehbar, warum dieser Parameter gesetzt sein sollte.
Es ist im Standard (hier Druckprogramm der Rechnung) der Parameter gesetzt, wenn man in der Druckvorschau ist und kein Wiederholdruck gesetzt ist. Der Gedanke ist hier sicher, dass verhindert werden soll, dass eine Rechnung nicht doppelt an den Kunden verschickt werden soll.
Coding Funktionsbaustein FP_JOB_OPEN
Data: ls_outputparams type sfpoutputparams, ls_docparams type sfpdocparams, lv_form type tdsfname, lv_fm_name type rs38l_fnam, ls_pdf_file type fpformoutput. ls_outputparams-dest = 'P022'. "Drucker (Mußfeld, sonst Abfrage Drucker im Dialogbildschirm) ls_outputparams-nodialog = 'X'. "Kein Druckparameterbildschirm (um z. B. Drucker zu ändern) ls_outputparams-reqnew = 'X'. "Neuer Spool-Auftrag, space wenn in offenen Spoolauftrag drucken ls_outputparams-reqimm = 'X'. "Sofortdruck ls_outputparams-getpdf = 'X'. "PDF wird in elektronischer Form zurückgeliefert vom PDF-Fuba "ls_outputparams-fillable = 'F'. "Interaktives Formular "ls_outputparams-preview. = 'X'. "Meist wird der Parameter beim Drücken einer Schaltfläche "print preview" gefüllt und muss nicht Druckprogr. gesetzt w. call function 'FP_JOB_OPEN' CHANGING ie_outputparams = ls_outputparams. „Type SFPOUTPUTPARAMS EXCEPTIONS cancel = 1 usage_error = 2 system_error = 3 internal_error = 4 others = 5. if sy-subrc <> 0. endif.
Aufruf des Adobe Formulars im Rahmenprogramm
Splitkriterien für Spoolaufträge
Web-Links
- SAP-Hilfe: Formularschnittstellenparameter Struktur SFPOUTPUTPARAMS
- https://www.sapdatasheet.org/abap/func/fp_job_open.html
- https://www.sapdatasheet.org/abap/tabl/SFPOUTPUTPARAMS.html
Literatur
- SAP Interactive Forms by Adobe, 2. Auflage, von Jürgen Hauser, Andreas Deutesfeld, u. a., S. 237 f.