情報カタログ・マネージャー プログラミングの手引きおよび解説書

FLGCreateReg

オブジェクト・タイプに関する登録情報を情報カタログ内に作成するために使用します。

この API 呼び出しはオブジェクト・タイプ自体を作成するためのものではなく、 オブジェクト・タイプの作成が行えるようにオブジェクト・タイプを登録するためのものです。 FLGCreateReg が情報カタログに保管する登録情報には、オブジェクト・タイプを記述する登録値が含 まれています。

Program および Attachment 区分を除き、どの区分にもタイプを登録するこ とができます。これらの区分はそれぞれ、情報カタログ・マネージャーが情報カタログ内に自動的 に作成する Programs および Comments タイプしか含むことができないからです。

許可

管理者

構文



APIRET  APIENTRY  FLGCreateReg( PFLGHEADERAREA   pObjRegStruct,
                                 PSZ              pszIconFileID,
                                PSZ              pszObjTypeID,
                                  PFLGEXTCODE  pExtCode );

パラメーター

pObjRegStruct (PFLGHEADERAREA) − 入力
新規のオブジェクト・タイプ登録に関する特性の仕様と値を含む 入力構造を指します。

pszIconFileID (PSZ) − 入力
新規のオブジェクト・タイプ登録のアイコンを含むファイルのドライブ、 ディレクトリー、およびファイル名が含まれます。 このパラメーターが NULL の場合、新規のオブジェクト・タイプ登録には アイコンが関連付けられません。

pszObjTypeID (PSZ) − 出力
登録済みのオブジェクト・タイプに関する 6 文字の システム生成された固有の識別子 (オブジェクト・タイプ ID) を指します。

ここで戻された ObjTypeID は、オブジェクト・タイプを識別する ために別の API 呼び出しによって使用されます。 オブジェクト・タイプが正常に登録されなかった場合、このパラメーター は NULL にセットされます。

pExtCode (PFLGEXTCODE) − 出力
理由コードに関連する拡張コードを指します。 戻された理由コードに関連した意味のある拡張コードがあるかどうかについて は、付録 D, 情報カタログ・マネージャーの理由コードを参照してください。

理由コード (APIRET)
この API 呼び出しの実行結果を表します。

戻された理由コードの説明については、付録 D, 情報カタログ・マネージャーの理由コードを参照してくだ さい。

入力構造

FLGCreateReg を使用するには、図 50 に示す入力構造を定義し なければなりません。 この構造はヘッダー域、定義域、およびオブジェクト域からなります。

図 50. FLGCreateReg 入力構造


Figure FLAA2005 not displayed.

入力構造では、ここで示された順番どおりに 6 つの特性を定義域に指定する 必要があります。

英語版以外の情報カタログ・マネージャーを使用している場合には、これらの必須特性の名前は翻訳 されており、また FLGInit の出力構造に戻されます。

表 15

表 15. オブジェクト・タイプ登録に必要な特性
特性省略名 特性名1 説明 オブジェクト域での値の指定
NAME オブジェクト・タイプの外部名 オブジェクト・タイプの名前を 80 バイトで指定。あとで修正可能。 必須。
PTNAME 物理タイプ名 情報カタログにおけるオブジェクト・タイプを含んでいる実際の表の 名前を 30 文字で指定。 任意選択。デフォルトは DPNAME の値。
DPNAME DP 名 オブジェクト・タイプを表す 8 文字の省略名。 この値は FLGCreateReg を使用して指定する必要がある。

必須。

CREATOR 作成者 オブジェクト・タイプを作成した管理者のユーザー ID を 8 文字で指定。 不可。この値は、オブジェクト・タイプに関して FLGCreateType が出されたときに 情報カタログ・マネージャーによって設定される。
UPDATEBY 最終変更者 オブジェクト・タイプを最後に修正した管理者のユーザー ID を 8 文字で指定。 不可。この値は、オブジェクト・タイプに関して FLGAppendType が出されたときに 情報カタログ・マネージャーによって指定される。
UPDATIME 最終変更日付および時刻 オブジェクト・タイプが最後に修正された日付と時刻のタイム・スタンプ を 26 文字で指定。 不可。この値は、オブジェクト・タイプに関して FLGCreateType また は FLGAppendType が出されたときに情報カタログ・マネージャーによって指定される。
注:
  1. この列の特性名は、情報カタログ・マネージャーの英語バージョンに適用します。 情報カタログ・マネージャーの翻訳バージョンを使用している場合は、特性名も翻訳されます。

バイト・オフセットの意味の一般的な説明については、 情報カタログ・マネージャー API 入力構造を参照してください。

使用方法

制約事項

入力要件

ヘッダー域

図 50 のヘッダー・レコードに示されたすべての情報を 指定する必要があります。

定義域

  • 定義域には、図 50 に示された 6 つのそれぞれの登録特性に関す る定義を含める必要があります。 翻訳済みの特性名 (表 15 参照) を除き、各登録特性の定義は、 表示されているとおりに指定しなければなりません。
  • それぞれの必須特性名 (各特性に関するバイト 0 からバイト 80 まで) は、 図 50 に示した英語の特性名からサポートされる各国語の特性名 に翻訳することができます。 これらの必須特性の翻訳名は、FLGInit の出力構造に入れて戻されます。

