SAP VOFM: Anforderungen und Formeln verstehen und automatisieren

VOFM Startbildschirm in SAP

Die effiziente Anpassung und Erweiterung von SAP-Systemen ist für viele Unternehmen entscheidend. Eine Kernkomponente hierfür sind die VOFM-Transaktionen, die es ermöglichen, spezifische Anforderungen und Formeln für verschiedene Geschäftsprozesse zu definieren. Dieser Blogbeitrag beleuchtet die Funktionsweise von VOFM-Routinen, die Bedeutung der Codegenerierung mittels des Programms RV80HGEN und wie diese Generierung im Transportwesen automatisiert werden kann, um eine reibungslose Implementierung zu gewährleisten.

Was sind VOFM-Anforderungen und -Formeln?

VOFM (Varianten von Funktionen und Merkmalen) ist eine zentrale Transaktion im SAP-System, die es Beratern und Entwicklern ermöglicht, individuelle ABAP-Routinen für eine Vielzahl von Geschäftsprozessen zu erstellen. Diese Routinen werden oft als “Anforderungen” oder “Formeln” bezeichnet und dienen dazu, Standardlogiken des SAP-Systems zu erweitern oder zu überschreiben, ohne den SAP-Standardcode direkt zu modifizieren.

Die Anwendungsbereiche von VOFM sind vielfältig und umfassen:

  • Preisfindung (Pricing): Definition komplexer Bedingungen für die Anwendung von Preisen, Rabatten oder Zuschlägen in Verkaufsbelegen.
  • Verkaufsbelege: Steuerung des Datenflusses und der Prüfungen in Verkaufsaufträgen, Lieferungen oder Fakturen.
  • Kopiersteuerung: Festlegung, welche Daten beim Kopieren von Belegen (z.B. von einem Verkaufsauftrag in eine Lieferung) übernommen oder angepasst werden sollen.
  • Nachrichtensteuerung: Bedingungen für das Versenden von Nachrichten (Ausgabe) an Kunden oder Partner.

Jede VOFM-Routine ist eine kleine ABAP-Programmstück, das unter einer eindeutigen Nummer (oft im Kunden-Namensraum 900-999) gespeichert wird. Diese Routinen werden dynamisch vom SAP-System zur Laufzeit aufgerufen, wenn die entsprechenden Bedingungen im Customizing erfüllt sind.

Die Transaktion VOFM selbst dient als zentraler Einstiegspunkt für die Pflege dieser Routinen. Der Startbildschirm bietet eine menübasierte Navigation zu den verschiedenen Typen von Anforderungen und Formeln:

Weiterlesen >>  Lexware Fibu Programm: Finanzbuchhaltung einfach & rechtskonform meistern

VOFM Startbildschirm in SAPVOFM Startbildschirm in SAP

Ein umfassendes Verständnis der VOFM-Funktionen und ihrer Objekte bietet der SAP OSS Hinweis 327220.

Als Beispiel betrachten wir die Erstellung einer neuen Anforderung für die Preisfindung. Im Menü wählen Sie “Anforderungen” und dann “Preisfindung”. Hier können Sie eine neue Routine im Kunden-Namensraum (z.B. 901) anlegen. Das System verlangt hierfür einen SCCR-Objektschlüssel, da es sich um eine Systemmodifikation handelt.

Benutzerdefinierte Anforderung für die Preisfindung in VOFMBenutzerdefinierte Anforderung für die Preisfindung in VOFM

Nach dem Speichern können Sie die Routine durch Doppelklick bearbeiten und Ihren individuellen ABAP-Code einfügen. Dieser Code wird dann bei der Ausführung der Preisfindung unter den definierten Bedingungen aufgerufen.

ABAP-Benutzercode für individuelle Anforderungen in VOFMABAP-Benutzercode für individuelle Anforderungen in VOFM

Es ist wichtig zu beachten, dass VOFM-Routinen in einer speziellen Modifikationsumgebung bearbeitet werden. Jeglicher Code, der hier eingegeben wird, muss syntaktisch korrekt sein und den SAP-Programmierrichtlinien entsprechen. Fehler im VOFM-Code können zu Laufzeitfehlern in kritischen Geschäftsprozessen führen.

Programmbasiertes Generieren der VOFM-Routinen

Nachdem eine VOFM-Routine erstellt oder geändert wurde, ist ein entscheidender Schritt die Generierung dieser Routine. Ohne diesen Schritt wird das SAP-System die neue oder aktualisierte Logik nicht erkennen und somit nicht ausführen. Die Generierung erfolgt über das Programm RV80HGEN.

Doch warum ist diese Generierung notwendig? VOFM-Routinen werden nicht direkt als ABAP-Quellcode ausgeführt. Stattdessen generiert SAP aus dem in VOFM hinterlegten Code zur Laufzeit Funktionsbausteine oder Includes, die dann in den relevanten Standardprogrammen aufgerufen werden. Dieser Generierungsschritt stellt sicher, dass der Code aktiviert und für das System verfügbar ist. Wenn RV80HGEN nicht ausgeführt wird, bleiben die Änderungen in VOFM inaktiv, und das System verhält sich, als ob die Routine nicht existiert oder sich noch im alten Zustand befindet.

