Benutzerdefinierte Felder in Oracle BRM
Oracle Communications Billing and Revenue Management (Oracle BRM \ früher bekannt als Portal Infranet) bietet zwei Methoden zum Erstellen, Bearbeiten und Löschen von benutzerdefinierten Feldern und speicherbaren Klassen. Die eine Methode ist die Verwendung des Storable Class Editor, der Teil der Anwendung Developer Center ist, und die andere die Verwendung von SDK-Opcodes. Aus einer Reihe von Gründen bevorzuge ich die letztere Methode. In diesem Beitrag werde ich mich mit der Bearbeitung von benutzerdefinierten Feldern mit SDK-Opcodes befassen.
Bevor Sie beginnen, müssen Sie zunächst eine Änderung vornehmen: das Datenwörterbuch beschreibbar machen. So geht's:
1. Öffnen Sie die Oracle DM- oder Microsoft SQL Server DM-Konfigurationsdatei (BRM_HOME/sys/dm_oracle/pin.conf oder BRM_HOME/sys/dm_odbc/pin.conf) in einem Texteditor.
2. Aktivieren Sie die Feldmanipulation im Datenwörterbuch, indem Sie den folgenden Eintrag auf 1 setzen:- dm dd_write_enable_fields 1
Unsere Ziele sind wie folgt:
1. So erstellen Sie ein benutzerdefiniertes Feld
2. So bearbeiten Sie die Beschreibung des benutzerdefinierten Feldes
3. So löschen Sie das benutzerdefinierte Feld aus der Datenbank
4. Um das benutzerdefinierte Feld für den BRM verfügbar zu machen
Ein neues benutzerdefiniertes Feld erstellen
Die Erstellung eines neuen benutzerdefinierten Feldes und dessen Übertragung in die Datenbank kann mit SDK-Opcodes oder mit einem Pin-Deploy-Dienstprogramm erfolgen. Wie Entwickler wissen, bieten SDK-Opcodes eine flexiblere Möglichkeit, benutzerdefinierte Felder im Entwicklungsstadium zu erstellen, zu bearbeiten und zu löschen. Das Pin Deploy Utility hingegen verwendet PODL (Portal Object Definition Language), um Feld- und speicherbare Klassendefinitionen zu exportieren und zu importieren. Dies ist vor allem auf administrativer Ebene sinnvoller, da der Prozess durch die Aufnahme von Felddefinitionen in die Quellcodeverwaltung gestrafft werden kann und so die Möglichkeit einer Beschädigung des Datenwörterbuchs der Oracle BRM-Produktionsdatenbank verringert wird.
Die folgenden SDK-Opcodes können verwendet werden, um Feldspezifikationen zu verwalten:
1. PCM_OP_SDK_SET_FLD_SPECS - erstellt oder ändert ein Feld,
2. PCM_OP_SDK_GET_FLD_SPECS - Abrufen einer Feldspezifikation,
3. PCM_OP_SDK_DEL_FLD_SPECS - ein Feld löschen.
Um ein Feld zu erstellen, müssen Sie eine Eingabedatei für den Opcode PCM_OP_SDK_SET_FLD_SPECS schreiben:
0 PIN_FLD_POID POID [0] 0.0.0.1 /dd/fields 0 0
0 PIN_FLD_FIELD ARRAY [0]
1 PIN_FLD_DESCR STR [0] "benutzerdefiniertes Feld für eine Umsatzsteuer-Identifikationsnummer".
1 PIN_FLD_FIELD_NAME STR [0] "C_FLD_VAT_NUMBER"
1 PIN_FLD_FIELD_NUM ENUM [0] 10000
1 PIN_FLD_FIELD_TYPE INT [0] 5
Überprüfen Sie nun, ob das erstellte Feld im Datenwörterbuch der Datenbank vorhanden ist, indem Sie den Opcode PCM_OP_SDK_GET_FLD_SPECS mit der folgenden Eingabeliste füttern:
0 PIN_FLD_POID POID [0] 0.0.0.1 /dd/objects 0 0
0 PIN_FLD_FIELD ARRAY [0]
1 PIN_FLD_FIELD_NAME STR [0] "C_FLD_VAT_NUMBER"
Bearbeiten der Beschreibung des benutzerdefinierten Feldes
Nachdem Sie nun bestätigt haben, dass das neue benutzerdefinierte Feld existiert, können Sie die Beschreibung ändern, indem Sie den Opcode PCM_OP_SDK_SET_FLD_SPECS mit der folgenden Eingabeliste aufrufen:
0 PIN_FLD_POID POID [0] 0.0.0.1 /dd/fields 0 0
0 PIN_FLD_FIELD ARRAY [0]
1 PIN_FLD_DESCR STR [0] "benutzerdefiniertes Feld - Umsatzsteuernummer"
1 PIN_FLD_FIELD_NAME STR [0] "C_FLD_VAT_NUMBER"
1 PIN_FLD_FIELD_NUM ENUM [0] 10000
1 PIN_FLD_FIELD_TYPE INT [0] 5
Auch hier können die Spezifikationen des Feldes abgerufen werden, um zu überprüfen, ob die Änderung durchgeführt wurde.
Danach löschen Sie das benutzerdefinierte Feld aus der Datenbank.
Nehmen Sie schließlich an, dass ein Fehler gemacht wurde und Sie ein Feld löschen müssen. Geben Sie die folgende Eingabedatei für den Opcode PCM_OP_SDK_DEL_FLD_SPECS ein, um das Feld zu löschen:
0 PIN_FLD_POID POID [0] 0.0.0.1 /dd/fields 0 0
0 PIN_FLD_FIELD ARRAY [0]
1 PIN_FLD_FIELD_NAME STR [0] "C_FLD_VAT_NUMBER"
Wenn der Opcode zum Abrufen der Feldspezifikationen eine leere Liste zurückgibt (nur POID obj), bedeutet dies, dass das Feld nicht im Datenwörterbuch der Datenbank gefunden wurde.
Benutzerdefinierte Felder für den BRM verfügbar machen
Die Standardpraxis schreibt vor, dass alles, was benutzerdefiniert entwickelt wird, in das Verzeichnis BRM_HOME/custom kommt. Da in diesem Fall BRM_HOME/include/pin_flds.h erweitert wird, muss eine neue benutzerdefinierte Header-Datei BRM_HOME/custom/include/custom_flds.h erstellt werden.
Jetzt können Sie das neue benutzerdefinierte Feld einführen, indem Sie die folgende Zeile an custom_flds.h anhängen:
#define C_FLD_VAT_NUMBER PIN_MAKE_FLD(PIN_FLDT_STR, 10000)
Die obige Zeile definiert ein benutzerdefiniertes Feld mit dem Namen "C_FLD_VAT_NUMBER" (beachten Sie die Benennungspraxis,
PIN_* für BRM-Felder und C_* für benutzerdefinierte Felder) mit dem Datentyp "PIN_FLDT_STR" (STR steht für String)
und der eindeutigen Kennung "10000" (in Bezug auf BRM_HOME/include/pin_flds.h). Die Datentypen sind statisch,
und von der BRM-Version, die Sie verwenden, definiert. Definitionen finden Sie in BRM_HOME/include/pcm.h.
Als nächstes führen Sie das Perl-Skript parse_custom_ops_fields.pl mit diesem Befehl auf der custom_flds.h aus:
$BRM_HOME/bin/parse_custom_ops_fields.pl -L pcmc -I custom_flds.h -O $BRM_HOME/custom/include/custom_mapping.m
Und schließlich fügen Sie die folgende Zeile in jede pin.conf ein, in der diese Felder zu sehen sein sollen: - - ops_fields_extension_file ${BRM_HOME}/custom/include/custom_mapping.m
HINWEIS: Wenn Sie neue Funktionen mit benutzerdefinierten Feldern einführen, müssen Sie die Header-Datei custom_flds.h in die FMs aufnehmen, die diese Felder verwenden