新規のユーザー定義オブジェクト・タイプを作成します。
管理者は、Program および Attachment 区分を除いて、どの区分にもタイプ を作成することができます。これらの区分は、情報カタログ内で情報カタログ・マネージャーが 自動的に作成する Programs および Comments タイプのみを含むことができるからです。
許可
管理者
構文
APIRET APIENTRY FLGCreateType( PFLGHEADERAREA pObjTypeStruct,
PFLGEXTCODE pExtCode );
パラメーター
戻された理由コードの説明については、付録 D, 情報カタログ・マネージャーの理由コードを参照してくだ さい。
入力構造
FLGCreateType を使用するには、図 53 に示す入力構造を定義し なければなりません。 この構造はヘッダー域と定義域だけからなります。
バイト・オフセットの意味については、情報カタログ・マネージャー API 入力構造を参照してくだ さい。
使用方法
前提条件
FLGCreateType API を呼び出して新規オブジェクト・タイプを作成する前に、こ の新規タイプを登録するために FLGCreateReg API を呼び出す必要があります。
FLGCreateType を呼び出すときには、FLGCreateReg API によって戻された オブジェクト・タイプ識別子を指定する必要があります。
入力要件
ヘッダー域
入力構造のヘッダーに指定するオブジェクト・タイプは、登録済みであっ て、しかもまだ作成されていないものでなければなりません。
定義域
情報カタログ・マネージャーは、すべての必須特性が常に指定されていることを確認するために、 バイト 118 からバイト 125 までの特性省略名をキーとして使用しますので、定義域に おけるこれらの追加特性の順序は影響を与えません。 FLGCreateType 呼び出しの場合の定義域における特性の順序は、情報カタログ・マネージャーによって 呼び出し元アプリケーションに戻された特性の順番どおりになります。
情報カタログ更新の制御
プログラムを可能な限り、情報カタログと同期化させるために、 FLGCreateType が正常に完了したあとで、呼び出しを FLGCommit (FLGCommit参照) に 組み込む必要があります。 FLGCreateType が正常に完了しない場合は、呼び出し を FLGRollback (FLGRollback参照) に組み込む必要があります。
図 54 は、FLGCreateType API 呼び出しを出すために必要な C 言語コード を示しています。
このサンプル・コードは新規のオブジェクト・タイプを作成します。 この新規オブジェクト・タイプは、構造ヘッダー域に E が指定されていることか ら分かるように Elemental 区分に属し、オブジェクト・タイプ ID は 000044 です。 このオブジェクト・タイプには、情報カタログ・マネージャー必須特性のほかに、イメージ・カラー、 イメージ・サイズ、および説明の 3 つの追加必須特性が含まれています。
図 54. C 言語による FLGCreateType の呼び出しのサンプル
APIRET rc; // Declare reason code
PFLGHEADERAREA pObjTypeStruct; // Pointer to the input structure
FLGEXTCODE ExtCode=0; // Declare extended code
.
. /* creating pObjTypeStruct object type by */
/* providing object type's properties */
.
rc = FLGCreateType (pObjTypeStruct,
&ExtCode); // Pass pointer to extended code
図 55 は、この FLGCreateType API 呼び出しのための入力構造を示して います。 pObjTypeStruct ポインターは、新規のオブジェクト・タイプの特性情報が入っ ている構造を指します。
図 55. FLGCreateType のための入力構造のサンプル
特別なエラー処理
FLGCreateType でデータベース・エラーが発生すると、情報カタログ・マネージャーは、 プログラム内で最後に行われたコミット点にデータベースをロールバックします。
このロールバックが正常に行われた場合、FLGCreateType は 理由コード FLG_SEVERR_DB_AUTO_ROLLBACK_COMPLETE を戻します。 拡張コードには、情報カタログ・マネージャーがデータベースのロールバックを行う原因とな ったデータベース・エラーに関する SQL コードが含まれています。
考慮事項: このロールバックが失敗した場合には、FLGCreateType は 理由コード FLG_SEVERR_DB_AUTO_ROLLBACK_FAIL を戻します。 拡張コードには、情報カタログ・マネージャーがデータベースのロールバックを行う原因とな ったデータベース・エラーに関する SQL コードが含まれています。 この場合、データベースの保全性に関する重大な問題が発生している可能性が あるため、プログラムで FLGTerm を呼び出して情報カタログ・マネージャーを終了させる必要があります。
データベースの状態によっては、バックアップ用データベース・ファイルを 使用してデータベースを回復させなければならないことがあります。 情報カタログ・データベースの回復に関する詳細については、 情報カタログ・マネージャー 管理の手引き を参照してください。
FLGCreateType エラーとは無関係なコミットされていない変更内容が情報カタログ・マネージャーによっ て除去されないようにするために、作成中のオブジェクト・タイプの FLGCreateReg プログラム内の この呼び出しの直前に FLGCommit 呼び出しを組み込んでください。