Adobe Forms Druckstruktur SFPOUTPUTPARAMS und Funktionsbaustein FP JOB OPEN

Aus SAP-Wiki
Zur Navigation springenZur Suche springen

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

Druckerdialog2.JPG

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).

Suffix5.JPG


Sie sind in der Spooltabelle "TSP01" zu finden in den Felder "RQ0NAME", "RQ1NAME", "RQ2NAME" und "RQTITLE".

Suffix6.JPG


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.

Suffix3.JPG


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.

Suffix4.JPG

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.

Druckparameter1b.jpg

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

Literatur