Ansicht
Dokumentation

SIMG_XXMENUOLSDMODA6 - Neue Felder für den Belegdruck

SIMG_XXMENUOLSDMODA6 - Neue Felder für den Belegdruck

Addresses (Business Address Services)   PERFORM Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Beim Dokumentendruck ist die Datenbeschaffung und die Datenaufbereitung getrennt. Dadurch kann die Formulargestaltung in verschiedene Verantwortungsbereiche gegeben werden: Während ein Mitarbeiter z.B. die möglichen Felder eines Formularsdefiniert, paßt ein anderer Mitarbeiter das Layout aus Marketing-Gesichtspunkten an.

Die druckerspezifischen Steuerungen sind unabhängig vom Druckprogramm mit dem SAPscript-Formular realisierbar. Feststehende Seitenvordrucke (z.B. Firmenanschriften, Fußtexte) können durch im Formular definierte Texte ausgegeben werden.

Bei Anpassungen im Bereich des Belegdrucks lassen sich je nach Art und Umfang der Anpassungen zwei grundsätzliche Arten unterscheiden:

  1. Modifikationen 1. Stufe
Einfachere Modifikationen ohne Aufbereitungslogik und ohne Aufnahme neuer Felder in eine Kommunikationsstruktur können direkt in der Formular-Bearbeitung mit SAPscript erfolgen. Sie erfolgen als "reine" Formularanpassungen. Sie werden vorgenommen, wenn folgende Voraussetzungen vorliegen:
  • Das Feld ist in der Kommunikationsstruktur vorhanden.

  • Das Feld ist NICHT im Formular enthalten.

  • Das Feld kann im Formular direkt an etwas "Bestehendes" angehängt werden (z.B. ....).

Anhand von Beispiel 3 (s.u.) wird das Vorgehen bei dieser Art der Anpassung beschrieben.
Hinweis
SAP empfiehlt die Standardformulare unverändert zu lassen und für die Anpassung von Formularen stets Testformulare zu verwenden.
Weiterführende Informationen zur Definition und Bearbeitung von Formularen erhalten Sie im Abschnitt "Verarbeitung von Nachrichten und Formularbearbeitung". Informationen zu SAPscript erhalten Sie in der Online-Dokumentation Basis -> Basis-Services / Kommunikation zur Textverarbeitung im SAPscript-Editor bzw. zur Stil- und Formularpflege.
  1. Modifikationen 2. Stufe
Aufwendigere Modifikationen müssen vorgenommen werden, wenn ein Feld weder in der Kommunikationsstruktur noch im Formular vorhanden ist. In diesen Fällen muß das jeweilige Feld in die Kommunikationsstruktur mittels der dafür vorgesehenen INCLUDES aufgenommen werden. Diese Art der Druckanpassung wird nachfolgend ausführlich beschrieben.
Unter bestimmten Voraussetzungen ist dabei zusätzlich ein Eingriff in den Datenbeschaffungsreport bzw. in die Programme notwendig. Dies ist der Fall, wenn
  • der Druck von bislang nicht berücksichtigten Bedingungen abhängen soll

  • die Reihenfolge des Drucks im MAIN-Fenster anders sein soll

  • zusätzliche Daten gelesen werden müssen

  • Für den Belegdruck stehen eigene Kommunikationsstrukturen zur Verfügung:
  • VBDKA (Dokumentenkopfview Anfrage, Angebot, Auftrag)

  • VBDPA (Dokumentenpositionsview Anfrage, Angebot, Auftrag)

  • VBDKL (Dokumentenkopfview Lieferschein)

  • VBDPL (Dokumentenpositionsview Lieferschein)

  • VBDKR (Dokumentenkopfview Faktura)

  • VBDPR (Dokumentenpositionsview Faktura)

  • Neue Felder für den Belegdruck werden in folgenden INCLUDES aufgenommen:
  • Auftragsdokumente Kopfdaten in VBDKAZ (in VBDKA)

  • Auftragsdokumente Positionsdaten in VBDPAZ (in VBDPA)

  • Lieferungsdokumente Kopfdaten in VBDKLZ (in VBDKL)

  • Lieferungsdokumente Positionsdaten in VBDPLZ (in VBDPL)

  • Fakturadokumente Kopfdaten in VBDKRZ (in VBDKR)

  • Fakturadokumente Positionsdaten in VBDPRZ (in VBDPR)

  • Die Versorgung der Felder in den Kommunikationsstrukturen erfolgt über Funktionsbausteine. In den Funktionsbausteinen sind für die Versorgung der aufgenommener Felder pro Belegart drei User-Exits vorhanden:
