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

FLGDeleteTree

Grouping オブジェクト・タイプの特定のインスタンス、それに付加されたすべて の Comments インスタンス、およびそれが参加するすべての ATTACHMENT、 CONTACT、 CONTAIN、 および LINK 関係を削除するために使用します。 また、任意に Grouping 区分のオブジェクト・インスタンスに含まれたすべての オブジェクト・インスタンス、それに付加されたすべての Comments インスタンス、 参加しているすべての ATTACHMENT、 CONTACT、および LINK 関係を削除するために使用します。

許可

管理者または許可ユーザー

構文



APIRET  APIENTRY   FLGDeleteTree( PSZ              pszFLGID,
                                  FLGOPTIONS   Options,
                                 PFLGHEADERAREA * ppListStruct,
                                  PFLGEXTCODE  pExtCode );

パラメーター

pszFLGID (PSZ) − 入力
削除する Grouping 区分のインスタンス (包含側) に関する 16 文字のシステム 生成された固有の ID を指します。

この ID の 1 文字目から 6 文字目までは、このインスタンスの オブジェクト・タイプを識別します。

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

Options (FLGOPTIONS) − 入力
以下のいずれかのオプションを選択します。

FLG_DELTREE_ALL
Grouping 区分のオブジェクト・インスタンス、それに付加 されたすべての Comments インスタンス、および参加するすべて の ATTACHMENT、CONTACT、および LINK 関係を削除するために使用します。 Grouping 区分のオブジェクト・インスタンスに含まれたすべての オブジェクト・インスタンス、それに付加されたすべての Comments インスタンス、 および参加するすべての ATTACHMENT、CONTACT、および LINK 関係 を削除するために使用します。 図 58 から 図 60 にこのオプションが図示されています。

FLG_DELTREE_REL
Grouping 区分のオブジェクト・インスタンス、それに付加 されたすべての Comments インスタンス、および参加するすべて の ATTACHMENT、CONTACT、および LINK 関係を削除するために使用します。 基礎となる CONTAIN 関係のツリー構造を削除するために使用します。 図 58 から 図 60 にこのオプションが図示されています。

ppListStruct (PFLGHEADERAREA) − 出力
削除されたオブジェクト・インスタンスが入っている出力構造の ポインターのアドレスを指します。

この出力構造には、削除されたオブジェクト・インスタンスそれぞれ の 16 文字の FLGID が入ります。

このパラメーターが NULL のとき、出力構造は戻されません。 出力構造がない場合、出力構造へのポインターは NULL にセットされます。

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

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

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

使用方法

前提条件

指定されたオブジェクト・インスタンス ID (FLGID) が存在しなくてはなり ません。

制約事項

削除されるオブジェクト以外の Grouping オブジェクトに含まれる オブジェクト・インスタンスは (図 59 に図示) 削除されません。

出力構造に割り振られたメモリーの解放

FLGDeleteTree が出力構造にあるデータを戻した場合、出力構造に戻された データを保管してから、FLGFreeMem を呼び出さなくてはなりません (FLGFreeMem参照)。 メモリーを解放するのに、たとえば C 言語指示のような他の方式は使用しないで ください。

情報カタログ更新の制御

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

図 58 から 図 60 は、 2 つの削除オプションの効果を図示しています。 図 58 は、3 つのグループ・オブジェクト、 AZ、および Y の情報カタログを表示しています。 オブジェクト B は、FLGDeleteTree を使って削除されます。

図 58. 削除前の情報カタログのサンプル


Figure FLAA2009 not displayed.

FLG_DELTREE_REL オプションを使って、 オブジェクト・インスタンス BB の 下にあるいくつかの関係が削除されました。 C は、別の木である Z に含まれているので、 オブジェクト C と、それが含むものは影響を受けていません。 オブジェクト D は、他のオブジェクトに含まれていないので、 カスケード効果の影響を受けます。

図 59 は、B が削除されたあと の情報カタログを図示しています。

図 59. FLG_DELTREE_REL オプションの例


Figure FLAA2010 not displayed.

FLG_DELTREE_ALL オプションを使って、 オブジェクト・インスタンス B と その下にあるいくつかのインスタンスがカタログから削除されました。 オブジェクト・インスタンス C とそれが含むものは、 Z にも含まれているので、保持されています。

図 60 は、FLG_DELTREE_ALL オプションを 使って B が削除されたあとの情報カタログを表しています。

図 60. FLG_DELTREE_ALL オプションの例


Figure FLAA2011 not displayed.

図 61 は、FLGDeleteTree 呼び出しを出すために必要な C 言語コード を示しています。 このサンプル・コードは、DEPT001 Grouping 区分のオブジェクト・インスタンス、 それに付加されたすべての Comments インスタンス、およびそれが参加するすべて の ATTACHMENT、CONTACT、および LINK 関係を削除します。 このサンプル・コードはまた、DEPT001 オブジェクト・インスタンスに 含まれるすべてのオブジェクト・インスタンス、それらに付加されたすべ ての Comments インスタンス、およびそれらが参加するすべての ATTACHMENT、 CONTACT、および LINK 関係を削除します。

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

 APIRET         rc;                   // Declare reason code
 FLGOPTIONS   ulOptMask=0;
 UCHAR           pszFLGID[FLG_ID_LEN + 1];
 PFLGHEADERAREA  pDelStruct=NULL;
 FLGEXTCODE   xc = 0;       // Declare extended code
   .
   .  set value for pszFLGID
   .
 ulOptMask = ulOptMask | FLG_DELTREE_ALL;   // delete whole tree
 rc = FLGDeleteTree (pszFLGID, ulOptMask,
                     &pDelStruct, &xc);
 

図 62 は、この FLGDeleteTree 呼び出しのための出力構造を示して います。

図 62. FLGDeleteTree の出力構造のサンプル


Figure FLAA2012 not displayed.


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