Ansicht
Dokumentation

FARR_BADI_EXTND_CHEK - BAdI: Erweiterte Prüfung vor Sicherung in Datenbank

FARR_BADI_EXTND_CHEK - BAdI: Erweiterte Prüfung vor Sicherung in Datenbank

CL_GUI_FRONTEND_SERVICES - Frontend Services   CL_GUI_FRONTEND_SERVICES - Frontend Services  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Dieses Business Add-In (BAdI) wird in der Erlösbuchhaltung (FI-RA) verwendet. Mit diesem BAdI können Sie die Daten überprüfen, bevor sie in der Datenbanktabelle der Erlösbuchhaltung gesichert werden.

Die Erlösbuchhaltung generiert und aktualisiert Verträge aus operativen Belegen. Während dieser Prozesse werden operative Belege aus den operativen Systemen oder Logistiksystemen des Kunden verwendet. Diese operativen Belege können aus einem SAP-System oder einem Fremdsystem stammen und die Daten in diesen operativen Belegen können sich im Laufe der Zeit ändern. Möglicherweise gibt es Fehler in der Implementierung des Kunden oder es kommen inkonsistente Daten aus den operativen Belegen. All diese Faktoren können zu Dateninkonsistenzen in der Erlösbuchhaltung beitragen. Wenn inkorrekte Daten generiert und in der Datenbank gesichert werden, ist deren Korrektur sehr aufwändig. Deshalb ist dieses BAdI als präventive Prüfung konzipiert, bevor inkonsistente Daten in die Datenbank übertragen werden.

Wenn die präventive Prüfung inkonsistente Daten feststellt, stoppt das System die Verarbeitung des entsprechenden Vertrags. Die Inkonsistenz kann entweder bei der Verarbeitung von Erlösbuchhaltungspositionen (EBPs) oder der manuellen Änderung auf der Benutzeroberfläche festgestellt werden.

  • Wenn die Inkonsistenz bei der Verarbeitung von Erlösbuchhaltungspositionen festgestellt wird, stoppt das System die Verarbeitung und markiert die betroffenen Erlösbuchhaltungspositionen mit einem Fehlerstatus. So wird der entsprechende Erlösbuchhaltungsvertrag weder angelegt noch aktualisiert. Bei der Massenverarbeitung werden andere Verträge ohne Inkonsistenzen jedoch normal verarbeitet und in der Datenbank gesichert.
  • Wenn die Inkonsistenz bei einer manuellen Änderung festgestellt wird, meldet das System einen Fehler und der Erlösbuchhaltungsvertrag wird nicht in der Datenbank gesichert.

Standardmäßig prüft dieses BAdI, ob:

  • die Gesamtsumme der Zuordnungseffekte für die Leistungsverpflichtungen in einem Erlösbuchhaltungsvertrag Null ist und der gesamte zugeordnete Preis eines Vertrags dem Gesamttransaktionspreis entspricht
  • die zugeordnete Summe einer Leistungsverpflichtung der Gesamtsumme aus allen Perioden des Erlösplans für diese Leistungsverpflichtung in der Abgrenzungspostentabelle entspricht
  • die effektive Menge der Leistungsverpflichtung der Gesamtmenge aller Erfüllungen für eine ereignisbasierte Leistungsverpflichtung entspricht, wenn die Leistungsverpflichtung vollständig erfüllt ist; die effektive Menge der Leistungsverpflichtung der Gesamtmenge aller Erfüllungen für eine zeitbasierte Leistungsverpflichtung entspricht
  • die effektive Menge einer zeitbasierten Leistungsverpflichtung der eingeplanten Menge aus der Abgrenzungspostentabelle und der Erfüllungstabelle entspricht
  • das letzte Kennzeichen für Abgrenzungsposten korrekt gesetzt ist
  • die Gesamtsumme gebuchter Erlöse der eingeplanten Zahl in der Abgrenzungspostentabelle entspricht
  • die Gesamtsumme gebuchter Rechnungskorrekturen der fakturierten Summe in den Abgrenzungsposten entspricht
  • das Sonderkennzeichen korrekt gefüllt wurde. Dies bedeutet, dass für jede Haupt-Preiskonditionsart von der Senderkomponente das Feld des Sonderkennzeichens mit dem Wert 'P‘ gefüllt sein muss. Es muss für jeden Abstimmschlüssel und Leistungsverpflichtung eine Kondition geben, die als Haupt-Preiskondition gekennzeichnet ist.
  • der Zuordnungseffekt einer Leistungsverpflichtung der zugeordneten Summe minus dem Transaktionspreis dieser Leistungsverpflichtung entspricht
  • die übertragene Rechnungssumme in der Tabelle FARR_D_INVOICE der gebuchten Rechnungssumme in FARR_D_POSTING entspricht
  • es eine Leistungsverpflichtung ohne Abgrenzungsposten gibt
  • die Transaktionswährung und die Hauswährung unterschiedliche Vorzeichen haben
  • PAOBJNR entsprechend der Einstellungen in CO-PA korrekt gepflegt ist
  • Abgrenzungsposten mit den richtigen Abstimmschlüsseln korrekt angelegt, aktualisiert oder gelöscht wurden
  • ob es die folgenden inkonsistenten Situationen während der Verarbeitung von Erlösbuchhaltungspositionen für Verträge mit einer Methode des festen Wechselkurses gibt:
  • die festen Wechselkurse der Verträge fehlen

  • die Währungsschlüssel in Buchungseinträgen unterscheiden sich von denen in den entsprechenden Verträgen

  • die Währungsschlüsseleinstellungen auf Vertragsebene unterscheiden sich von denen auf Buchungskreisebene

  • die Kursdifferenz fehlt während der Rechnungsbearbeitung