Die ersten beiden User-Exits laufen zu dem Zeitpunkt ab, zu dem der Belegkopf bzw. die Position gelesen wird. Sie enthalten einen MOVE-CORRESPONDING, mit dem gleichnamige Felder automatisch versorgt werden.
Der dritte User-Exit (V05...EN) wird am Ende des Programms vor Verlassen des Funktionsbausteins zur Nachbearbeitung prozessiert. Mit ihm können Felder versorgt werden, die nicht mit den User-Exits für Kopf oder Position versorgt werden.
Folgende User-Exits sind relevant:
  • Auftragsdokumente Kopfdaten:

V05DZZAK
  • Auftragsdokumente (Nachbearbeitung):

V05DZZEN
  • Auftragsdokumente Positionsdaten:

V05DZZAP
  • Lieferungsdokumente Kopfdaten:

V05OZZLK
  • Lieferungsdokumente (Nachbearbeitung)

V05OZZEN
  • Lieferungsdokumente Positionsdaten:

V05OZZLP
  • Fakturadokumente Kopfdaten:

V05NZZRK
Fakturadokumente (Nachbearbeitung):
V05NZZEN
  • Fakturadokumente Positionsdaten:

V05NZZRP

Die Buchungsperiode(POPER) soll auf dem Fakturakopf gedruckt werden. Je nachdem ob beim Feldnamen Namensgleichheit mit einem SAP-Feld besteht oder nicht, gehen Sie folgendermaßen vor:

  • bei Namensgleichheit:
Nehmen Sie das Feld POPER in den INCLUDE VBDKRZ (in der Kommunikationstabelle VBDKR) auf und ordnen ihm das Datenelement POPER zu.
Aufgrund der Namensgleichheit wird das Feld automatisch mittels MOVE-CORRESPONDING versorgt.
  • bei eigenen Feldnamen (beginnend mit "ZZ"):
Nehmen Sie das Feld ZZPOPER im INCLUDE VBDKRZ (in der Kommunikationsstruktur VBDKR) auf und ordnen ihm das Datenelement POPER zu.
Da keine Namensgleichheit besteht, müssen Sie das Feld im User-Exit V05NZZRK mit folgender Anweisung versorgen:
,,MOVE VBRK-POPER TO VBDKR-ZZPOPER.

Wenn Felder sowohl in der Position als auch im Kopf vorkommen, kann im dritten User-Exit (V05...EN) des jeweiligen Funktionsbausteins festgelegt werden, nach welcher Logik das Kopffeld aus der Position versorgt wird.

In diesem Fall muß im Druckprogramm oder im Formular die Logik der Ausgabe definiert werden. Im Formular sieht die Anweisung dazu z.B. folgendermaßen aus:

/: IF NE

/ &'Abweichende Verkäufergruppe' VBDPR-ZZVKGRP&

/: ENDIF.

Im zweiten Beispiel soll die Verkäufergruppe (ZZVKGRP) im Fakturakopf gedruckt werden. Außerdem sollen Verkäufergruppen, die vom Kopf abweichen, auf Positionsebene ausgegeben werden.

  1. Nehmen Sie das Feld VKGRP in den INCLUDE VBDPRZ (in der Kommunikationsstruktur VBDPR) auf und ordnen ihm das Datenelement VKGRP zu.
  2. Versorgen Sie das Feld im User-Exit V05NZZRP mit folgender Anweisung:
,, MOVE VBRP-VKGRP TO VBDRP-ZZVKGRP.
  1. Nehmen Sie das Feld ZZVKGRP in den INCLUDE VBDKRZ (in der Kommunikationsstruktur VBDKR) auf und ordnen ihm das Datenelement VKGRP zu.
  2. Um die Verkäufergruppeauf Kopfebene auszugeben, müssen Sie das aufgenommene Feld auf Kopfebene versorgen. Dies nehmen Sie im User-Exit V05NZZEN mit folgender Anweisung vor:
,, READ TABLE LVBDPR INDEX 1.
,, MOVE LVBDPR-ZZVKGRP TO VBDKR-ZZVKGRP.
Damit wird die Verkäufergruppe aus der ersten Position in den Kopf übernommen.

