maintainCompositeRelationship()

親マップ内から複合一致関係を保守します。

構文

public static void maintainCompositeRelationship(String relDefName, 
       String particpntDefName, BusObj appSpecificBusObj, 
       Object genericBusObjList, CxExecutionContext map_ctx)
 

パラメーター

relDefName
親属性が参加する、(Relationship Designer Express に定義された) 複合一致関係の名前。

particpntDefName
複合キーを含む参加者の名前。この参加者は常にアプリケーション固有です。

appSpecificBusObj
このマップで使用されるアプリケーション固有のビジネス・オブジェクトを含む変数。このビジネス・オブジェクトは、親ビジネス・オブジェクトです。

genericBusObjList
このマップで使用される汎用ビジネス・オブジェクトを含む変数。各汎用ビジネス・オブジェクトは、汎用親オブジェクトの子ビジネス・オブジェクトに含まれます。このパラメーターは、単一の汎用ビジネス・オブジェクト (BusObj)、または汎用ビジネス・オブジェクトの配列 (BusObjArray) にすることができます。

map_ctx
マップの実行コンテキスト。マップの実行コンテキストを渡すには、cwExecCtx 変数を使用します。この変数は、Map Designer Express によってすべてのマップに定義されます。

戻り値

なし。

例外

RelationshipRuntimeException 
 

CxMissingIDException
動詞 Retrieve と SERVICE_CALL_REQUEST の呼び出しコンテキストを使用してマップを実行しているときに、関係表に参加者が存在しない場合です。

コネクターは、ビジネス・オブジェクトをアプリケーションに送信せずに、「サービス呼び出し要求が失敗しました」というメッセージがコラボレーションに送信されます。

注記

maintainCompositeRelationship() メソッドは、relDefName 複合一致関係の particpntDefName 参加者に関連付けられた関係表を保守します。このメソッドは、参加者が異なるレベル (複合キー) の複数のビジネス・オブジェクトからキーを使用する関係を保守します。

注:
maintainCompositeRelationship() メソッドは、子の複合キーが祖父母に依存する場合を処理できません。詳細については、"General/APIs/Identity Relationship/Maintain Composite Relationship のアクション"を参照してください。

このメソッドは、appSpecificObj 親ビジネス・オブジェクトのすべての子ビジネス・オブジェクトについて繰り返され、partDefName 参加者の関係表の関係インスタンスを保守します。メソッドは、受け取った汎用ビジネス・オブジェクトの配列 (genericObjs) から関係インスタンス ID を取得します。子インスタンスごとに、maintainCompositeRelationship()maintainSimpleIdentityRelationship() メソッドを呼び出して、実際の関係表の管理を実行します。maintainSimpleIdentityRelationship() が実行するアクションは、次の情報によって異なります。

maintainSimpleIdentityRelationship() が行うアクションの詳細については、"一致関係表のアクセス"を参照してください。表 95 から表 99 に、各呼び出しコンテキストのアクションを示します。

複合関係を保守するには、maintainCompositeRelationship() とともに maintainChildVerb() メソッドと updateMyChildren() メソッドを使用します。詳細については、"複合一致関係に関連するマップの規則のカスタマイズ"を参照してください。

// This is an example of a code fragment in a parent map. It maintains
 // the relationship table for all instances of a child object type for
 // this application-specific parent object.
  
 BusObjArray secondLevel2 =
       (BusObjArray)ObjFirstLevelBusObj2.get("MultiCardChild");
  
 IdentityRelationship.maintainCompositeRelationship(
    "CmposRel",
    "AppSpPrt",
    ObjFirstLevelBusObj2,
    secondLevel2,
    cwExecCtx);
  
 IdentityRelationship.updateMyChildren(
    "PCRel",
    "Parent",
    ObjFirstLevelBusObj2,
    "Child",
    "MultiCardChild",
    "CmposRel",
    "AppSpPrt",
    cwExecCtx);
 

maintainCompositeRelationship() を含む例については、"複合一致関係に関連するマップの規則のカスタマイズ"を参照してください。

参照項目

updateMyChildren(), maintainChildVerb(), maintainSimpleIdentityRelationship()

"複合一致関係の使用"

Copyright IBM Corp. 2004