ChangeSynergy::apiObjectData
ChangeSynergy::apiObjectData 对象用于表示任何给定对象的某个属性的详细信息。用于构造此类实例的 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 操作。 根据用途的不同,一些数据元素将不包含值。 如果未设置数据元素,则始终处于未定义状态。
以下方法可用:
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()
返回:标量 该属性的缺省值。该值在生命周期编辑器中设置。
获取与此对象相关的电子签名。 如果未设置,则是未定义的。返回结果是 apiESignatures 类的实例。
my $eSigs = $apiObject->getESignatures()
返回:apiESignatures 此对象的电子签名。
获取格式化的用户名属性。这将返回用户显示名称,否则 CCM_USER 属性为空字符串。该值将与 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: " . $@; }
获取“属性 Web 类型”属性。
my $type = $apiObject->getType()
返回:标量 “属性 Web 类型”属性。 可以为以下其中一项: 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)
设置类实例的“标签”属性。
$apiObject->setLabel($value)
参数: value - 标签的新值
设置类实例的“名称”属性。
$apiObject->setName($value)
参数: value - 名称的新值
设置类实例的“类型”属性。
$apiObject->setType($value)
参数: value - 类型的新值
设置类实例的“值”属性。
值设置为指定值,这通常是预期的行为。例如,如果 CCM_STRING 属性设置为值“<b>示例</b>”, 那么将通过 web 界面看到准确的字符串“<b>示例</b>”,因为这种属性采用纯文本。
如果属性设置为 CCM_EXTENDED_TEXT 属性(显示 HTML 文本值),那么设置和获取值仍将是对称的(例如,原样保存并检索值“<b>示例</b>”) ,但是当通过 web 界面查看时,将只呈现粗体的“示例”字样。如果确实希望在 web 界面中显示“<b>示例</b>”文本, 则需要通过在调用 setValue 前先对数据值调用 ChangeSynergy::util::xmlEncode,以转义特殊 HTML 字符。
$apiObject->setValue($value)
当设置要向服务器提交的数据值时,同样必须使用。 日期值必须设置为从 1970 年开始(以秒为单位)。PERL 日期为从 1970 开始的日期(以秒为单位)。
除了设置值外,如果需要,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 - 值的新值
不推荐。改为使用 setValue。 设置类实例的“值”属性。 XML 编码用户值,从而不需要进行外部编码。
$apiObject->setXMLEncodedValue($value)
参数: value - 值的新值
获取用于发送到 IBM Rational Change 服务器的 XML 数据。
api 函数用于构造将提交给 IBM Rational Change 服务器的 XML 字符串。
my $xmlData = $apiObject->toAttributeXml()
返回:标量 提交给 IBM Rational Change 服务器的 XML 数据。该函数将获取对象中的所有当前信息,并将其转换为 XML。
获取用于发送到 IBM Rational Change 服务器的 XML 数据。
api 函数用于构造将提交给 IBM Rational Change 服务器的 XML 字符串。
my $xmlData = $apiObject->toObjectXml()
返回:标量 提交给 IBM Rational Change 服务器的 XML 数据。该函数将获取对象中的所有当前信息,并将其转换为 XML。
获取用于发送到 IBM Rational Change 服务器的 XML 数据。
api 函数用于构造将提交给 IBM Rational Change 服务器的 XML 字符串。
my $xmlData = $apiObject->toXml()
返回:标量 提交给 IBM Rational Change 服务器的 XML 数据。该函数将获取对象中的所有当前信息,并将其转换为 XML。