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

FLGCreateInst

指定されたオブジェクト・タイプの新規インスタンスを作成するために使用します。

許可

管理者または許可ユーザー (すべてのオブジェクト・タイプ); ユーザー (Comments オブジェクト・タイプのみ)

構文



APIRET  APIENTRY    FLGCreateInst( PFLGHEADERAREA   pObjInstStruct,
                                   PSZ              pszFLGID,
                                  PFLGEXTCODE  pExtCode );

パラメーター

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

pszFLGID (PSZ) − 出力
新規のオブジェクト・インスタンスに関する 16 文字の システム生成 ID を指します。

この ID の 1 文字目から 6 文字目までは、このインスタンス のオブジェクト・タイプを識別します。これらの文字の値は、 入力構造ヘッダー・レコードの 33 バイトから 38 バイトまでと同じです。

この ID の 7 文字目から 16 文字目までは、システム生成された固有のインスタンス ID です。

他の API 呼び出しがこのインスタンスを参照するときには、 ここで戻された pszFLGID が使用されます。

FLGCreateInst API 呼び出しが正常に実行されなかった場合には、 pszFLGID は NULL にセットされます。

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

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

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

入力構造

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

図 47. FLGCreateInst 入力構造


Figure FLAA2003 not displayed.

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

使用方法

前提条件

制約事項

オブジェクト管理タスクの実行を許可されていないが、 Comments オブジェクト・インスタンスを作成している場合は、 Creator 特性値が自分のログオン・ユーザー ID になるよ うにしなくてはなりません。

入力要件

ヘッダー域

ヘッダー・レコードのすべてのフィールドが必要です。

定義域

定義域は、オブジェクト・インスタンスを作成しているオブジェクト・タイプの定義済みの 特性のいくつか、またはすべてを含むことができます。 以下の規則が適用します。

  • まずはじめに、以下の順序で 5 つの情報カタログ・マネージャーの必須特性をすべて指定します。 OBJTYPID、INSTIDNT、NAME、UPDATIME、および UPDATEBY。
  • 126 桁目に R で示されている、他の必須特性をすべて指定します。
  • 以下の指定について、情報カタログ・マネージャーはすべての指定された特性をオブジェクト・タイプ定義と比較します。

    データ・タイプ

    データ長

    特性省略名

    値フラグ

    UUI 番号

オブジェクト域

  • 以下の特性に関する値は必ず指定しなければなりません。

    OBJTYPID
    33 桁目から 38 桁目のヘッダー域と同じでなくてはなりません。

    NAME
    ブランクだけであってはなりません。

    特性 NAME の値は、オブジェクト・タイプ内で固有である必要はありません。 重複した項目を作成することもできます。 ただし、重複する項目を作成する場合には、オブジェクト・インスタンス を区別することができるように、別の特性の値としてなんらかの記述情報 を指定するようにしてください。

  • 以下の特性の値はシステムで生成されるため、ブランクのままにしておか なければなりません。
    • INSTIDNT
    • UPDATIME
    • UPDATEBY
  • 定義域の 126 桁目に R が入って定義されている必須特性に、値が指定さ れていない場合は、オブジェクト域の該当スペースを次のように初期設定しな ければなりません。


    データ・タイプ 初期設定値
    CHAR 非適用記号のあとに、特性の長さ全体にわたってブランクが続きます。
    TIMESTAMP 最大設定可能値に設定。 9999-12-31-24.00.00.000000

    VARCHAR
    LONG VARCHAR

    00000001; 8 バイトで指定された長さフィールド。非適用記号が続きます。

  • 任意選択特性の値を指定しなかった場合には、オブジェクト域の 該当スペースを次のように初期設定しなければなりません。


    データ・タイプ 初期設定値

    CHAR
    TIMESTAMP

    特性の長さ全体にわたってブランク。

    VARCHAR
    LONG VARCHAR

    00000000。8 バイトの長さフィールドが存在していて、 しかもゼロにセットされていなければなりません。

  • 情報カタログ・マネージャーは、データ・タイプが VARCHAR または LONG VARCHAR のオブジェクト域 の値に含まれる後続ブランクをすべて除去し、その区域の長さを自動的に調整します。
  • HANDLES 特性に指定するオブジェクト・タイプは情報カタログに存在 しているものでなければならず、しかも非 Program オブジェクト・タイプ でなければなりません。 PARMLIST 特性に指定する特性は、HANDLES に指定されたオブジェクト・タイプ の特性でなければなりません。 詳細については、プログラムを開始するための Programs オブジェクトの設定を参照してください。
  • 各オブジェクト・インスタンスの UUI 特性の値は固有でなければなりません。 作成されるオブジェクト・インスタンスと同じ UUI 値の オブジェクト・インスタンスがすでに存在している場合には、 エラーが発生します。

情報カタログ更新の制御

プログラムを可能な限り、情報カタログと同期化させるために、FLGCreateInst が 正常に完了したあとで、呼び出しを FLGCommit (FLGCommit参照) に 組み込む必要があります。 FLGCreateInst が正常に完了しない場合は、呼び出し を FLGRollback (FLGRollback参照) に組み込む必要があります。

図 48 は、FLGCreateInst 呼び出しを出すために必要な C 言語コード を示しています。

このサンプル・コードは Grouping オブジェクト・タイプの新規インスタンス を作成します。

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

 APIRET         rc;                   // Declare reason code
 PFLGfEADERAREA  pObjInstStruct;        // Pointer to the input structure
 UCHAR           pszFLGID[FLG_ID_LEN+1]; // Returns system-generated ID
 FLGEXTCODE     ExtCode = 0;                // Declare extended code
   .
   /* creating pObjInstStruct object Instance by providing property values */
   .
   .
 rc = FLGCreateInst (pObjInstStruct,    // input structure
                     pszFLGID,          // Returned ID of created instance
                    &ExtCode);             // Pass pointer to extended code
 

図 49 は、この FLGCreateInst 呼び出しのため の入力構造を示しています。 pObjInstStruct パラメーターはこの構造を指します。新規の オブジェクト・インスタンスに関する特性および値の情報は この構造に入っています。

図 49. FLGCreateInst のための入力構造のサンプル


Figure FLAA2004 not displayed.

注:

  1. ヘッダー・レコードの 33 桁目から 38 桁目までは、このオブジェクト・タイプの 登録時に FLGCreateReg によって生成されたオブジェクト・タイプ識別子 (000033) が入っています。 これと同じ値をオブジェクト域の OBJTYPID に指定しなければなりません。 この例では、オブジェクト域の最初の値として指定されています。

  2. このオブジェクト・タイプでは、最初に 5 つの必須特性 (OBJTYPID、 INSTIDNT、NAME、UPDATIME、UPDATEBY) が指定され、さらに、ユーザーに よって追加された 3 つの特性が指定されています。


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