Weiterlesen >>  Wie Sie an Microsoft Teams-Besprechungen teilnehmen: Ein umfassender Leitfaden

RV80HGEN führt eine Überprüfung aller VOFM-Routinen durch und generiert die zugehörigen ausführbaren Objekte neu. Es ist eine gute Praxis, dieses Programm nach jeder Änderung an VOFM-Routinen manuell oder automatisiert auszuführen, insbesondere in Entwicklungsumgebungen.

Automatisierung der Generierung nach dem Transport

Ein häufig übersehener Aspekt bei der Arbeit mit VOFM-Routinen ist deren Verhalten nach einem Systemtransport. Wenn Sie eine VOFM-Routine von einem Entwicklungssystem in ein Qualitätssicherungs- oder Produktivsystem transportieren, wird der Code der Routine transportiert, aber nicht unbedingt die generierte Version im Zielsystem automatisch aktualisiert. Das bedeutet, dass die neue oder geänderte Routine im Zielsystem zunächst inaktiv bleiben kann, selbst wenn der Transport erfolgreich war.

Um sicherzustellen, dass die VOFM-Routinen in den Zielsystemen sofort nach dem Transport wirksam werden, muss RV80HGEN im jeweiligen Zielsystem ausgeführt werden. Dies manuell nach jedem Transport zu tun, kann jedoch fehleranfällig und zeitaufwendig sein, besonders in Umgebungen mit vielen Transporten.

Die beste Lösung hierfür ist die Automatisierung der RV80HGEN-Ausführung als Nachbearbeitungsschritt im Transportwesen. Dies geschieht durch das Hinzufügen einer XPRA-Aktion (Execute Program After Transport) zum Transportauftrag. Eine XPRA-Aktion weist das Transport Management System (TMS) an, ein bestimmtes Programm nach dem Import des Transports im Zielsystem automatisch auszuführen.

So fügen Sie eine XPRA-Aktion hinzu:

  1. Öffnen Sie Ihren Transportauftrag (oder die Transportaufgabe) im Änderungsmodus.
  2. Fügen Sie eine neue Zeile in der Objektliste hinzu.
  3. Geben Sie folgende Werte ein:
    • Programm-ID: R3TR
    • Objekttyp: XPRA
    • Objektname: RV80HGEN
  4. Speichern Sie den Transportauftrag.

Nach diesem Schritt wird RV80HGEN automatisch im Zielsystem ausgeführt, sobald der Transport erfolgreich importiert wurde. Dies garantiert, dass alle VOFM-Routinen sofort aktiviert sind und die beabsichtigte Logik korrekt angewendet wird.

Es gibt auch einen SAP OSS Hinweis 598475, der eine Modifikation beschreibt, um die XPRA-Aktion für neu erstellte Routinen zu automatisieren. Es ist jedoch wichtig zu beachten, dass dieser Hinweis keine automatische XPRA-Erstellung für Änderungen an bestehenden Routinen vorsieht. In solchen Fällen ist das manuelle Hinzufügen der XPRA-Aktion zum Transportauftrag weiterhin die empfohlene Methode.

Weiterlesen >>  Bitdefender Total Security vs. Norton 360 Premium: Der Ultimative Vergleich für Deutsche Nutzer

Relevante OSS Hinweise

Bei der Arbeit mit VOFM und der Generierung können verschiedene Probleme auftreten. Die folgenden SAP OSS Hinweise bieten weiterführende Informationen und Lösungen für häufige Fragestellungen:

  • 327220 – VOFM function and its objects: Dieser Hinweis erklärt detailliert die Funktion und die verschiedenen Objekttypen, die in VOFM gepflegt werden können. Es ist eine unverzichtbare Ressource für ein tiefes Verständnis von VOFM.
  • 598475 – XPRA RV80HGEN when transporting VOFM objects: Dieser Hinweis befasst sich mit der Automatisierung der RV80HGEN-Ausführung während des Transports, insbesondere für neu erstellte VOFM-Routinen. Er liefert wertvolle Einblicke, ist aber, wie erwähnt, nicht vollständig für alle Szenarien anwendbar.

Das Verständnis und die korrekte Handhabung von VOFM-Routinen sowie deren Generierung und Transport sind für SAP-Entwickler und -Berater unerlässlich. Durch die Beachtung der hier beschriebenen Schritte können Sie die Stabilität und Korrektheit Ihrer SAP-Anpassungen gewährleisten.

Fazit

VOFM-Anforderungen und -Formeln sind mächtige Werkzeuge zur Erweiterung der SAP-Standardfunktionalität. Die korrekte Erstellung, Pflege und vor allem die Generierung der Routinen mittels RV80HGEN sind entscheidend für deren Wirksamkeit. Durch die Automatisierung der RV80HGEN-Ausführung als XPRA im Transportwesen können Sie sicherstellen, dass Ihre kundenspezifischen Logiken in allen Systemlandschaften zuverlässig und ohne manuelle Eingriffe aktiviert werden. Nutzen Sie diese Best Practices und die relevanten OSS Hinweise, um Ihre SAP-Projekte effizient und fehlerfrei zu gestalten.