オブジェクト域

  • バイト 126 の値が S で定義されている特性については、オブジェクト域の値 をブランクのままにしてください。これらの特性の値はユーザーが オブジェクト・タイプを作成または追加したときにシステムによって生成され るため、値を指定しても情報カタログ・マネージャーによって無視されます。 CREATOR、UPDATEBY、および UPDATIME の各特性がこれに該当します。
  • PTNAME に関する規則
    • オブジェクト・タイプの PTNAME は情報カタログ・マネージャー・カタログ内で固有でなければなり ません。
    • 情報カタログ・マネージャーにおける PTNAME 値の最大長は FLG_PTNAME_LEN (30) です。 ただし、データベースの制約により、ユーザーの情報カタログ環境における 最大長が短くなっている可能性があります。 この最大値の設定に関する詳細については、情報カタログ・マネージャー 管理の手引き を参照してください。
    • 後続ブランクを含まない PTNAME の有効文字数が使用環境で許される 最大値 (FLGInit によって戻された STOR ENVSIZE の値) を超えている場合 には、登録要求は拒絶されます。
    • PTNAME の指定は任意選択です。 PTNAME を指定しない場合、情報カタログ・マネージャーはこの値をデフォルトによって DPNAME の値にセットし ます。
    • PTNAME に関する制約事項は以下のとおりです。
      • SBCS だけで指定しなければなりません。
      • 先頭文字は、A から Z または a から z まで、@、#、$ でなければなりません。
      • 先頭以外の文字には、A から Z または a から z まで、0 から 9 まで、 @ または #、$ または _ (下線) を使用することができます。
      • 先行または組み込みブランクを使用することはできません。
      • 使用されるデータベースに関する SQL 予約語を PTNAME として使用することはできません。
  • オブジェクト・タイプの DPNAME に関する制約事項
    • 組織内のすべての情報カタログ内で固有でなければなりません。
    • SBCS だけで指定しなければなりません。
    • 先頭文字は、A から Z または a から z まで、@ または #、 あるいは $ でなければなりません。
    • 先頭以外の文字には、A から Z または a から z まで、0 から 9 まで、 @ または #、$ または _ (下線) を使用することができます。
    • 先行または組み込みブランクを使用することはできません。
    • NAME 値はローカル情報カタログ内で固有でなければなりません。

出力情報

システム生成のオブジェクト・タイプ識別子は、 出力パラメーター pszObjTypeID に入って戻されます。 情報カタログ・マネージャーがこの番号を戻した場合には、後続の FLGDeleteReg または FLGGetReg などの 呼び出しでこの番号を使用して、オブジェクト・タイプ登録を個別に識別するこ とができます。

情報カタログ更新の制御

FLGCreateReg が正常に完了しない場合は、呼び出し を FLGRollback (FLGRollback参照) に組み込む必要があります。 FLGCreateReg が正常に完了したあとで、FLGCommit を呼び出さず に、FLGCreateType への呼び出しが完了するまで待ってください。

図 51 は、FLGCreateReg 呼び出しを出すために必要な C 言語コード を示しています。 このサンプル・コードは、Elemental 区分に属する MYIMAGE という 新規のオブジェクト・タイプに関する登録情報を作成します。

図 51. C 言語による FLGCreateReg の呼び出しのサンプル

 APIRET         rc;                   // Declare reason code
 PFLGHEADERAREA pObjRegStruct;        // Pointer to the input structure
 UCHAR          pszIconFileID[FLG_ICON_FILE_ID_MAXLEN+1]; // Path/File name of ICON
 UCHAR          pszObjTypeID[FLG_OBJTYPID_LEN+1];      // Returned system-generated ID
 FLGEXTCODE     ExtCode = 0;                // Declare extended code
   .
   .  /* creating pObjRegStruct object Type Registration by providing values  */
   .
 strcpy (pszIconFileID,"Y:\\FLGICON2.ICO");
 rc = FLGCreateReg (pObjRegStruct,   // input structure
                  pszIconFileID,     // Path/File name of file containing the ICON
                  pszObjTypeID,      //  Returned id of registered object type
                  &ExtCode);              // Pass extended code pointer
 

図 52 は、この FLGCreateReg 呼び出しのための入力構造を示して います。 pObjRegStruct ポインターは、新規のオブジェクト・タイプの登録に必要な特性 および値に関する情報を指します。

図 52. FLGCreateReg のための入力構造のサンプル


Figure FLAA2006 not displayed.

特別なエラー処理

FLGCreateReg でデータベース・エラーが発生すると、情報カタログ・マネージャーは、 プログラム内で最後に行われたコミット点にデータベースをロールバックします。

このロールバックが正常に行われた場合、FLGCreateReg は 理由コード FLG_SEVERR_DB_AUTO_ROLLBACK_COMPLETE を戻します。 拡張コードには、情報カタログ・マネージャーがデータベースのロールバックを行う原因とな ったデータベース・エラーに関する SQL コードが含まれています。

考慮事項: このロールバックが失敗した場合には、FLGCreateReg は 理由コード FLG_SEVERR_DB_AUTO_ROLLBACK_FAIL を戻します。 拡張コードには、情報カタログ・マネージャーがデータベースのロールバックを行う原因とな ったデータベース・エラーに関する SQL コードが含まれています。 この場合、データベースの保全性に関する重大な問題が発生している可能性が あるため、プログラムで FLGTerm を呼び出して情報カタログ・マネージャーを終了させる必要があります。

データベースの状態によっては、バックアップ用データベース・ファイルを 使用してデータベースを回復させなければならないことがあります。 情報カタログ・データベースの回復に関する詳細については、 情報カタログ・マネージャー 管理の手引き を参照してください。

FLGCreateReg エラーとは無関係なコミットされていない変更内容が情報カタログ・マネージャーによっ て除去されないようにするために、プログラム内のこの呼び出しの直前 に FLGCommit 呼び出しを組み込んでください。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]