名称

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 操作。 根据用途的不同,一些数据元素将不包含值。 如果未设置数据元素,则始终处于未定义状态。


方法

以下方法可用:

new
 sub new(xmlData)

初始化新创建的 ChangeSynergy::apiObjectData 类,以便使其表示传入的 xml 数据。

 my $apiObject = new ChangeSynergy::objectData($xmlData);
 
参数:
	xmlData  - 需要解析成可用格式的 XML 数据。
 抛出:

	die - 如果不能解析 xml 数据
getDate

获取“属性日期值”属性。返回可读的时间 采用缺省格式 (MM/dd/yyyy H:mm:ss) 显示日期。

my $date = $apiObject->getDate();

print $date . "\n"; #ex. 02/08/2006 13:27:49

 返回:标量
“属性日期”属性。	
getDefault

获取该属性的缺省值。

my $default = $apiObject->getDefault()

 返回:标量
该属性的缺省值。该值在生命周期编辑器中设置。
getESignatures

获取与此对象相关的电子签名。 如果未设置,则是未定义的。返回结果是 apiESignatures 类的实例。

my $eSigs = $apiObject->getESignatures()

 返回:apiESignatures
此对象的电子签名。
getFormattedUserName

获取格式化的用户名属性。这将返回用户显示名称,否则 CCM_USER 属性为空字符串。该值将与 getValue 方法相同,除非“用户名显示”功能已经设置为用户标识之外的其他值。

my $date = $apiObject->getFormattedUserName();

 返回:标量
格式化的显示用户名。
getInherited

获取“属性为继承的”属性,0 为 false,1 为 true。

my $inherited = $apiObject->getInherited()

 返回:标量
“属性为继承的”属性。
getInheritedStr

获取字符串的“属性为继承的”属性,true 或 false。

my $inheritedStr = $apiObject->getInheritedStr()

 返回:标量
字符串的“属性为继承的”属性	
getIsModified

获取“属性已修改”属性,0 为 false,1 为 true。

my $isModified = $apiObject->getIsModified()

 返回:标量
属性是否已修改。
getIsModifiedStr

获取字符串的“属性已修改”属性,true 或 false。

my $isModifiedStr = $apiObject->getIsModifiedStr()

 返回:标量
字符串的“属性是否已修改”属性。
getIsShowModified

获取“属性已修改”属性,0 为 false,1 为 true。

my $isShowModified = $apiObject->getIsShowModified()

 返回:标量
属性是否已修改。
getIsSubmitModified

获取“属性已修改”属性,0 为 false,1 为 true。

my $isSubmitModified = $apiObject->getIsSubmitModified()

 返回:标量
属性是否已修改。
getLabel

获取“属性标签”属性

my $value = $apiObject->getLabel()

 返回:标量
“属性标签”属性。
getName

获取“属性名称”属性。

my $name = $apiObject->getName()

 返回:标量
“属性名称”属性。	
getReadOnly

获取“属性只读”属性,0 为 false,1 为 true。

my $readOnly = $apiObject->getReadOnly()

 返回:标量
“属性只读”属性。	
getReadOnlyStr

获取字符串的“属性只读”属性,true 或 false。

my $readOnlyStr = $apiObject->getReadOnlyStr()

 返回:标量
字符串的“属性只读”属性	
getRequired

获取“属性必需”属性,0 为 false,1 为 true。

my $required = $apiObject->getRequired()

 返回:标量
“属性必需”属性。	
getRequiredStr

获取字符串的“属性必需”属性,true 或 false

my $requiredStr = $apiObject->getRequiredStr()

 返回:标量
字符串的“属性必需”属性	
getSubscription

获取与此对象相关的预订信息。如果未设置,则为空对象。返回的结果为 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: " . $@;
	}
getType

获取“属性 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
getValue

获取“属性值”属性。如果属性为 CCM_DATE,而返回值为自 1970 年起的时间(以秒为单位),或如果属性当前没有定义日期,则为空字符串。

my $value = $apiObject->getValue();

print $value . "\n"; #ex. 1139434069 for a CCM_DATE

 返回:标量
“属性值”属性。
getXmlData

获取构造此对象所用的 XML 数据。

注意:仅适用于调试。

my $xmlData = $apiObject->getXmlData()

 返回:标量
用于构造此对象的 XML 数据,非常适用于调试。  
setIsModified

设置类实例的“isModified”属性。

$apiObject->setIsModified($value)

 参数:
	value - isModified 的新值(true 或 false)
setLabel

设置类实例的“标签”属性。

$apiObject->setLabel($value)

 参数:
	value - 标签的新值
setName

设置类实例的“名称”属性。

$apiObject->setName($value)

 参数:
	value - 名称的新值
setType

设置类实例的“类型”属性。

$apiObject->setType($value)

 参数:
	value - 类型的新值
setValue

设置类实例的“值”属性。

值设置为指定值,这通常是预期的行为。例如,如果 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 - 值的新值
setXMLEncodedValue

不推荐。改为使用 setValue。 设置类实例的“值”属性。 XML 编码用户值,从而不需要进行外部编码。

$apiObject->setXMLEncodedValue($value)

 参数:
	value - 值的新值
toAttributeXml

获取用于发送到 IBM Rational Change 服务器的 XML 数据。

api 函数用于构造将提交给 IBM Rational Change 服务器的 XML 字符串。

my $xmlData = $apiObject->toAttributeXml()

 返回:标量
提交给 IBM Rational Change 服务器的 XML 数据。该函数将获取对象中的所有当前信息,并将其转换为 XML。
toObjectXml

获取用于发送到 IBM Rational Change 服务器的 XML 数据。

api 函数用于构造将提交给 IBM Rational Change 服务器的 XML 字符串。

my $xmlData = $apiObject->toObjectXml()

 返回:标量
提交给 IBM Rational Change 服务器的 XML 数据。该函数将获取对象中的所有当前信息,并将其转换为 XML。
toXml

获取用于发送到 IBM Rational Change 服务器的 XML 数据。

api 函数用于构造将提交给 IBM Rational Change 服务器的 XML 字符串。

my $xmlData = $apiObject->toXml()

 返回:标量
提交给 IBM Rational Change 服务器的 XML 数据。该函数将获取对象中的所有当前信息,并将其转换为 XML。