Indem Sie dieses BAdI implementieren, können Sie ebenfalls die folgenden Aufgaben ausführen:

  • die oben aufgeführten Standardprüfungen deaktivieren
Angenommen Sie möchten einige Standardprüfungen deaktivieren, weil diese Prüfungen irrelevant sind oder Sie die Prüfungen nur im Testsystem aktivieren möchten. Dann können Sie Ihre eigene Implementierungsklasse anlegen und die Klasse CL_FARR_EXTENDED_CHECK erben. Dann übersteuern Sie die Methode INIT_NO_CHECK_SETTINGS. Setzen Sie während der Implementierung die entsprechende Komponente NO_CHECK_EXX von MS_NO_CHECK auf ABAP_TRUE, so dass Sie die Standardprüfungen deaktivieren können.
  • bestimmte Verträge von den präventiven Prüfungen ausschließen
Angenommen Sie möchten bestimmte Verträge von den Prüfungen ausschließen, da die sich aus der Inkonsistenz ergebende Summe im Vergleich zum Transaktionspreis des Vertrags nicht bedeutend ist. Dann können Sie Ihre eigene Implementierungsklasse anlegen und die Klasse CL_FARR_DATA_EXTENDED_CHECK erben. Dann übersteuern Sie die Methode CHECK_CONTRACT. Bei der Implementierung von PROCESS_INPUT kopieren Sie den Code für die Default-Implementierung und fügen ganz zu Anfang des Codes eine Bedingungsprüfung hinzu, um zu sehen, ob sich der Vertrag in der Ausnahmeliste befindet oder beim Lesen von IS_CONTRACT_DATA_BUFFER bestimmte Kriterien erfüllt. Wenn die Bedingung erfüllt ist, führt das System die Prüfungen durch.
  • eine kundenspezifische Prüflogik implementieren
Angenommen Sie möchten einige kundenspezifischen Prüfungen implementieren. Dann können Sie Ihre eigene Implementierungsklasse anlegen und die Klasse CL_FARR_DATA_EXTENDED_CHECK erben. Dann übersteuern Sie die Methode CHECK_CONTRACT. Bei der Implementierung von CHECK_CONTRACT rufen Sie zunächst die Implementierung der Oberklasse auf und fügen dann Ihre eigene Logik hinzu, nachdem die Oberklassenimplementierung aufgerufen wurde.

Weitere Informationen über die Standardeinstellungen (Filter, einfache oder mehrfache Verwendbarkeit) finden Sie auf der Registerkarte Erweiterungsspot-Elementdefinitionen im BAdI Builder (Transaktion SE18).

Dokumentation der BAdI-Methode:

Informationen über die Implementierung von BAdIs als Teil des Erweiterungskonzepts finden Sie in der SAP-Bibliothek für SAP NetWeaver Platform auf dem SAP Help Portal unter http://help.sap.com/nw_platform. Wählen Sie ein Release und anschließend Application Help. Wählen Sie in der SAP-Bibliothek SAP-NetWeaver-Bibliothek: Funktionsorientierte Sicht -> Application Server -> Application Server ABAP -> Applikationsentwicklung auf AS ABAP -> ABAP Customer Development -> Enhancement.






rdisp/max_wprun_time - Maximum work process run time   ABAP Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 9484 Date: 20240603 Time: 175931     sap01-206 ( 164 ms )