CA SDM オブジェクト

この記事には、以下のトピックが含まれています。
casm173
この記事には、以下のトピックが含まれています。
CA SDM では、各エンティティ(連絡先、案件など)を
オブジェクト
として扱います。 この高レベルのオブジェクトは、CA SDM サーバ上の以下のディレクトリにある majic(.maj)ファイルおよび mod(.mod)ファイルで定義されています。
/bopcfg/majic
カスタマイズしたオブジェクトは以下のディレクトリにあるファイルで定義されています。
/site/mods/majic
実質的に、オブジェクトはデータベース テーブルを包含する高レベルのラッパです。
オブジェクトはタイプ(
ファクトリ
と呼ぶ場合もあります)によって定義されます。 たとえば、リクエスト オブジェクトは「cr」タイプです。 各オブジェクトのタイプは、majicファイルの「OBJECT」宣言で定義します。
CA SDM に付属しているすべてのオブジェクトは、「CA Service Desk Manager 参照コマンド」に記載されています。
オブジェクトには
属性
があり、これはデータベース テーブルで必須の列です(XML属性とは異なります)。 Webサービスの豊富なメソッドを使って属性値を取得することができます。 ほとんどのメソッドを使用するには、属性の設定や値の取得をするために属性名が必要となります。 属性名には、オブジェクト定義用の majic または mod ファイルで割り当てられている名前を使用します。属性名は実際のデータベースでの名前と異なる場合があります。 属性は必要に応じてクライアント サイトで追加することができます。
各オブジェクトのすべての属性のリストについては、「CA Service Desk Manager 参照コマンド」を参照してください。
Webサービスでは、
ハンドル
によってオブジェクトを一意に特定します。ハンドルは
objectType:ID
形式の文字列値です。ここで
objectType
はオブジェクト タイプ(ファクトリ)名、IDは固有の値です。 ID の値は CA SDM オブジェクトが必ず持つ「id」属性の値と一致します。 ほとんどの場合、DBMSで「id」属性に対してインデックスが作成されるので、オブジェクト ハンドルの一部であるIDは、有効なクエリを作成するのに役立ちます。 各オブジェクトはそのタイプに関わらず、「persistent_id」というオブジェクト属性にID値を格納します。
以前のリリースでは、ハンドルの ID 部分は常に整数で表されていました。 CA Service Desk r11.0 以降では、ID 部分が UUID の文字列表現(通常 32 文字)で表される場合があります。
UUID を使用するエンティティのオブジェクト名およびファクトリ名は以下のとおりです。
オブジェクト名
ファクトリ名
連絡先
cnt
アセット‎
nr
組織‎
org
場所
loc
会社/ベンダー
ca_cmpny
モデル
mfrmod
ハンドルは
固定要素
です。つまり、特定のオブジェクトを表すハンドルは常に固有の値を持ち、データベースのマイグレーションが行われても変わりません。 クライアントでは、ステータスや連絡先タイプなどの静的なオブジェクトを扱う際にこの固定性を利用することができます。
オブジェクト ハンドルは、CA SDM Web サービスの使用に必要です。 多くのメソッド、特にデータを更新するメソッドにはハンドルが必要です。 オブジェクト データを返すほとんどのメソッドにもオブジェクト ハンドルを指定します。
システムの更新とキャッシュ
Web サービスはオブジェクト タイプ情報をキャッシュします。 タイプ情報は、初めてタイプが参照されたときにキャッシュされ、応答に少し遅れが生じます。
サーバの応答やキャッシュの遅延を避けるために、予備のクライアントを実行してWebサービスをアクティブにし、頻繁に使用するオブジェクト タイプ情報をキャッシュすることをお勧めします。 オブジェクト タイプ情報をキャッシュする最も簡単な方法は、GetObjectTypeInformation()メソッドを繰り返しコールすることです。 この方法の使用を検討すべきオブジェクト タイプは以下のとおりです。
オブジェクト タイプ
定義
cr
リクエスト
chg
変更要求‎
iss
案件
cnt
連絡先
nr
アセット‎
prp
プロパティ(変更および案件)
prptpl
プロパティ テンプレート(変更および案件)
cr_prp
リクエスト プロパティ
cr_prptpl
リクエスト プロパティのテンプレート
cr_wf
従来のワークフロー(リクエスト/インシデント/問題)
クライアント コードで参照するオブジェクト タイプの追加が可能です。
カテゴリおよびプロパティ
すべてのリクエスト オブジェクト、変更要求オブジェクト、案件オブジェクトにはチケットの性質を分類するためのカテゴリ フィールドがあります。 カテゴリはプロパティ オブジェクトを持っている場合があり、カテゴリを割り当てる際チケットに添付されます。 プロパティ オブジェクトが「
必須
」に指定されている場合は、チケットを保存する前に値を入力する必要があります(挿入および更新操作にも当てはまります)。
CA SDM Web サービスでは、Web サービスを使用して作成したチケットには自動的にデフォルト値が与えられます。 デフォルト値(現在は "-")は、CA SDM の各言語別メッセージ カタログから取得されます。
作成時にプロパティ値を設定するには、次の 3 種類のメソッド createChangeOrder、createIssue、createRequest を使用します。 各メソッドでは、パラメータに値を指定してプロパティに渡すことができます。 添付されるプロパティを確かめるには、チケットに割り当てるカテゴリに関連付けられたプロパティを調べる必要があります。 最も簡単に使用できるメソッドはgetPropertyInfoForCategory()です。
getPropertyInfoForCategory() の詳細については、「CA Service Desk Manager 参照コマンド」を参照してください。
プロパティに対する有効な値を識別するには、まず適切なプロパティ テンプレートのプロパティ検証ルールを特定します。 これには、getPropertyInfoForCategory メソッドをコールする際に、validation_rule 属性をリクエストします。 次に、そのルールに関連付けられた validation_type を取得します。 タイプがドロップダウンの場合は、getRelatedList メソッドを使用して、ルールに関連付けられた値を取得し、prpval_rule オブジェクト内の「値」 BREL 属性を使用します。
詳細については、「CA Service Desk Manager 参照コマンド」を参照してください。
updateObject() で更新操作を行った後にプロパティ値を設定するには、更新後にプロパティ リストをクエリする必要があります。このタスクには getRelatedList() を使用できます。
Web サービス メソッドによるプロパティ値の検証は、現在サポートされていません。 たとえば、ドロップダウン オプションの検証タイプを指定して検証ルールにプロパティ値を割り当てるには、ドロップダウン オプション検証ルールを作成する際に、追加コードを記述して、プロパティ値を作成する必要があります。 チェック ボックス検証ルールにプロパティ値を割り当てないでください。
プロパティ検証ルールの詳細については、「カテゴリまたは領域の設定」を参照してください。
XMLオブジェクトの戻り値
多くの Web サービス メソッドは、CA SDM オブジェクトを XML 形式で返します。 Webサービスは、以下のルート エレメントで始まるXMLの標準構造を使用します。
<UDSObject>
XML形式は以下の表のとおりです。
XML エレメント
タイプ
説明
<UDSObject>
N/A
ルート ノードを示します。
<Handle>
文字列
オブジェクト ハンドルを示します。
<Attributes>
シーケンス
属性値を示します。 オブジェクト属性値のエレメントを0個以上保持します。
<
attrName0
DataType =
“typeEnum">
文字列
AttrName0
を示します。これは CA SDM の majic(.maj)ファイルまたは mod (.mod)ファイルで定義されたオブジェクトの属性名です。
使用するWebメソッドによってはドット表記が使えます。
エレメント値は属性値になります。 エレメントの値が空の場合、オブジェクト属性の値も空/Nullです。
DataType 属性には、CA SDM 環境内の属性のデータ タイプを示す整数が入ります。
getObjectValues()をコールした場合、以下のような情報が返されます。
<UDSObject> <Handle>cnt:555A043EDDB36D4F97524F2496B35E75</Handle> <Attributes> <Attribute DataType="2003"> <AttrName>first_name</AttrName> <AttrValue>first name</AttrValue> <DisplayValue>Yaakov</DisplayValue> </Attribute> <Attribute DataType="2005"> <AttrName>organization</AttrName> <AttrValue>342</AttrValue> <DisplayValue>Accounting Crew</DisplayValue> </Attribute> </Attributes> <Lists> <List name="mylist1"> <UDSObject>...</UDSObject> <UDSObject>...</UDSObject> </List> </Lists> </UDSObject>
doSelect()などのメソッドは、<UDSObjectList> エレメントに一連の <UDSObject> エレメントを含めて返します。
<Lists> セクションには0個以上の <List> ノードが含まれます。 <List> ノードには、0 個 以上の <UDSObject> が含まれています。 通常、 エレメントはリスト値に対する特定のリクエストが行われた場合にのみ返されます。
特定のオブジェクトに関連する値のリストを返す場合は、
getRelatedListValues
メソッドを使用する必要があります。
actlog などの属性名をリクエストせずに、リストのみリクエストした場合は、<UDSObject> 全体が <List> セクションに返されます。
ただし、getDocument() などの特殊なメソッドは除きます。 属性をリクエストすると、データベース値が返されます。 SREL属性の場合、この値はあまり役立ちません。 リクエストの assignee 属性をリクエストすると、Contact REL_ATTR (外部キー)が ID であるため、整数が返されます。 CA Service Desk r11.0 では、属性の戻りデータに DBMS のエレメント、および SREL 参照の共通名の値が含まれます。