LREL メソッド

この記事には、以下のトピックが含まれています。
casm173
この記事には、以下のトピックが含まれています。
LREL メソッドは、オブジェクト関係に関する情報を提供します。 関係を持つオブジェクトでは、左端(lhs)と右端(rhs)の定義によって多対多の関係を表します。 多対多の関係のいくつかの例を、以下に示します。
  • 案件と構成アイテム
  • 連絡先と構成アイテム
  • タスク タイプとステータス コード
LREL メソッドを使用する場合は、BREL 属性または LREL 属性によって多対多の関係を表します。 BREL 属性は、LREL 属性に代わって、多対多の関係を定義します。 ただし、LREL 属性は残り、以前のリリースとの後方互換性を維持します。 各関係は、.maj ファイルで宣言します。コードでは、
CreateLrelRelationship()
などの LREL メソッドが、既存の Web サービス クライアント コードと一緒に使用されます。
グループ オブジェクト管理を使用する場合は、特別な Web メソッドを使用して、グループに属するメンバを定義できます。
majic ファイルで、関係を定義する BREL 属性を使用して関係を宣言します。 たとえば、以下のステートメントは、change.maj で変更要求(chg)オブジェクトの多対多の関係を宣言します。
asset BREL lrel_asset_chgnr chg {LREL nr;};
変更要求「asset」の
BREL
属性は、関連付けられているすべての構成アイテムのリストです。 オプションの LREL フラグは、一連の所有リソースを表す属性です。 構成アイテム(nr)の対応する majic 定義には、以下が含まれます。
chgnr BREL lrel_asset_chgnr nr {LREL chg;};
chgnr
属性は、構成アイテムに対するすべての変更要求のリストです。
コードでは、変更要求に関連付けられている構成アイテムの数を検出することができます。以下のパラメータを指定して、
getLrelLength()
を呼び出します。
getLrelLength(sid, ChangeHandle, "asset")
ログイン メソッドからサービス ID の
sid
パラメータを使用します。
ChangeHandle
パラメータは、特定の変更要求への文字列ハンドルです。 同様に、以下のステートメントは、変更要求に関連するすべての構成アイテムの名前を取得する方法を表します。
String attrs[] = {"name"}; getLrelValues(sid, ChangeHandle, "asset", 0, -1, attrs);
getLrelValues()
メソッドは、
attrs
配列内の関係を提供します。
LREL テーブルおよびオブジェクトの詳細については、「データ エレメント辞書」および「オブジェクトと属性」を参照してください。
getLrelLength
getLrelLength メソッドでは、以下のパラメータを使用します。
パラメータ
タイプ
説明
SID
整数
ログインにより取得したセッションを指定します。
contextObject
文字列
LRELの一方にあるオブジェクトを指定します。
LrelName
文字列
LrelNameを指定します。 この名前を使用します。
説明
多対多の関係の一方にあるオブジェクトの数が返されます。
  • contextObject
    LREL の関係の一方にあるオブジェクトのハンドルとして指定します。
  • LrelName
    ObjHandle
    示される関係の一方の名前として指定します。
戻り値
以下の値が返されます。
XML エレメント
タイプ
説明
<Length>
整数
オブジェクトの数を示します。
getLrelValues
getLrelValues メソッドでは、以下のパラメータを使用します。
パラメータ
タイプ
説明
SID
整数
ログインにより取得したセッションを指定します。
contextObject
文字列
LRELの一方にあるオブジェクトを指定します。
LrelName
文字列
Lrel 名を指定します。 この名前を使用します。
startIndex
整数
「リスト」内のフェッチ開始位置を指定します。
endIndex
整数
「リスト」内のフェッチ終了位置を指定します。 -1 を指定すると、startIndex 以降のすべての行がフェッチされます。
attributes
String[]
値をフェッチする1つ以上の属性名の配列を指定します。
説明
LREL の関係における、ある範囲内のオブジェクトの属性値が返されます。 LREL の関係に含まれる項目には特定の順序がないことに注意してください。 実際には、このマニュアルで定義されているような「リスト」でもありません。
開始位置と終了位置を指定するパラメータは、数の多い項目を絞り込むために存在しています。 形式は以下のとおりです。
< UDSObjectList > <UDSObject> <Handle> <AttributeName0> <AttributeName1>
戻り値
このメソッドは、以下の戻り値を返します。
XML エレメント
タイプ
説明
<UDSObjectList>
Array
一連の <UDSObject> エレメントを含む外部エレメントを示します。
シーケンス
1 つの <Handle> エレメントと 0 個以上の <
AttributeNameX
> エレメントを含みます。
createLrelRelationships
createLrelRelationshipsメソッドでは以下のパラメータを使用します。
パラメータ
タイプ
説明
SID
整数
ログインにより取得したセッションを指定します。
contextObject
文字列
LRELの一方にあるオブジェクトを指定します。
LrelName
文字列
contextObject
から見た Lrel 名を指定します。
addObectHandles
String[]
LRELの関連付けのもう一方のオブジェクトのハンドルを指定します。
説明
1 つ以上の多対多の関係を追加します。
contextObject
は LREL 関係の一方の側にあります。 コール元がもう一方のオブジェクト ハンドルを1つ以上渡します。
2 つのオブジェクトの間にすでに関係が存在している場合は、何も変更されず、
addObjectHandles
配列の処理が続行されます。 無効なオブジェクト ハンドルが渡された場合、操作全体がキャンセルされます。
以下の例は、連絡先の環境に複数のアセットを追加する方法を示しています。
createLrelRelationships(sid, ContactHandle, "cenv", ["nr:655A043EDDB36D4F97524F2496B35E75", "nr:755A043EDDB36D4F97524F2496B35E75"]) ContactHandle is a string handle to a contact, and "nr:655A043EDDB36D4F97524F2496B35E75" and "nr:755A043EDDB36D4F97524F2496B35E75" are Asset handles.
戻り値
なし。
removeLrelRelationships
removeLrelRelationships メソッドでは、以下のパラメータを使用します。
パラメータ
タイプ
説明
SID
整数
ログインにより取得したセッションを指定します。
contextObject
文字列
LRELの一方にあるオブジェクトを指定します。
LrelName
文字列
contextObject
から見た Lrel 名を指定します。
removeObjectHandles
String[]
LREL の関係のもう一方から削除するオブジェクトのハンドルを指定します。
説明
1 つ以上の多対多の関係を削除します。
contextObject
は LREL 関係の一方の側にあります。 コール元がもう一方のオブジェクト ハンドルを1つ以上渡します。
2 つのオブジェクトの間に関係が存在していなくても、エラーではありません。 無効なオブジェクト ハンドルが渡された場合、操作全体がキャンセルされます。
使用例については、この章の「createLrelRelationships()」を参照してください。
戻り値
なし。