ChangeSynergy::apiObjectData
ChangeSynergy::apiObjectData オブジェクトは、任意のオブジェクトの属性の 1 つを詳細に表すために使用します。 このクラスのインスタンスの作成に使用される XML フォーマットは次のとおりです。
<csapi_cobject_data> <csapi_cobject_data_name>attribute name</csapi_cobject_data_name> <csapi_cobject_data_value>attribute value</csapi_cobject_data_value> <csapi_cobject_data_type>web type</csapi_cobject_data_type> <csapi_cobject_data_readonly>true|false</csapi_cobject_data_readonly> <csapi_cobject_data_required>true|false</csapi_cobject_data_required> <csapi_cobject_data_inherited>true|false</csapi_cobject_data_inherited> <csapi_cobject_data_default>default value for this attribute</csapi_cobject_data_default> <csapi_cobject_data_date>formatted date</csapi_cobject_data_date> </csapi_cobject_data>
一般的に、このオブジェクトはレポート API とデータ表示 API の両方の操作で使用されます。 データ要素には、使い方によって値を持たないものもあります。 データ要素が設定されない場合は常に undef となります。
以下のメソッドを使用できます。
sub new(xmlData)
新しく作成される ChangeSynergy::apiObjectData クラスを初期化して、渡される XML データを表すようにします。
my $apiObject = new ChangeSynergy::objectData($xmlData); パラメーター: xmlData - 構文解析して使用可能なフォームへ変換する必要がある XML データ。
スロー: die - XML データの構文解析ができない場合。
属性日付値プロパティーを取得します。ユーザーが理解できる日付表記形式による時間表現を返します、デフォルトは MM/dd/yyyy H:mm:ss です。
my $date = $apiObject->getDate();
print $date . "\n"; #ex. 02/08/2006 13:27:49
戻り値: スカラー 属性日付プロパティー。
この属性のデフォルト値を取得します。
my $default = $apiObject->getDefault()
戻り値: スカラー この属性のデフォルト値。この値はライフサイクル・エディターで設定されます。
このオブジェクトに関連付けられている電子署名を取得します。 何も設定されていない場合、これは未定義となります。返される結果は apiESignature クラスのインスタンスです。
my $eSigs = $apiObject->getESignatures()
戻り値: apiESignatures このオブジェクトの電子署名。
書式付きユーザー名プロパティーを取得します。 これはユーザー表示名を返すか、または CCM_USER 属性でない場合は空の文字列を返します。 ユーザー名表示 (Username Display) 機能がユーザー ID 以外に設定されている場合を除き、この値は getValue メソッドと同じになります。
my $date = $apiObject->getFormattedUserName();
戻り値: スカラー 書式付き表示ユーザー名。
属性継承プロパティーを取得します (0 が false、1 が true)。
my $inherited = $apiObject->getInherited()
戻り値: スカラー この属性は継承されたプロパティーです。
属性継承プロパティーを true または false の文字列として取得します。
my $inheritedStr = $apiObject->getInheritedStr()
戻り値: スカラー 属性継承プロパティーを示す文字列。
属性修正プロパティーを取得します (0 が false、1 が true)。
my $isModified = $apiObject->getIsModified()
戻り値: スカラー 属性修正の有無。
属性修正プロパティーを true または false の文字列として取得します。
my $isModifiedStr = $apiObject->getIsModifiedStr()
戻り値: スカラー 属性修正の有無プロパティーを示す文字列。
属性修正プロパティーを取得します (0 が false、1 が true)。
my $isShowModified = $apiObject->getIsShowModified()
戻り値: スカラー 属性修正の有無。
属性修正プロパティーを取得します (0 が false、1 が true)。
my $isSubmitModified = $apiObject->getIsSubmitModified()
戻り値: スカラー 属性修正の有無。
属性ラベル・プロパティーを取得します。
my $value = $apiObject->getLabel()
戻り値: スカラー 属性ラベル・プロパティー。
属性名プロパティーを取得します。
my $name = $apiObject->getName()
戻り値: スカラー 属性名プロパティー。
属性読み取り専用プロパティーを取得します (0 が false、1 が true)。
my $readOnly = $apiObject->getReadOnly()
戻り値: スカラー 属性読み取り専用プロパティー。
属性読み取り専用プロパティーを true または false の文字列として取得します。
my $readOnlyStr = $apiObject->getReadOnlyStr()
戻り値: スカラー 属性読み取り専用プロパティーを示す文字列。
属性必須プロパティーを取得します (0 が false、1 が true)。
my $required = $apiObject->getRequired()
戻り値: スカラー 属性必須プロパティー。
属性必須プロパティーを true または false の文字列として取得します。
my $requiredStr = $apiObject->getRequiredStr()
戻り値: スカラー 属性必須プロパティーを示す文字列。
このオブジェクトに関連付けられている登録情報を取得します。 何も設定されていない場合、これは空です。返される結果は apiSubscription クラスのインスタンスです。
my $subscription = $apiObject->getSubscription()
戻り値: apiSubscription このオブジェクトの登録情報。
例: use ChangeSynergy::csapi;
my $csapi = new ChangeSynergy::csapi();
eval { $csapi->setUpConnection("http", "your_hostname", 8600);
my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
#Show problem 22 my $problem = $csapi->AttributeModifyCRData ($aUser, "22"); #Get the CCM_SUBSCRIPTION attribute called subscription1. my $attribute = $problem->getDataObjectByName("subscription1");
#Get the actual subscription data. The real value is XML. my $subscription = $attribute->getSubscription(); eval { #Modify the user jsmith to change his real name. my $subscriber = $subscription->getSubscriberByUserName("jsmith"); $subscriber->setRealName("John Smith"); }; if($@) { #Print the error message if there is one. print $@; } #Add a new user. $subscription->addSubscriber("cscott", "Chris Scott", "chris.scott\@company.com"); #set the new XML value for subscription1. $problem->getDataObjectByName("subscription1")->setValue($subscription->toSubmitXml()); #Modify the CR with the changes to the subscription list. my $ret_val = $csapi->ModifyCR($aUser, $problem);
#Print the response from calling ModifyCR. print "\n" . $ret_val->getResponseData(); }; if($@) { die "Failed to modify subscription list: " . $@; }
属性ウェブ・タイプ・プロパティーを取得します。
my $type = $apiObject->getType()
戻り値: スカラー 属性ウェブ・タイプ・プロパティー。 以下のいずれかになります。 CCM_STRING CCM_TEXT CCM_DATE CCM_USER CCM_NUMBER CCM_READONLY CCM_LISTBOX CCM_VALUELISTBOX CCM_TOGGLE CCM_RELATION CCM_HIDDEN CCM_E_SIGNATURE CCM_SUBSCRIPTION
属性値プロパティーを取得します。 属性が CCM_DATE である場合は、戻り値は、1970 年からの秒数か、属性が現在定義された日付をもたない場合は空の文字列になります。
my $value = $apiObject->getValue();
print $value . "\n"; #ex. 1139434069 for a CCM_DATE
戻り値: スカラー 属性値プロパティー。
このオブジェクトの作成に使用される XML データを取得します。
注記: これはデバッグ専用です。
my $xmlData = $apiObject->getXmlData()
戻り値: スカラー このオブジェクトの作成に使用される XML データ。デバッグに役立ちます。
このクラス・インスタンスの「isModified」プロパティーを設定します。
$apiObject->setIsModified($value)
パラメーター: value - isModified の新しい値 (true または false)。
このクラス・インスタンスの「ラベル」(label) プロパティーを設定します。
$apiObject->setLabel($value)
パラメーター: value - ラベル (label) の新しい値。
このクラス・インスタンスの「名前」(name) プロパティーを設定します。
$apiObject->setName($value)
パラメーター: value - 名前 (name) の新しい値。
このクラス・インスタンスの「タイプ」(type) プロパティーを設定します。
$apiObject->setType($value)
パラメーター: value - タイプ (type) の新しい値。
このクラス・インスタンスの「値」(value) プロパティーを設定します。
値は、指定したとおりに設定されます。多くの場合、 これは予期された動作です。例えば、CCM_STRING 属性を値 "<b>Example</b>" に設定すると、 このタイプの属性はプレーン・テキストで動作するため、 このストリングそのもの ("<b>Example</b>") が Web インターフェースを介して表示されます。
設定する属性が CCM_EXTENDED_TEXT 属性である場合、この属性は HTML テキスト値を表すため、 値の設定と取得は対称的です (つまり、この場合も値 "<b>Example</b>" が保存され、 そのまま取得されます) が、Web インターフェースを介して表示されるときには、 単なる語 "Example" が太字フォントでレンダリングされます。テキスト "<b>Example</b>" をそのまま Web インターフェースに表示したい場合は、setValue を呼び出す前に、 先にデータ値に対して ChangeSynergy::util::xmlEncode を呼び出して特別な HTML 文字をエスケープする必要があります。
$apiObject->setValue($value)
サーバーに提出する日付値を設定するときにも使用する必要があります。 1970 年以降、日付値はミリ秒の単位で設定します。 1970 年以降、PERL の日付は秒の単位で表示します。
値の設定時を除き、API は必要に応じて値をエンコードします。
現在の時間の設定例:
#Get the current time. my $time = time; $apiObject->setValue($time);
未来または過去の時刻の設定例:
use Time::Local;
# 5/10/2004 (mm/dd/yyyy) #timelocal($seconds, $minutes, $hours, $day of month, $month, $year); $seconds = timelocal(0, 0, 0, 10, 5, 2004); $apiObject->setValue($seconds); 上記の時刻をユーザーが理解できる形式に変換: #Must add 1900 to the year to get the correct year. ($seconds, $minutes, $hours, $day_of_month, $month, $year, $wday, $yday, $isdst) = localtime($seconds);
print "Reconverted Date: " . $month . "/" . $day_of_month . "/" . ($year + 1900); #Should print 5/10/2004
パラメーター: value - 値 (value) の新しい値。
非推奨。代わりに setValue を使用してください。 このクラス・インスタンスの「値」(value) プロパティーを設定します。 XML はユーザーに代わって値をコード化するので、外部でコード化する必要はありません。
$apiObject->setXMLEncodedValue($value)
パラメーター: value - 値 (value) の新しい値。
IBM Rational Change サーバーへの送出のために使われる XML データを取得します。
IBM Rational Change サーバーに提出される XML 文字列を構築する API 関数によって使用されます。
my $xmlData = $apiObject->toAttributeXml()
戻り値: スカラー IBM Rational Change サーバーへの送出のために使われる XML データ。 この関数はオブジェクト内の現在の情報をすべて取り出し、それらを XML に変換します。
IBM Rational Change サーバーへの送出のために使われる XML データを取得します。
IBM Rational Change サーバーに提出される XML 文字列を構築する API 関数によって使用されます。
my $xmlData = $apiObject->toObjectXml()
戻り値: スカラー IBM Rational Change サーバーへの送出のために使われる XML データ。 この関数はオブジェクト内の現在の情報をすべて取り出し、それらを XML に変換します。
IBM Rational Change サーバーへの送出のために使われる XML データを取得します。
IBM Rational Change サーバーに提出される XML 文字列を構築する API 関数によって使用されます。
my $xmlData = $apiObject->toXml()
戻り値: スカラー IBM Rational Change サーバーへの送出のために使われる XML データ。 この関数はオブジェクト内の現在の情報をすべて取り出し、それらを XML に変換します。