Oracle Communications Billing and Revenue Management (Oracle BRM \ formalnie znany jako Portal Infranet) oferuje dwie metody tworzenia, edytowania i usuwania niestandardowych pól i klas przechowywanych. Jedną z nich jest użycie Storable Class Editor, będącego częścią aplikacji Developer Center, a drugą jest użycie kodów operacyjnych SDK. Z wielu powodów preferuję ten drugi wybór, a w tym poście zajmę się manipulowaniem polami niestandardowymi za pomocą kodów operacyjnych SDK.
Przed rozpoczęciem należy najpierw wprowadzić jedną zmianę: umożliwić zapis słownika danych. Oto jak to zrobić:
1. Otwórz plik konfiguracyjny Oracle DM lub Microsoft SQL Server DM (BRM_HOME/sys/dm_oracle/pin.conf lub BRM_HOME/sys/dm_odbc/pin.conf) w edytorze tekstu.
2. Włącz manipulację polami w słowniku danych, ustawiając następujący wpis na 1:- dm dd_write_enable_fields 1
Nasze cele są następujące:
1. Aby utworzyć pole niestandardowe
2. Aby edytować niestandardowy opis pola
3. Aby usunąć pole niestandardowe z bazy danych
4. Aby udostępnić pole niestandardowe dla BRM
Tworzenie nowego pola niestandardowego
Utworzenie nowego pola niestandardowego i zatwierdzenie go w bazie danych można wykonać za pomocą kodów operacyjnych SDK lub narzędzia do wdrażania pinów. Deweloperzy wiedzą, że kody operacyjne SDK zapewniają bardziej elastyczny sposób tworzenia, edytowania i usuwania pól niestandardowych na etapie rozwoju. Z drugiej strony, narzędzie pin deploy wykorzystuje PODL (Portal Object Definition Language) do eksportowania i importowania definicji pól i klas przechowywalnych. Jest to bardziej przydatne, zwłaszcza na poziomie administracyjnym, ponieważ proces można usprawnić, umieszczając definicje pól w zarządzaniu kodem źródłowym, a tym samym zmniejszając możliwość uszkodzenia słownika danych produkcyjnej bazy danych Oracle BRM.
Następujące kody operacyjne SDK mogą być używane do zarządzania specyfikacjami pól:
1. PCM_OP_SDK_SET_FLD_SPECS - tworzenie lub modyfikacja pola,
2. PCM_OP_SDK_GET_FLD_SPECS - pobieranie specyfikacji pola,
3. PCM_OP_SDK_DEL_FLD_SPECS - usunięcie pola.
Aby utworzyć pole, konieczne jest napisanie listy wejściowej dla kodu operacyjnego PCM_OP_SDK_SET_FLD_SPECS:
0 PIN_FLD_POID POID [0] 0.0.0.1 /dd/fields 0 0
0 TABLICA PIN_FLD_FIELD [0]
1 PIN_FLD_DESCR STR [0] "niestandardowe pole do przechowywania numeru VAT"
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
Teraz sprawdź, czy utworzone pole istnieje w słowniku danych bazy danych, podając następującą listę danych wejściowych do kodu operacyjnego PCM_OP_SDK_GET_FLD_SPECS:
0 PIN_FLD_POID POID [0] 0.0.0.1 /dd/objects 0 0
0 TABLICA PIN_FLD_FIELD [0]
1 PIN_FLD_FIELD_NAME STR [0] "C_FLD_VAT_NUMBER"
Edytowanie opisu pola niestandardowego
Teraz, po potwierdzeniu, że nowe pole niestandardowe istnieje, opis można zmienić, wywołując kod operacyjny PCM_OP_SDK_SET_FLD_SPECS z następującą listą wejściową:
0 PIN_FLD_POID POID [0] 0.0.0.1 /dd/fields 0 0
0 TABLICA PIN_FLD_FIELD [0]
1 PIN_FLD_DESCR STR [0] "pole niestandardowe - numer VAT"
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
Ponownie można pobrać specyfikacje pola, aby zweryfikować, czy zmiana została dokonana.
Następnie usuń pole niestandardowe z bazy danych.
Na koniec załóżmy, że popełniono błąd i konieczne jest usunięcie pola. Podanie następującej listy danych wejściowych do kodu operacyjnego PCM_OP_SDK_DEL_FLD_SPECS spowoduje usunięcie pola:
0 PIN_FLD_POID POID [0] 0.0.0.1 /dd/fields 0 0
0 TABLICA PIN_FLD_FIELD [0]
1 PIN_FLD_FIELD_NAME STR [0] "C_FLD_VAT_NUMBER"
Jeśli kod operacyjny pobierania specyfikacji pola zwróci pustą listę (tylko POID obj), oznacza to, że pole nie zostało znalezione w słowniku danych bazy danych.
Udostępnianie pól niestandardowych dla BRM
Standardowa praktyka dyktuje, że wszystko, co zostało stworzone na zamówienie, trafia do katalogu BRM_HOME/custom, a ponieważ w tym przypadku BRM_HOME/include/pin_flds.h jest rozszerzany, należy utworzyć nowy niestandardowy plik nagłówkowy BRM_HOME/custom/include/custom_flds.h.
Teraz nowe pole niestandardowe można wprowadzić, dołączając następujący wiersz do custom_flds.h:
#define C_FLD_VAT_NUMBER PIN_MAKE_FLD(PIN_FLDT_STR, 10000)
Powyższy wiersz definiuje niestandardowe pole o nazwie "C_FLD_VAT_NUMBER" (należy pamiętać o praktyce nazewnictwa),
PIN_* dla pól BRM i C_* dla pól niestandardowych) z typem danych "PIN_FLDT_STR" (STR oznacza ciąg znaków).
i unikalny identyfikator "10000" (w odniesieniu do BRM_HOME/include/pin_flds.h). Typy danych są statyczne,
i zdefiniowane przez używaną wersję BRM; definicje można znaleźć w BRM_HOME/include/pcm.h.
Następnie uruchom skrypt perla parse_custom_ops_fields.pl na pliku custom_flds.h za pomocą tego polecenia:
$BRM_HOME/bin/parse_custom_ops_fields.pl -L pcmc -I custom_flds.h -O $BRM_HOME/custom/include/custom_mapping.m
I na koniec, dodaj następującą linię do każdego pliku pin.conf, w którym chcesz, aby te pola były widoczne: - - ops_fields_extension_file ${BRM_HOME}/custom/include/custom_mapping.m
UWAGA: Przy wprowadzaniu nowych funkcjonalności wykorzystujących pola niestandardowe, konieczne jest dołączenie pliku nagłówkowego custom_flds.h do FM, które używają tych pól