ABAP - BOPF Hilfsmethoden
Das Framework stellt dir verschiedene Methoden und Objekte zur Verfügung, die die Benutzung vereinfachen sollen.
Inhaltsverzeichnis
Im heutigen Artikel wollen wir dir kurz zeigen, was es so für Methoden und Hilfen von BOPF gibt, die dich bei der Entwicklung unterstützen und dir Zeit ersparen, wenn du sie wiederverwendest. An einigen Stellen sollte man diese auch verwenden, da es sonst zu Problemen oder Fehlern kommen kann.
Framework Factory
Über die Factory Klasse /BOBF/CL_FRW_FACTORY des Frameworks bekommst du einige Hilfemethoden zur Verfügung gestellt. Hierbei handelt es sich um allgemeine Methoden zum Handling mit den Daten.
GET_MESSAGE
Rückgabe eines neuen Nachrichten-Objekts zur Übergabe von Fehlernachrichten bei Problemen mit der Datenermittlung oder Verarbeitung. Über das Objekt lässt sich auch der aktuelle Fehlerstatus ermitteln.
GET_NEW_KEY
Erzeugung eines neuen eindeutigen Schlüssels zur Sicherung der Daten auf der Datenbank. Im Normalfall wird ein Schlüssel generiert, wenn keiner übergeben wird. Möchtest du allerdings Daten mit Assoziationen anlegen, benötigst du für die Assoziation bereits den Schlüssel des vorhergehenden Eintrags.
GET_NEW_TRANSIENT_KEY
Erstellt einen neuen transienten Schlüssel und gibt ihn zurück. Diese Schlüssel können für Wegwerfdatensätze erstellt werden, wenn zum Beispiel ganze Knoten im Modell transient sind, diese aber einen Schlüssel zwecks Identifizierung benötigen.
GET_CONFIGURATION
Einlesen der Konfiguration zu einem übergebenen Objekt (Schlüssel des Datenmodells aus dem Konstanten Interface) und Rückgabe eines Objekts vom Typ /BOBF/CL_CONFRT_COMPLETE.
DATA(lo_config) = /bobf/cl_frw_factory=>get_configuration( zif_tst_bopf_c=>sc_bo_key ).
lo_config->get_node(
EXPORTING
iv_node_key = zif_tst_bopf_c=>sc_node-conditions
IMPORTING
es_node = DATA(ls_node)
).
Die Struktur von LS_NODE enthält dann Informationen zu dem gewählten Knoten im Beispiel oben. So findet man leicht die Datentypen oder Tabellen zu dem entsprechend gewählten Knoten.
Konstanten Interface
Das generierte Konstanten Interface ist ein wichtiger Zugriffspunkt auf die generierten Schlüssel und Knoten und verbindet diese mit sprechenden Namen. Wie du bereits im Beispiel oben gesehen hast, kannst du damit in lesbarer Form die Konfiguration zum Datenmodell lesen, ohne dir den technischen Schlüssel merken zu müssen.
Hinweis: Bei neuen Knoten oder Änderungen im Modell wird das Konstanteninterface neu generiert, deshalb am Besten immer nur über die Konstanten zugreifen, da sich diese nicht ändern, solange sich die Knotennamen nicht ändern.
Als Beispiel einmal ein Auszug aus dem Interface für unser Datenmodell:
INTERFACE zif_tst_bopf_c
PUBLIC .
INTERFACES /bobf/if_lib_constants .
CONSTANTS:
BEGIN OF sc_action,
BEGIN OF conditions,
create_conditions TYPE /bobf/act_key VALUE '42D85ED56C0A1ED9AEA0558383898007',
delete_conditions TYPE /bobf/act_key VALUE '42D85ED56C0A1ED9AEA055838416C007',
save_conditions TYPE /bobf/act_key VALUE '42D85ED56C0A1ED9AEA055838493C007',
update_conditions TYPE /bobf/act_key VALUE '42D85ED56C0A1ED9AEA0558383D70007',
validate_conditions TYPE /bobf/act_key VALUE '42D85ED56C0A1ED9AEA0558384568007',
END OF conditions,
BEGIN OF contract,
create_contract TYPE /bobf/act_key VALUE '42D85ED56C0A1ED9AEA0525CBC3E8006',
delete_contract TYPE /bobf/act_key VALUE '42D85ED56C0A1ED9AEA0525CBF46C006',
lock_contract TYPE /bobf/act_key VALUE '42D85ED56C0A1ED9AEA0525B61750006',
partner_sign TYPE /bobf/act_key VALUE '42D85ED56C0A1EEA82BB08B1DA099376',
save_contract TYPE /bobf/act_key VALUE '42D85ED56C0A1ED9AEA0525CBFCF0006',
unlock_contract TYPE /bobf/act_key VALUE '42D85ED56C0A1ED9AEA0525B89214006',
update_contract TYPE /bobf/act_key VALUE '42D85ED56C0A1ED9AEA0525CBC8C0006',
validate_contract TYPE /bobf/act_key VALUE '42D85ED56C0A1ED9AEA0525CBF8E0006',
END OF contract,
BEGIN OF notes,
create_notes TYPE /bobf/act_key VALUE '42D85ED56C0A1ED9AEA058A5C783400A',
delete_notes TYPE /bobf/act_key VALUE '42D85ED56C0A1ED9AEA058A5C85CC00A',
save_notes TYPE /bobf/act_key VALUE '42D85ED56C0A1ED9AEA058A5C8DD800A',
update_notes TYPE /bobf/act_key VALUE '42D85ED56C0A1ED9AEA058A5C81BC00A',
validate_notes TYPE /bobf/act_key VALUE '42D85ED56C0A1ED9AEA058A5C89F000A',
END OF notes,
BEGIN OF partners,
create_partners TYPE /bobf/act_key VALUE '42D85ED56C0A1ED9AEA0576054AC800A',
delete_partners TYPE /bobf/act_key VALUE '42D85ED56C0A1ED9AEA057605583800A',
save_partners TYPE /bobf/act_key VALUE '42D85ED56C0A1ED9AEA057605638C00A',
update_partners TYPE /bobf/act_key VALUE '42D85ED56C0A1ED9AEA057605527000A',
validate_partners TYPE /bobf/act_key VALUE '42D85ED56C0A1ED9AEA0576055DD800A',
END OF partners,
BEGIN OF price_scale,
create_price_scale TYPE /bobf/act_key VALUE '42D85ED56C0A1ED9AEA05A0EE35D800A',
delete_price_scale TYPE /bobf/act_key VALUE '42D85ED56C0A1ED9AEA05A0EE453C00A',
save_price_scale TYPE /bobf/act_key VALUE '42D85ED56C0A1ED9AEA05A0EE511C00A',
update_price_scale TYPE /bobf/act_key VALUE '42D85ED56C0A1ED9AEA05A0EE3F6000A',
validate_price_scale TYPE /bobf/act_key VALUE '42D85ED56C0A1ED9AEA05A0EE4B6800A',
END OF price_scale,
BEGIN OF rules,
create_rules TYPE /bobf/act_key VALUE '42D85ED56C0A1ED9AEA057BD6EDBC00A',
delete_rules TYPE /bobf/act_key VALUE '42D85ED56C0A1ED9AEA057BD6F94C00A',
save_rules TYPE /bobf/act_key VALUE '42D85ED56C0A1ED9AEA057BD7014400A',
update_rules TYPE /bobf/act_key VALUE '42D85ED56C0A1ED9AEA057BD6F2E400A',
validate_rules TYPE /bobf/act_key VALUE '42D85ED56C0A1ED9AEA057BD6FD5C00A',
END OF rules,
END OF sc_action .
Fazit
Das Framework stellt dir bereits viele Methoden und Klassen zur Verfügung, die dir beim Zugriff auf die Daten, die Konfiguration und die Inhalte helfen. Mit den bereitgestellten Objekten solltest du eigentlich alles haben, was du für die Arbeit mit BOPF benötigst.