MIND FORMS » SAP Formulartechnologien » Nachrichtensteuerung
Logik der Kopie-Kennzeichen bei Formularen
In diesem Blogbeitrag möchte ich Ihnen vorstellen, nach welcher Logik der Kopie-Kennzeichen im SAP Standard (am Beispiel von SAPScript) das Kennzeichen für einen Wiederholungsdruck setzt.
Bekommen Sie Rechnungen aus dem Ausland, bei denen oben rechts “Original” bzw. “Kopie” angedruckt und teilweise sogar eine Nummerierung des Exemplars angegeben ist? Zumindest kennen Sie das übliche Kopie Kennzeichen auf Rechnungen, ob es sich um eine Kopie oder ein Original handelt. Selbstverständlich muss auch im SAP System beim Erzeugen von Rechnungen darauf geachtet werden, dass die gesetzlichen Vorschriften des jeweiligen Landes eingehalten werden.
SAP Standard Druckprogramm RVADIN01
Am Beispiel des SAP Standard-Druckprogramms RVADIN01 für SAPScript-Formulare und dem zugehörigen Formular RVINVOICE01 möchte ich Ihnen das übliche Verhalten erklären. Grundsätzlich gibt es auf dem Formular ein Fenster
repeat, welches entsprechend im Layout platziert ist. In diesem Fenster gibt es das Element repeat, welches bei SAPScript nur ausgegeben wird, wenn es explizit im SAP Druckprogramm angesteuert wird. Zu der Besonderheit für Ungarn (IF-Statement im Element) kommen wir später.
Deswegen ist die zugehörige Logik im Druckprogramm zu suchen, die dieses Verhalten steuert. In der Routine form_title_print ist der entsprechende Abschnitt, der angesteuert wird, wenn das Feld repeat den Wert “X” hat.
Das Feld repeat wird in der Routine check_repeat gesetzt, die bei jedem Aufruf des Druckprogramms einmalig aufgerufen wird. Im Prinzip wird dort in der Datenbanktabelle
NAST nach bereits verarbeiteten Nachrichten mit denselben Parametern gesucht, bei gefundenen Einträgen die Variable repeat auf “X” gesetzt und die Anzahl gezählt.
Der eigentliche Aufbau des Formulars bzw. das Drucken der Formulare sieht wie folgt aus. In der Routine get_data werden die Daten gelesen und die Routine check_repeat aufgerufen. Im Anschluss wird pro zu druckendes Exemplar aus der Nachricht ein Durchlauf der Schleife ausgeführt. Durch die Abfragen in Zeile 311 und Zeile 315 wird sichergestellt, dass pro Nachricht maximal einmal archiviert wird und dass auch bei Erstverarbeitung für den Beleg nur bei einem Exemplar dieser Nachricht kein Kennzeichen für Wiederholungsdruck angedruckt wird.
Optimierungspotential der Logik der Kopie-Kennzeichen
Die Logik zum Aufbauen des Formulars hat Optimierungspotential. Beispielsweise können Sie beim Formularaufruf die Anzahl in der Struktur NAST (nast-anzal) so belassen. Dadurch würden im Ergebnis direkt nast-anzal Exemplare ausgegeben werden. Damit Sie trotzdem nach wie vor Original und Kopien unterscheiden können, müssten Sie für den Fall der Erstverarbeitung den Formularaufruf zwei Mal durchlaufen lassen, einmal für das Original und dann erneut mit (nast-anzal = nast-anzal – 1).
Sonderfälle
Wie bereits oben im Fenster repeat zu sehen, gibt es eine Sonderlogik für Ungarn und auch in anderen Ländern. In Ungarn werden sämtliche Exemplare durchnummeriert, was natürlich eine Sonderprogrammierung im Druckprogramm bedeutet, die durch eine eigene Routine entry_hungary realisiert ist. Ein Beispiel für eine solche Nummerierung könnte wie folgt aussehen.
Fazit
Ich hoffe ich konnte Ihnen die Logik der Kopie-Kennzeichen im SAP Standard näher bringen und Ihnen einen Einblick in mögliche Sonderfälle geben. Der SAP Standard verhält sich bei dem Einsatz von SAP Smart Forms und SAP Interactive Forms by Adobe ähnlich. Wenn Sie neue Anforderungen in dem Umfeld umsetzen möchten, oder noch nicht durch den SAP Standard erfüllte gesetzliche Vorschriften umsetzen müssen, dann wissen Sie nun, wo Sie starten können. Ich freue mich über Logik Fragen und Kommentare!