Oracle Communications Billing and Revenue Management (Oracle BRM ⽶は Portal Infranet)では、カスタム・フィールドと保存可能クラスを作成、編集、削除するための2つの⽅法を提供しています。1つは、Developer Centerアプリケーションの一部であるStorable Class Editorを使用する方法で、もう1つはSDKオペコードを使用する方法です。多くの理由から、私は後者の方法を好みます。この投稿では、SDKオペコードを使用したカスタム・フィールドの操作について説明します。
データ辞書を書き込み可能にすることです。その方法は以下の通りです:
1.Oracle DM または Microsoft SQL Server DM の設定ファイル(BRM_HOME/sys/dm_oracle/pin.conf または BRM_HOME/sys/dm_odbc/pin.conf)をテキストエディタで開きます。
2.以下の項目を1に設定して、データ辞書のフィールド操作を有効にします。
私たちの目的は以下の通りです:
1.カスタムフィールドを作成するには
2.カスタムフィールドの説明を編集するには
3.データベースからカスタムフィールドを削除するには
4.BRMでカスタム・フィールドを使用可能にするには
新しいカスタムフィールドの作成
新しいカスタムフィールドを作成してデータベースにコミットするには、SDK opcodes または pin deploy ユーティリティを使用します。開発者はご存知のように、SDK opcodes は開発段階でカスタムフィールドを作成、編集、削除するための柔軟な方法を提供します。一方、ピン配置ユーティリティでは、PODL (Portal Object Definition Language) を使用して、フィールドおよび格納可能なクラス定義をエクスポートおよびインポートします。これは、特に管理者レベルでは、フィールド定義をソースコード管理に置くことでプロセスを合理化し、Oracle BRMの本番データベースデータディクショナリを損傷する可能性を下げることができるため、より有用です。
以下のSDKオペコードを使用してフィールド指定を管理できます:
1.PCM_OP_SDK_SET_FLD_SPECS - フィールドを作成または変更します、
2.PCM_OP_SDK_GET_FLD_SPECS - フィールドの仕様を取得します、
3.PCM_OP_SDK_DEL_FLD_SPECS - フィールドを削除します。
フィールドを作成するには、PCM_OP_SDK_SET_FLD_SPECSオペコード用の入力リストを書く必要があります:
0 PIN_FLD_POID POID [0] 0.0.0.1 /dd/fields 0 0
0 pin_fld_field 配列 [0]
1 PIN_FLD_DESCR STR [0] "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
PCM_OP_SDK_GET_FLD_SPECSオペコードに以下の入力リストを与えて、作成されたフィールドがデータベースのデータ辞書に存在することを確認します:
0 PIN_FLD_POID POID [0] 0.0.0.1 /dd/objects 0 0
0 pin_fld_field 配列 [0]
1 pin_fld_field_name str [0] "c_fld_vat_number"
カスタムフィールドの説明の編集
新しいカスタム・フィールドが存在することを確認したら、次の入力リストを使用して PCM_OP_SDK_SET_FLD_SPECS オペコードを呼び出すことで、説明を変更できます:
0 PIN_FLD_POID POID [0] 0.0.0.1 /dd/fields 0 0
0 pin_fld_field 配列 [0]
1 PIN_FLD_DESCR STR [0] "カスタムフィールド - 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
この場合も、フィールドの仕様を検索して、変更が達成されたことを確認することができます。
その後、データベースからカスタムフィールドを削除します。
最後に、誤りがあり、フィールドを削除する必要があるとします。PCM_OP_SDK_DEL_FLD_SPECSオペコードに以下の入力リストを与えると、フィールドが削除されます:
0 PIN_FLD_POID POID [0] 0.0.0.1 /dd/fields 0 0
0 pin_fld_field 配列 [0]
1 pin_fld_field_name str [0] "c_fld_vat_number"
フィールドの仕様を取得するオペコードが空のリスト(POID objのみ)を返した場合、そのフィールドがデータベースのデータ辞書で見つからなかったことを意味します。
BRMでカスタムフィールドを使用可能にする方法
この場合、BRM_HOME/include/pin_flds.h が拡張されているので、新しいカスタム・ヘッダ・ファイル BRM_HOME/custom/include/custom_flds.hを作成する必要があります。
次の行をcustom_flds.hに追加することで、新しいカスタム・フィールドを導入できます:
#define C_FLD_VAT_NUMBER PIN_MAKE_FLD(PIN_FLDT_STR, 10000)
上の行は、"C_FLD_VAT_NUMBER "という名前のカスタム・フィールドを定義しています(名前の付け方に注意してください、
BRMフィールドはPIN_*、カスタムフィールドはC_*)、データ型は "PIN_FLDT_STR"(STRは文字列)。
および一意識別子 "10000"(BRM_HOME/include/pin_flds.hに関して)。データ型は静的です、
定義についてはBRM_HOME/include/pcm.hを参照してください。
次に、このコマンドを使ってcustom_flds.h上でparse_custom_ops_fields.pl perlスクリプトを実行します:
$BRM_HOME/bin/parse_custom_ops_fields.pl -L pcmc -I custom_flds.h -O $BRM_HOME/custom/include/custom_mapping.m
ops_fields_extension_file ${BRM_HOME}/custom/include/custom_mapping.m
注:カスタムフィールドを使用して新しい機能を導入する場合、これらのフィールドを使用するFMにcustom_flds.hヘッダーファイルをインクルードする必要があります。