Im dritten Beispiel sollen abhängig von der Firmenorganisation neue Texte definiert und verwendet werden:

  • Diese Texte müssen mit S010 erfaßt und einer Text-ID zugeordnet werden.

  • Diese Texte müssen einer Verkaufsorganisation und einem Verkaufsbüro zugeordnet werden (s. Customizing Nachrichtenfindung: Nachrichten -> Formulartexte -> Je Verkaufsorganisation und Verkaufsbüro)

  • Im Auftrag, in der Lieferung und in der Faktura werden automatisch die Texte der Verkaufsorganisation gelesen.

  1. Datenbeschaffung
Wenn Texte abhängig von der Firmenorganisation (z.B. Verkaufsorganisation, Verkaufsbüro) variieren, müssen sie mittels Textnummern aus dem Datenbeschaffungsreport per INCLUDE ausgegeben werden. Wenn z.B. anstatt der Texte der Verkaufsorganisation Texte des Verkaufsbüros gelesen und auf der Auftragsbestätigung ausgegeben werden sollen, muß die Datenbeschaffung angepaßt werden.
Für die Auftragsbestätigung erfolgt dies im Programm RVADOR01. Dort enthält die Form-Routine SENDER standardmäßig die Verkaufsorganisation. Soll die gewünschte Anpassung vorgenommen werden, so muß diese in das Verkaufsbüro oder in die Verkaufsorganisation und in das Verkaufsbüro geändert werden.
  1. Datenaufbereitung
Die Reihenfolge der Ausgabe der Textelemente im MAIN-Fenster erfolgt programmgesteuert. Wenn eine andere Reihenfolge gewünscht wird als im Standard vorgegeben ist, müssen Sie diese im jeweiligen Druckprogramm anpassen. Die Datenaufbereitung erfolgt durch den Include
INCLUDE OBJECT TEXT ID SDVD PARAGRAPH XX

Nähere Informationen zur Datenaufbereitung erhalten Sie in der Dokumentation zu SAPscript.

Der Belegdruck läuft programmtechnisch (z.B. beim Ausgeben von Verkaufsbelegen) folgendermaßen ab:

  1. SAPMV45A
Der Ablauf wird mittels des FunktionscodesFCODE_DRCK angestoßen.
  1. SAPLVMSG
Mit RV_MESSAGE_PRINT_SINGLE wird ein Funktionsbaustein aufgerufen, der einen NAST-Satz selektiert. Der NAST-Satz enthält die zu einem bestimmten Zeitpunkt für das Drucken eines Dokuments benötigten Steuerungsdaten.
  1. RSNAST00 (Aufruf durch externen PERFORM aus RV_MESSAGE_PRINT_SINGLE)
In der Form-Routine EINZELNACHRICHT_DIALOG wird die Tabelle TNAPR gelesen, die pro Nachrichtenkonditionsart angibt, welches Programm, welche Form-Routine und welches Formular relevant sind.
  1. RVADOR01 (Druckreport, Aufruf durch externen PERFORM)
Aus der Form-Routine EINZELNACHRICHT_DIALOG wird der Druckreport RVADOR01 aufgerufen. Der Druckreport steuert alle wesentlichen Vorgänge, die mit dem Belegdruck in Zusammenhang stehen.
In der Standardauslieferung wird für den Aufruf des Druckprogramms die Form-Routine ENTRY benutzt. Wenn andere Form-Routinen verwendet werden sollen, müssen diese in der Tabelle TNAPR hinterlegt sein.
Der Aufruf beinhaltet zwei USING-Parameter:
  • Der RETURN-CODE steuert, ob der Druck erfolgreich war und kann folgende Werte annehmen:

0 = erfolgreich verarbeitet
1 = fehlerhaft
3 = Beleg unvollständig (VSTAT in NAST wird nicht gesetzt)
  • Der Parameter US_SCREEN legt fest, wo die Ausgabe erscheint. Dabei bedeutet

nicht blank = Ausgabe erfolgt auf dem Bildschirm
blank = Ausgabe erfolgt auf dem Drucker
  1. Mit PERFORM PROCESSING (Aufruf durch die Form-Routine ENTRY in RVADOR01) werden folgende Vorgänge beim Belegdruck gesteuert:
  • Datenbeschaffung

  • Öffnen und Schließen des Formulars

  • Reihenfolge, in der die Formulartextelemente aufgerufen werden

  • allgemeine Kopfausgaben (Titel, Gültigkeitszeitraum, Kopftext)

  • Positionsausgabe

  • Bearbeitung nach den Positionen (Summen, Anhangstexte)






Vendor Master (General Section)   SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 14724 Date: 20240523 Time: 040907     sap01-206 ( 166 ms )