名称

ChangeSynergy::csapi


描述

ChangeSynergy::csapi 类是用于从 IBM Rational Change 服务器发送和检索信息的类。


方法

以下方法可用:

new
 sub new()

初始化最新创建的 ChangeSynergy::csapi 类。

 my $csapi = new ChangeSynergy::csapi();
AddAPreferenceForAUser

为用户添加/更改用户首选项和值。要添加或更改的值必须已通过某个配置文件定义为用户首选项。要编辑或添加用户配置设置,keyName 应该为“_USER_CFG_”,系统将附加用户名。 返回结果是 apiData 类的实例。

注:无法更改或添加用户概要文件值。这些值包括用户的名字、姓氏、电子邮件地址、传真号、电话号码和地址。

 参数:
	apiUser aUser   :当前 api 用户的登录数据。
	scalar  username:要编辑的用户首选项的名称。
	scalar  keyName :要添加的首选项的名称。
	scalar  keyValue:要添加的首选项的值。
	scalar  allDBs  :true 或 false,指示是否对所有数据库执行添加,
						还是仅对当前 api 用户登录到的数据库执行添加。
 返回:apiData
来自服务器的返回消息。
 
示例:
	

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		
		$tmpData = $csapi->AddAPreferenceForAUser($aUser, "u00001", "user_fontsize", "9", "true");
	
		print $tmpData->getResponseData();
	};
	if ($@)
	{
		print $@;
	}
AddAPreferenceForAllUsers

为所有用户添加/更改用户首选项和值。要添加或更改的值必须已通过某个配置文件定义为用户首选项。要编辑或添加用户配置设置,keyName 应该为“_USER_CFG_”,系统将附加用户名。 返回结果是 apiData 类的实例。

注:无法更改或添加用户概要文件值。这些值包括用户的名字、姓氏、电子邮件地址、传真号、电话号码和地址。

 参数:
	apiUser aUser   :当前 api 用户的登录数据。
	scalar  keyName :要添加的首选项的名称。
	scalar  keyValue:要添加的首选项的值。
	scalar  allDBs  :true 或 false,指示是否对所有数据库执行添加,
						还是仅对当前 api 用户登录到的数据库执行添加。
 返回:apiData
来自服务器的返回消息。
 
示例:
	

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		
		$tmpData = $csapi->AddAPreferenceForAllUsers($aUser, "user_fontsize", "9", "true");
	
		print $tmpData->getResponseData();
	};
	if ($@)
	{
		print $@;
	}
addFolder

向服务器添加新的空查询、报告格式或报告文件夹。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser     :当前 api 用户的登录数据。
	scalar  folderName:要添加的文件夹的名称。
	scalar  objectType:文件夹的对象类型。
	scalar  formatType:文件夹的格式类型:报告、查询或报告格式。
	scalar  configType:报告的配置位置。
 有效的对象类型(Globals.pm 中定义的常量):
        PROBLEM_TYPE
        TASK_TYPE
        OBJECT_TYPE
 有效的格式类型(Globals.pm 中定义的常量):
 		QUERY
        REPORT
        REPORT_FORMAT
 

有效配置类型(常量定义在 Globals.pm 中):
        SHARED_PROFILE
        SYSTEM_CONFIG
        USER_PROFILE

返回:apiData
来自服务器的返回消息。

示例:
	

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\machine\\ccmdb\\cm_database");
		
		my $globals = new ChangeSynergy::Globals();
		
		#Create a new shared CR Report folder called 'API Folder'.

		my $addResults = $csapi->addFolder($aUser, "API Folder", $globals->{PROBLEM_TYPE}, $globals->{REPORT}, $globals->{SHARED_PROFILE});
		print $addResults->getResponseData();
	};
	if ($@)
	{
		print $@;
	}
AttributeModifyCRData

将变更请求的详细信息装入数据类中,可以在其中修改变更请求的详细信息。然后,可以使用某个修改 api 函数提交已修改的数据类以更改变更请求。 返回结果是 apiObjectVector 类的实例。

注:当前转换选项随该 api 函数调用提供。 请参阅 apiTransitions 类描述。

 参数:
	apiUser aUser        :当前 api 用户的登录数据。
	scalar  problemNumber:要引用的变更请求标识/问题号标识。
 返回:apiObjectVector
数据格式的变更请求详细信息。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->AttributeModifyCRData($aUser, "100");
		my $tmpstr = $tmp->getXmlData();
	};
	if ($@)
	{
		print $@;
	}
AttributeModifyCRData

将变更请求的详细信息装入数据类中,可以在其中修改变更请求的详细信息。然后,可以使用某个修改 api 函数提交已修改的数据类以更改变更请求。 返回结果是 apiObjectVector 类的实例。

注:当前转换选项随该 api 函数调用提供。 请参阅 apiTransitions 类描述。

 参数:
	apiUser aUser        :当前 api 用户的登录数据。
	scalar  problemNumber:要引用的变更请求标识/问题号标识。
	scalar  attributeName:可在其中查找所引用对象当前值
	                       的属性的名称。该值必须
	                       是 IBM Rational Change 模板的名称。
 返回:apiObjectVector
数据格式的变更请求详细信息。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->AttributeModifyCRData($aUser, "100", "crstatus");
		my $tmpstr = $tmp->getXmlData();
	};
	if ($@)
	{
		print $@;
	}
AttributeModifyCRDataAllTransitions

将变更请求的详细信息装入数据类中,可以在其中修改变更请求的详细信息。然后,可以使用某个修改 api 函数提交已修改的数据类以更改变更请求。 返回结果是 apiObjectVector 类的实例。 AllTransitions 函数包含 HIDDEN 转换。

注:当前转换选项随该 api 函数调用提供。 请参阅 apiTransitions 类描述。

 参数:
	apiUser aUser        :当前 api 用户的登录数据。
	scalar  problemNumber:要引用的变更请求标识/问题号标识。
	scalar  attributeName:可在其中查找所引用对象当前值
	                       的属性的名称。该值必须
	                       是 IBM Rational Change 模板的名称。
 返回:apiObjectVector
数据格式的变更请求详细信息。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->AttributeModifyCRDataAllTransitions($aUser, "100", "crstatus");
		my $tmpstr = $tmp->getXmlData();
	};
	if ($@)
	{
		print $@;
	}
AttributeModifyCRDataAllTransitions

将变更请求的详细信息装入数据类中,可以在其中修改变更请求的详细信息。然后,可以使用某个修改 api 函数提交已修改的数据类以更改变更请求。 返回结果是 apiObjectVector 类的实例。 AllTransitions 函数包含 HIDDEN 转换。

注:当前转换选项随该 api 函数调用提供。 请参阅 apiTransitions 类描述。

 参数:
	apiUser aUser        :当前 api 用户的登录数据。
	scalar  problemNumber:要引用的变更请求标识/问题号标识。
 返回:apiObjectVector
数据格式的变更请求详细信息。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->AttributeModifyCRDataAllTransitions($aUser, "100");
		my $tmpstr = $tmp->getXmlData();
	};
	if ($@)
	{
		print $@;
	}
BalanceTransactionServer

触发会话平衡例程。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser:当前 api 用户的登录数据。
 返回:apiData
来自服务器的返回消息。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->BalanceTransactionServer($aUser);
	};
	if ($@)
	{
		print $@;
	}
CallBsfScript

调用服务器上的 Bean 脚本框架 (BSF) 脚本并获取其返回值。BSF 脚本必须位于服务器的 wsconfig/scripts 目录中。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser     :当前 api 用户的登录数据。
	scalar  scriptName:要在服务器上执行的脚本的名称。必须位于 wsconfig/script 目录中。
						值将是使用此方法编码的 XML。
	scalar  scriptData:应以字符串形式发送至脚本的数据。可以是 XML,但必须是编码的 XML。
						值将是使用此方法编码的 XML。
 返回:apiData
来自脚本的返回消息。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		my $scriptResults = $csapi->CallBsfScript($aUser, "testscript.js", "Data to the script");
		print $scriptResults->getResponseData() . "\n";
	};
	if ($@)
	{
		print $@;
	}
ChangePreferenceNameForAUser

为单个用户更改用户首选项的名称。不能将首选项名称重命名为该用户已存在的首选项名称。返回结果是 apiData 类的实例。

注:无法更改或添加用户概要文件值。这些值包括用户的名字、姓氏、电子邮件地址、传真号、电话号码和地址。

 参数:
	apiUser aUser   :当前 api 用户的登录数据。
	scalar  username:要编辑的用户首选项的名称。
	scalar  keyName :要更改的首选项的名称。
	scalar  keyValue:首选项的新名称。
	scalar  allDBs  :true 或 false,指示是否对所有数据库执行添加,
						还是仅对当前 api 用户登录到的数据库执行添加。
 返回:apiData
来自服务器的返回消息。
 
示例:
	

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		
		$tmpData = $csapi->ChangePreferenceNameForAUser($aUser, "u00001", "user_cr_notes", "user_crnotes", "true");
	
		print $tmpData->getResponseData();
	};
	if ($@)
	{
		print $@;
	}
ChangePreferenceNameForAllUsers

为系统中的所有用户更改用户首选项的名称。 不能将首选项名称重命名为用户已存在的首选项名称。如果某个用户不存在该首选项名称,那么不会对该用户进行任何更改。如果存在,那么将相应地更改该首选项名称。返回结果是 apiData 类的实例。

注:无法更改或添加用户概要文件值。这些值包括用户的名字、姓氏、电子邮件地址、传真号、电话号码和地址。

 参数:
	apiUser aUser   :当前 api 用户的登录数据。
	scalar  keyName :要更改的首选项的名称。
	scalar  keyValue:首选项的新名称。
	scalar  allDBs  :true 或 false,指示是否对所有数据库执行添加,
						还是仅对当前 api 用户登录到的数据库执行添加。
 返回:apiData
来自服务器的返回消息。
 
示例:
	

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		
		$tmpData = $csapi->ChangePreferenceNameForAllUsers($aUser, "user_cr_notes", "user_crnotes", "true");
	
		print $tmpData->getResponseData();
	};
	if ($@)
	{
		print $@;
	}
ChangeRequestFullName

获取变更请求的由四个部分组成的名称。

 参数:
 
	apiUser aUser       :当前 api 用户的登录数据。
	scalar ProblemNumber:问题号。
 
返回:标量
由四个部分组成的名称。
ClearAllUserConfigurationData

卸载 IBM Rational Change 服务器上的所有用户配置数据。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser:当前 api 用户的登录数据。
 返回:apiData
来自服务器的返回消息。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->ClearAllUserConfigurationData($aUser);
	};
	if ($@)
	{
		print $@;
	}
ClearBusySessions

清除忙会话表。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser:当前 api 用户的登录数据。
 返回:apiData
来自服务器的返回消息。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->ClearBusySessions($aUser);
	};
	if ($@)
	{
		print $@;
	}
ClearTransitionUserList

清除转变用户列表,将对下一个请求创建新的副本。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser:当前 api 用户的登录数据。
 返回:apiData
来自服务器的返回消息。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->ClearTransitionUserList($aUser);
	};
	if ($@)
	{
		print $@;
	}
ClientAPIVersion

获取客户机的 API 版本号。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser:当前 api 用户的登录数据。
 返回:apiData

版本号字符串。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr1 = $csapi->ClientAPIVersion($aUser);
	};
	if ($@)
	{
		print $@;
	}
CopyCRData

将变更请求的详细信息装入数据类中,可以在其中提交/复制变更请求的详细信息。然后,可以使用某个修改 api 函数提交已修改的数据类以更改变更请求。 返回结果是 apiObjectVector 类的实例。

注:提交“结束状态”和“关系名称”随该 api 函数调用提供。 请参阅 apiTransitions 类描述。

 参数:
	apiUser aUser        :当前 api 用户的登录数据。
	scalar  problemNumber:要引用的变更请求标识/问题号标识。
	scalar  templateName :要装入的 IBM Rational Change 模板的名称
	                       ([CCM_TEMPLATE][NAME]template name[/NAME]...[/CCM_TEMPLATE])。
 返回:apiObjectVector
数据格式的变更请求详细信息。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->CopyCRData($aUser, "100", "COPY_child_cr2new_child");
		my $tmpstr = $tmp->getXmlData();
	};
	if ($@)
	{
		print $@;
	}
CopyTaskData

将任务的详细信息装入数据类中,可以在其中提交/复制任务的详细信息。然后,可以使用某个修改 api 函数提交已修改的数据类以更改任务。 返回结果是 apiObjectVector 类的实例。

 参数:
	apiUser aUser       :当前 api 用户的登录数据。
	scalar  taskNumber  :要引用的任务标识。
	scalar  templateName:要装入的 IBM Rational Change 模板的名称
	                      ([CCM_TEMPLATE][NAME]template name[/NAME]...[/CCM_TEMPLATE])。
 返回:apiObjectVector
数据格式的任务详细信息。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->CopyTaskData($aUser, "12", "CreateTask");
		my $tmpstr = $tmp->getXmlData();
	};
	if ($@)
	{
		print $@;
	}
CreateAttachmentObject

在 IBM Rational Change 服务器上创建附件文件对象,并将其与 CR 相关联。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser :当前 api 用户的登录数据。
	scalar  problemNumber :要与文件相关联的问题号/CR 标识。
	scalar  relation      :将对象与 CR 相关联时要使用的关系名称。
	scalar  attachmentName:该对象的文件名。
	scalar  webType       :客户机上的回车符序列。

	                              CRLF:Windows 客户机文本文件。
	                              LF:Unix 客户机文本文件。
	                              BINARY:文件是二进制文件。
	scalar  comment       :要更新的对象的注释。
	scalar  type          :保留以供将来使用。
	scalar  isBinary      :用于指定文件是二进制文件的标志。
	scalar  buffer        :数据缓冲区。
	scalar  size          :缓冲区的大小。
 返回:apiData
来自服务器的返回消息。
 示例:
	my $csapi  = new ChangeSynergy::csapi();

	my $buf    = "";

	my $buffer = "";

	my $size   = "";
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		open(INPUTFILE, "output.doc") or die "Could not open up the file";
		binmode(INPUTFILE);
		while($buf = readline *INPUTFILE)
		{
			$buffer .= $buf;
		}
		close(INPUTFILE);
	
		$size = -s "output.doc";
    	

		my $data = $csapi->CreateAttachmentObject($aUser, "1", "attachment", "output",
											   "BINARY", "The output", "", "true", $buffer, $size);
		print $data->getResponseData();
	};
    
	if ($@)
	{
		print $@;
	}
CreateCSObject

创建具有模型“model”的对象实体。 请参阅 CreateNewCV 以获取完整描述。 cvtype 和 name 自变量用于设置新实体的全名属性的值。如果全名在 IBM Rational Synergy 数据库中的所有对象中不唯一,那么创建将失败。

对象可以包含具有字母数字以及 !&^~@*_.+: 的名称。但对于特定模型,仍可以实施更受约束的命名规则。

注:如果“cvtype”是空字符串,那么类型将是“cs_object”。

注:必须在模型对象上定义“cvtype”。

 注:如果“State”为空字符串,那么状态将缺省设置为“cs_public”。
 注:来自 (ac_def -> cs_public) 的缺省状态更改。
       在缺省状态下,任何转换都不可用!

返回结果是 apiData 类的实例。

 参数:
	apiUser aUser   :当前 api 用户的登录数据。
	scalar  cvtype  :由期望的四部分对象名组成的 cvtype 值。
	scalar  name    :由期望的四部分对象名组成的 name 值。
	scalar  state   :要自动转换到的状态 (state) 值。
 返回:apiData
来自服务器的返回消息。
使用 getResponseData() 方法检索对象标识。
字符串值类似于:“CV: 5_digit_integer_value_of_object”
	
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->CreateCSObject($aUser, "admin", "special","");
		print $tmp->getResponseData(); #ex: "CV: 12345"
		#Note: Result will be like: "CV: 5_digit_integer_value_of_object".
	};
	if ($@)
	{
		print $@;
	}
CreateDefaultCSObject

创建具有模型“model”的对象实体。请参阅 CreateNewCV 以获取完整描述。

name 自变量用于设置新实体的全名属性的值。如果全名在 IBM Rational Synergy 数据库中的所有对象中不唯一,那么创建将失败。 对象可以包含具有字母数字以及 !&^~@*_.+: 的名称。但对于特定模型,仍可以实施更受约束的命名规则。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser :当前 api 用户的登录数据。
	scalar  name    :由期望的四部分对象名组成的 name 值。
 返回:apiData
来自服务器的返回消息。
使用 getResponseData() 方法检索对象标识。
字符串值类似于:“CV: 5_digit_integer_value_of_object”
	
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->CreateDefaultCSObject($aUser, "special");
		print $tmp->getResponseData(); #ex: "CV: 12345"
		#Note: Result will be like: "CV: 5_digit_integer_value_of_object".
	};
	if ($@)
	{
		print $@;
	}
CreateIndex

在 IBM Rational Change 服务器上创建搜索索引。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser:当前 api 用户的登录数据。
 返回:apiData
来自服务器的返回消息。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->CreateIndex($aUser);
	};
	if ($@)
	{
		print $@;
	}
CreateMiscObject

创建 misc 对象。返回结果是 apiData 类的实例。

 参数:
	apiUser aUser       :当前 api 用户的登录数据。
	scalar  objectString:要创建的对象标识。
 
返回:apiData
新对象的 CVID。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->CreateMiscObject($aUser, "DOORS_ID_400");
	};
	if ($@)
	{
		print $@;
	}
CreateNewCV

警告:该方法不是用于常规用途的。该方法的用户必须非常熟悉 ACcent 编程。请使用常规的“CreateCSObject”或“CreateDefaultCSObject”api 方法。

创建具有模型“model”的对象实体。

[subsys/cvtype/name/version] 例如:“1/admin/cs/1”

subsys、cvtype、name 和 version 自变量用于设置新实体的全名属性的值。如果全名在 IBM Rational Synergy 数据库中的所有对象中不唯一,那么创建将失败。

对象可以包含具有字母数字以及 !&^~@*_.+: 的名称。但对于特定模型,仍可以实施更受约束的命名规则。 注:如果“version”是空字符串,那么版本将为“1”。

注:如果“cvtype”是空字符串,那么类型将是“cs_object”。

注:必须在模型对象上定义“cvtype”。

缺省模型上预定义的 cvtype: cs_object,admin,ascii,asm0,baseline,binary,bitmap,c++,class,csrc, css,dir,dtd,executable,folder,folder_temp,gif,group,html, incl,jar,java,jpeg,library,lsrc,makefile,misc,perl,problem, project,recon_temp,releasedef,relocatable_obj,shared_library, shsrc,symlink,task,tset,xml,ysrc

注:请勿向“subsys”添加 DBID 和 DCM 定界符。如果对 DCM/DCS 进行初始化,将自动添加这些值。如果添加 DBID 和 DCM 定界符,那么将创建类似于 foo#foo#1(而不是 foo#1)的子系统。

注:如果“subsys”是空字符串,那么将计算 instance_number。 如果对 DCM/DCS 进行初始化,那么除了“subsys”或已计算的实例,还将使用 DCM 数据库标识和 DCM 定界符。

      已经过 DCM 初始化:
         示例:db63#1/cs_object/your_name/1
 
      未初始化 DCM:
         示例:1/cs_object/your_name/1
 
可以/将创建新实体的以下属性并为其提供值:
 create_time  :time    :当前时间。
 cvtype       : string  :自变量 cvtype。

 is_asm       : boolean :对象类型的“is_asm”属性值。
 is_model     : boolean :对象类型的“is_model”属性值。
 modify_time  : time    :当前时间。
 name         : string  :自变量 name。
 owner        : string  :当前用户。
 status       : string  :对象类型的“dflt_status”属性值。
 subsystem    : string  :自变量 subsys。
 version      :string  :自变量 version。
 
注:如果“State”为空字符串,那么状态将缺省设置为“cs_public”。

注:来自 (ac_def -> cs_public) 的缺省状态更改。 在缺省状态下,任何转换都不可用!

缺省安全性基于 CHANGE_STATE = "cs_public"

			  *** 系统预定义状态 ***
 state working            = private + read + eval;
 state visible            = private + read + eval + bind;
 state working_folder     = private + read + eval + user1;
 state checkpoint         = private + read + eval + user0;
 state readonly           = static + read + eval;
 state cs_admin           = static + read + user9;
 state published_baseline = static + read + eval + user7;
 state released           = static + read + eval + derive + bind;
 state readonly_folder    = static + read + eval + derive + user0;
 state rejected           = static + read + eval + derive + bind + user3;
 state test               = static + read + eval + derive + bind + user2;
 state sqa                = static + read + eval + derive + bind + user0;
 state integrate          = static + read + eval + derive + bind + user1;
 
 state task_deferred      = read + write + user0;
 state registered         = read + write + user1;
 state task_assigned      = read + write + user2;
 state completed          = read + write + user3;
 state deleted            = read + write + user4;
 state excluded           = read + write + user5;
 state task_automatic     = read + write + user6;
 state public             = read + eval  + bind   + write;
 state crbase             = read + write + eval   + user1;
 state entered            = read + write + eval   + user2;
 state deferred           = read + write + eval   + user3;
 state concluded          = read + write + eval   + user4;
 state duplicate          = read + write + user1  + user2;
 state working_recon_temp = read + eval  + write  + user5;
 state static_recon_temp  = read + eval  + static + user5;
 state prep_baseline      = read + eval  + write  + user7;
 state shared_folder      = read + eval  + derive + write;
 state shared             = read + eval  + derive + bind  + write;
 state admin              = read + eval  + bind   + write + user0;
 state release_admin      = read + eval  + write  + user0 + user1;
 state cs_public          = read + eval  + bind   + write + user8;
 state in_review          = read + write + eval   + bind  + user1;
 state assigned           = read + write + eval   + bind  + user2;
 state probreject         = read + write + eval   + bind  + user3;
 state resolved           = read + write + eval   + bind  + user4;
 state prep_folder        = read + eval  + derive + write + user1;
 state prep               = read + eval  + derive + bind  + write + user0;
 state dcm_admin          = read + eval  + bind   + write + user0 + user1;

返回结果是 apiData 类的实例。

 参数:
	apiUser aUser   :当前 api 用户的登录数据。
	scalar  subsys  :由期望的四部分对象名组成的 subsys 值。
	scalar  cvtype  :由期望的四部分对象名组成的 cvtype 值。
	scalar  name    :由期望的四部分对象名组成的 name 值。
	scalar  version  :由期望的四部分对象名组成的 version 值。
	scalar  state   :要自动转换到的状态 (state) 值。
 返回:apiData
来自服务器的返回消息。
使用 getResponseData() 方法检索对象标识。
字符串值类似于:“CV: 5_digit_integer_value_of_object”
	
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->CreateNewCV($aUser, "", "admin", "special", "1", "");
		print $tmp->getResponseData(); #ex: "CV: 12345"
		#Note: Result will be like: "CV: 5_digit_integer_value_of_object".
	};
	if ($@)
	{
		print $@;
	}
CreateObjectAttributes

使用名称“your name value”和属性类型“your type value”创建对象的新属性。必须在模型对象上定义“type”。必须提供指定给属性的初始值。该操作还将更新对象的 modify_time 属性。返回结果是 apiData 类的实例。

 参数:
	apiUser         aUser       :当前 api 用户的登录数据。
	scalar          cvidList    :将受影响的 cvid 的列表(以“|”竖线定界),或单个 cvid。
	apiObjectVector attrData    :要由 api 函数处理的数据。
 
返回:apiData
来自服务器的返回消息。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $attrData = new ChangeSynergy::apiObjectVector();
		my $objData = new ChangeSynergy::apiObjectData();
		$objData->setName("attribute_a");
		$objData->setType("text");
		$objData->setValue("Linux");
		$attrData->addDataObject($objData);
		my $objData = new ChangeSynergy::apiObjectData();
		$objData->setName("attribute_b");
		$objData->setType("boolean");
		$objData->setValue("true");
		$attrData->addDataObject($objData);
		my $objData = new ChangeSynergy::apiObjectData();
		$objData->setName("attribute_c");
		$objData->setType("integer");
		$objData->setValue("777");
		$attrData->addDataObject($objData);
		my $tmp = $csapi->CreateObjectAttributes($aUser, "10156|10157|10158|10159|10160", $attrData)
		print $tmp->getResponseData();
	};
	if ($@)
	{
		print $@;
	}
createProcessPackage

使用服务器上已存在的 XML 文件(并且可能使用服务器上已存在的包模板)来创建 CR 过程包。 返回结果是 apiData 类的实例。

 参数:
	apiUser         aUser       :当前 api 用户的登录数据。
	scalar  xmlFileName     :WEB-INF\cr_process 目录中 CR 过程 XML 文件的名称。
	scalar  packageTemplate :要合并的包模板的名称,位于
	                          WEB-INF\package_templates 目录中。
 返回:apiData
结果:创建的包的名称。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $globals = new ChangeSynergy::Globals();
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\machineA\\ccmdb\\cm_database");
		my $response = $csapi->createProcessPackage($aUser, "dev_process.xml", "dev_template");
		print $response->getResponseData();
	};
	if ($@)
	{
		print $@;
	}
CreateRelation

在两个 IBM Rational Synergy 对象之间创建关系。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser :当前 api 用户的登录数据。
	scalar  bothWayRelationship:创建双向关系,[true|false]。
	scalar  fromObject         :从其创建关系的对象。
	scalar  toObject           :关系应用于的对象。
	scalar  relationName       :有效的 IBM Rational Synergy/IBM Rational Change 关系名称。
	scalar  relationType       :关系类型,请参阅下面的内容。
 有效的关系类型(Globals.pm 中定义的常量):
        CCM_PROBLEM_PROBLEM  // 创建“变更请求到变更请求”关系
        CCM_PROBLEM_TASK     // 创建“变更请求到任务”关系
        CCM_PROBLEM_OBJECT   // 创建“变更请求到对象”关系
        CCM_TASK_PROBLEM     // 创建“任务到变更请求”关系
        CCM_TASK_TASK        // 创建“任务到任务”关系
        CCM_TASK_OBJECT      // 创建“任务到对象”关系
        CCM_OBJECT_PROBLEM   // 创建“对象到变更请求”关系
        CCM_OBJECT_TASK      // 创建“对象到任务”关系
        CCM_OBJECT_OBJECT    // 创建“对象到对象”关系
        
示例用法:


          my $globals = new ChangeSynergy::Globals();

          my $relationType = $globals->{CCM_PROBLEM_PROBLEM};
 返回:apiData
仅当创建成功时,才会返回结果。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $globals = new ChangeSynergy::Globals();
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->CreateRelation($aUser, "FALSE", "400", "1355", "my_copy", 
                                            $globals->{CCM_PROBLEM_PROBLEM});
	};
	if ($@)
	{
		print $@;
	}
createReport

创建基于现有 Change 报告的新 Change 报告。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser :当前 api 用户的登录数据。
	scalar  reportDefinition   :ChangeSynergy::CreateReportDefinition 对象的实例。
	scalar  objectType         :报告所要查询的对象类型。
	scalar  configType         :报告最终将位于的配置位置,有效类型只有 user 和 shared。
 有效的对象类型(Globals.pm 中定义的常量):
        PROBLEM_TYPE
        TASK_TYPE
        OBJECT_TYPE
 

有效配置类型(常量定义在 Globals.pm 中):
        SHARED_PROFILE
        USER_PROFILE
 返回:apiData
仅当创建成功时,才会返回结果。

要查看有关如何使用 createReport API 的示例,请参阅 CreateReportDefinition 帮助中的示例。确保所需的参数名称、查询字符串和基本报告都已在 CreateReportDefinition 对象中定义。

CreateUserSecurityData

在服务器上创建用户安全文件。

 参数:
 
	apiUser aUser     :当前 api 用户的登录数据。
 
返回:标量
返回消息。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->CreateUserSecurityData($aUser);
	}
	if ($@)
	{
		print $@;
	}
CSHostName

获取 IBM Rational Change 服务器的已配置主机名。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser:当前 api 用户的登录数据。
 返回:apiData
主机名字符串。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->CSHostName($aUser);
	};
	if ($@)
	{
		print $@;
	}
DatabaseGetObject

将数据库对象复制到新的 BYTE 数组中。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser     :当前 api 用户的登录数据。
	scalar  Cvid :要检索的源对象的 cvid。
 返回:apiData
来自服务器的字节数据
	
示例:
 
 	$csapi->setUpConnection("http://your_hostname:port/your_context");
 	
 	eval
 	{

 		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");

 		my $data  = $csapi->DatabaseGetObject($aUser, "11023");
		open(OUTPUT, ">file.txt");
		print(OUTPUT $data->getResponseByteData());
		close(OUTPUT);
 	};
 	
 	if ($@)
	{
		print $@;
	}
DatabaseSetObject

在 IBM Rational Change 服务器上更新文件对象。 只能更新状态为“public”的对象。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser :当前 api 用户的登录数据。
	scalar  cvid   :要更新的公共源对象的 cvid。
	scalar  comment:要更新的对象的注释。
	scalar  buffer :要在服务器上设置的 BYTE 数据。
	scalar  size   :BYTE 数据的大小。
 返回:apiData
来自服务器的返回消息。
	
示例:
 
 	$csapi->setUpConnection("http://your_hostname:port/your_context");
 	my $buf    = "";

	my $buffer = "";

	my $size   = "";
 	
	eval
	{

		my $aUser      = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
 		

		open(INPUTFILE, "input.txt") or die "Could not open up the file";
		while($buf = readline *INPUTFILE)
		{
			$buffer .= $buf;
		}
		close(INPUTFILE);
    
		$size = -s "input.txt";
    	

		my $data = $csapi->DatabaseSetObject($aUser, "10341", "new comment", $buffer, $size);
	};
 	
	if ($@)
	{
		print $@;
	}
DeleteAllUserPreferences

为系统中的所有用户删除首选项对象。警告 - 这将永久删除所有用户的所有首选项;没有任何恢复选项。返回结果是 apiData 类的实例。

 参数:
	apiUser aUser   :当前 api 用户的登录数据。
 返回:apiData
来自服务器的返回消息。
 
示例:
	

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		
		$tmpData = $csapi->DeleteAllUserPreferences($aUser);
	
		print $tmpData->getResponseData();
	};
	if ($@)
	{
		print $@;
	}
DeleteAPreferenceForAllUsers

为系统中的所有用户删除某个首选项。警告 - 这将永久删除所有用户的单个首选项;没有任何恢复选项。返回结果是 apiData 类的实例。

注:无法删除用户概要文件值。这些值包括用户的名字、姓氏、电子邮件地址、传真号、电话号码和地址。

 参数:
	apiUser aUser   :当前 api 用户的登录数据。
	scalar  keyname :要删除的首选项的名称。
	scalar  allDBs  :true 或 false,指示是否对所有数据库执行添加,
						还是仅对当前 api 用户登录到的数据库执行添加。
 返回:apiData
来自服务器的返回消息。
 
示例:
	

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		
		$tmpData = $csapi->DeleteAPreferenceForAllUsers($aUser, "user_fontsize", "true");
		print $tmpData->getResponseData();
	};
	if ($@)
	{
		print $@;
	}
DeleteAPreferenceForAUser

为系统中的某个用户删除某个首选项。警告 - 这将永久删除某个用户的单个首选项;没有任何恢复选项。返回结果是 apiData 类的实例。

注:无法删除用户概要文件值。这些值包括用户的名字、姓氏、电子邮件地址、传真号、电话号码和地址。

 参数:
	apiUser aUser   :当前 api 用户的登录数据。
	scalar  username:要删除的用户首选项的名称。
	scalar  keyname :要删除的首选项的名称。
	scalar  allDBs  :true 或 false,指示是否对所有数据库执行添加,
						还是仅对当前 api 用户登录到的数据库执行添加。
 返回:apiData
来自服务器的返回消息。
 
示例:
	

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		
		$tmpData = $csapi->DeleteAPreferenceForAUser($aUser, "u00001", "user_fontsize", "true");
	
		print $tmpData->getResponseData();
	};
	if ($@)
	{
		print $@;
	}
DeleteAUsersPreferences

为系统中的单个用户删除首选项对象。警告 - 这将永久删除单个用户的所有首选项;没有任何恢复选项。返回结果是 apiData 类的实例。

 参数:
	apiUser aUser   :当前 api 用户的登录数据。
	scalar  username:要删除的用户首选项的名称
 返回:apiData
来自服务器的返回消息。
 
示例:
	

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		
		$tmpData = $csapi->DeleteAUsersPreferences($aUser, "u00001");
	
		print $tmpData->getResponseData();
	};
	if ($@)
	{
		print $@;
	}
DeleteChangeRequest

删除变更请求。该操作需要过程管理员特权。返回结果是 apiData 类的实例。

 参数:
	apiUser aUser :当前 api 用户的登录数据。
	scalar  problemNumber:要删除的问题号。
 返回:apiData
删除状态消息。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->DeleteChangeRequest($aUser, "10");
	};
	if ($@)
	{
		print $@;
	}
DeleteCV

从数据库中删除对象及所有下级对象和属性。 下级对象包含绑定(对于组合件情况)和目录条目。如果满足以下任何情况,将不会删除实体:

         > 对象是现有项目的成员。
         > 对象是模型对象。
         > 对象是类型对象,并且当前存在其实例。
         > 对象是类型对象,同时也是另一个现有类型的 super_type
             

返回结果是 apiData 类的实例。

 参数:
	apiUser aUser :当前 api 用户的登录数据。
	scalar  cvid  :要删除的对象的 cvid。
 
返回:apiData
来自服务器的返回消息。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->DeleteCV($aUser,"10159");
		print $tmp->getResponseData();
	};
	if ($@)
	{
		print $@;
	}
deleteFolder

从服务器中删除查询、报告格式或报告文件夹及所有成员。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser     :当前 api 用户的登录数据。
	scalar  folderName:要删除的文件夹的名称。
	scalar  objectType:文件夹的对象类型。
	scalar  formatType:文件夹的格式类型:报告、查询或报告格式。
	scalar  configType:报告的配置位置。
 有效的对象类型(Globals.pm 中定义的常量):
        PROBLEM_TYPE
        TASK_TYPE
        OBJECT_TYPE
 有效的格式类型(Globals.pm 中定义的常量):
 		QUERY
        REPORT
        REPORT_FORMAT
 

有效配置类型(常量定义在 Globals.pm 中):
        SHARED_PROFILE
        SYSTEM_CONFIG
        USER_PROFILE

返回:apiData
来自服务器的返回消息。

示例:
	

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\machine\\ccmdb\\cm_database");
		


		my $globals = new ChangeSynergy::Globals();
		
		#Delete a shared CR Report folder called 'API Folder'.

		my $deleteResults = $csapi->deleteFolder($aUser, 'API Folder', $globals->{PROBLEM_TYPE}, $globals->{REPORT}, $globals->{SHARED_PROFILE});
		print $deleteResults->getResponseData();
	};
	if ($@)
	{
		print $@;
	}
DeleteNewCV

从数据库中删除对象及所有下级对象和属性。 下级对象包含绑定(对于组合件情况)和目录条目。 如果满足以下任何情况,将不会删除实体:

         > 对象是现有项目的成员。
         > 对象是模型对象。
         > 对象是类型对象,并且当前存在其实例。
         > 对象是类型对象,同时也是另一个现有类型的 super_type
             

返回结果是 apiData 类的实例。

 参数:
	apiUser aUser   :当前 api 用户的登录数据。
	scalar  Subsys  :由期望的四部分对象名组成的 subsys 值。
	scalar  cvtype  :由期望的四部分对象名组成的 cvtype 值。
	scalar  name    :由期望的四部分对象名组成的 name 值。
	scalar  version  :由期望的四部分对象名组成的 version 值。
 
返回:apiData
来自服务器的返回消息。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->DeleteNewCV($aUser, "3", "admin", "special", "1");
		print $tmp->getResponseData();
	};
	if ($@)
	{
		print $@;
	}
DeleteObjectAttributes

删除名为“your name value”的对象的现有属性。该操作还将更新对象的 modify_time 属性。返回结果是 apiData 类的实例。

 参数:
	apiUser         aUser       :当前 api 用户的登录数据。
	scalar          cvidList    :将受影响的 cvid 的列表(以“|”竖线定界),或单个 cvid。
	apiObjectVector attrData    :要由 api 函数处理的数据。
 
返回:apiData
来自服务器的返回消息。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $attrData = new ChangeSynergy::apiObjectVector();
		my $objData = new ChangeSynergy::apiObjectData();
		$objData->setName("attribute_a");
		$attrData->addDataObject($objData);
		my $objData = new ChangeSynergy::apiObjectData();
		$objData->setName("attribute_b");
		$attrData->addDataObject($objData);
		my $objData = new ChangeSynergy::apiObjectData();
		$objData->setName("attribute_c");
		$attrData->addDataObject($objData);
		my $tmp = $csapi->DeleteObjectAttributes($aUser, "10156|10157|10158|10159|10160", $attrData)
		print $tmp->getResponseData();
	};
	if ($@)
	{
		print $@;
	}
DeleteRelation

删除两个 IBM Rational Synergy 对象之间的关系。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser :当前 api 用户的登录数据。
	scalar  bothWayRelationship:创建双向关系,[true|false]。
	scalar  fromObject         :从其创建关系的对象。
	scalar  toObject           :关系应用于的对象。
	scalar  relationName       :有效的 IBM Rational Synergy/IBM Rational Change 关系名称。
	scalar  relationType       :关系类型,请参阅下面的内容。
 有效的关系类型(Globals.pm 中定义的常量):
        CCM_PROBLEM_PROBLEM  // 创建“变更请求到变更请求”关系
        CCM_PROBLEM_TASK     // 创建“变更请求到任务”关系
        CCM_PROBLEM_OBJECT   // 创建“变更请求到对象”关系
        CCM_TASK_PROBLEM     // 创建“任务到变更请求”关系
        CCM_TASK_TASK        // 创建“任务到任务”关系
        CCM_TASK_OBJECT      // 创建“任务到对象”关系
        CCM_OBJECT_PROBLEM   // 创建“对象到变更请求”关系
        CCM_OBJECT_TASK      // 创建“对象到任务”关系
        CCM_OBJECT_OBJECT    // 创建“对象到对象”关系
        
示例用法:

          my $globals = new ChangeSynergy::Globals();

          my $relationType = $globals->{CCM_PROBLEM_PROBLEM};
 返回:apiData
仅当删除成功时,才会返回结果。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $globals = new ChangeSynergy::Globals();
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->DeleteRelation($aUser, "FALSE", "400", "1355", "my_copy", 
                                            $globals->{CCM_PROBLEM_PROBLEM});
	};
	if ($@)
	{
		print $@;
	}
deleteReport

从用户首选项或从共享数据删除 CR 或任务报告。如果找不到要删除的指定报告,将抛出异常。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser :当前 api 用户的登录数据。
	scalar  reportName :要删除的报告的名称。
	scalar  objectType :报告的对象类型。
	scalar  configType :报告的配置位置,有效类型只有 user 和 shared。
 有效的对象类型(Globals.pm 中定义的常量):
        PROBLEM_TYPE
        TASK_TYPE
        OBJECT_TYPE
 

有效配置类型(常量定义在 Globals.pm 中):
        SHARED_PROFILE
        USER_PROFILE

返回:apiData
删除状态消息。
	
示例:


	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\machine\\ccmdb\\cm_database");
		my $globals = new ChangeSynergy::Globals();
		
		#Delete a CR report named 'My column report' from the shared preferences and print the results.

		my $deleteResults = $csapi->deleteReport($aUser, "My column report", $globals->{PROBLEM_TYPE}, $globals->{SHARED_PROFILE});
		print $deleteResults->getResponseData();
	};
	if ($@)
	{
		print $@;
	}
DeleteTask

删除任务。返回结果是 apiData 类的实例。

 参数:
	apiUser aUser     :当前 api 用户的登录数据。
	scalar  taskNumber:要删除的任务号。
 返回:apiData
删除状态消息。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->DeleteTask($aUser, "1");
	};
	if ($@)
	{
		print $@;
	}
DisableDatabase

在 IBM Rational Change 服务器上禁用 IBM Rational Change 数据库。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser   :当前 api 用户的登录数据。
	scalar  database:要禁用的数据库。
 返回:apiData
来自服务器的返回消息。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->DisableDatabase($aUser, "\\\\your_hostname\\ccmdb\\cm_database");
	};
	if ($@)
	{
		print $@;
	}
DisableHost

在 IBM Rational Change 服务器上禁用 IBM Rational Change 主机。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser     :当前 api 用户的登录数据。
	scalar  host :要禁用的主机。
 返回:apiData
来自服务器的返回消息。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->DisableHost($aUser, "cm_host");
	};
	if ($@)
	{
		print $@;
	}
DisableIndexing

禁用搜索索引。

注:

1. 该功能是同步的,表示如果正在建立索引,将进行阻止,直到可以将其安全停止。

2. 在备份搜索目录时,必须禁用索引。

3. 缺省的搜索目录将是 <CHANGE_HOME>/WEB-INF/wsconfig/search。

4. 可通过指定配置条目 SEARCH_INDEX_DIRECTORY 的目录路径来覆盖缺省的搜索目录,例如

	[CCM_SYSTEM][SEARCH_INDEX_DIRECTORY]<path_to_the_directory>[/SEARCH_INDEX_DIRECTORY][/CCM_SYSTEM]

5. 通过调用 EnableIndexing 重新启用索引。

6. 重新启动 Change 之后,索引器的状态(启用/禁用)仍会持久存储。

 参数:
	apiUser aUser:当前 api 用户的登录数据。
 返回:apiData
来自服务器的返回消息。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->DisableIndexing($aUser);
		print $tmpstr->getResponseData();
	};
	if ($@)
	{
		print $@;
	}
DumpAUsersPreferences

获取以字符串形式返回的用户首选项的全部内容。 该字符串包含在用户的首选项对象中找到的所有内容的名称和值。对于调试用途以及确保所需更改已生效而言,这一点很有用。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser   :当前 api 用户的登录数据。
	scalar  username:要获取的用户首选项数据。
 返回:apiData
来自服务器的返回消息。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->DumpAUsersPreferences($aUser, "u00001");
		print $tmpstr->getResponseData();
	};
	if ($@)
	{
		print $@;
	}
EnableDatabase

在 IBM Rational Change 服务器上启用 IBM Rational Change 数据库。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser   :当前 api 用户的登录数据。
	scalar  database:要启用的数据库。
 返回:apiData
来自服务器的返回消息。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->EnableDatabase($aUser, "\\\\your_hostname\\ccmdb\\cm_database");
	};
	if ($@)
	{
		print $@;
	}
EnableHost

在 IBM Rational Change 服务器上启用 IBM Rational Change 主机。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser     :当前 api 用户的登录数据。
	scalar  host :要启用的主机。
 返回:apiData
来自服务器的返回消息。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->EnableHost($aUser, "cm_host");
	};
	if ($@)
	{
		print $@;
	}
EnableIndexing

允许搜索索引在其常规时间间隔恢复。 这将切换 API“DisableIndexing”的效果。

注:要立即启动索引,请参阅 API“UpdateIndex”。

 参数:
	apiUser aUser:当前 api 用户的登录数据。
 返回:apiData
来自服务器的返回消息。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->EnableIndexing($aUser);
	};
	if ($@)
	{
		print $@;
	}
exportAReport

从共享首选项或用户首选项导出指定的 CR 或任务报告。 返回结果是 ReportEntry 类的实例。

 参数:
	apiUser aUser :当前 api 用户的登录数据。
	scalar  reportName :要从服务器导出的报告的名称。
	scalar  objectType :报告的对象类型。
	scalar  configType :报告的配置位置。
 有效的对象类型(Globals.pm 中定义的常量):
        PROBLEM_TYPE
        TASK_TYPE
        OBJECT_TYPE
 

有效配置类型(常量定义在 Globals.pm 中):
        SHARED_PROFILE
        SYSTEM_CONFIG
        USER_PROFILE

返回:ReportEntry
包含报告所有信息的报告项对象。

示例 1:
 	
 	#Print all data about a report.

 	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\machine\\ccmdb\\cm_database");
		#Construct a new Globals object.


		my $globals = new ChangeSynergy::Globals();
		
		#Export a CR report named 'My Report' from the shared preferences 

		my $reportEntry = $csapi->exportAReport($aUser, "My Report",  $globals->{PROBLEM_TYPE}, $globals->{SHARED_PROFILE});
		
		#Print all information about the report, query and subreport.
		print "--------------- Report Entry ---------------------\n";
		print "\nreportEntry->getName          : " . $reportEntry->getName();
		print "\nreportEntry->getBaseName      : " . $reportEntry->getBaseName();
		print "\nreportEntry->getReportTemplate: " . $reportEntry->getReportTemplate();
		print "\nreportEntry->getExportFormat  : " . $reportEntry->getExportFormat();
		print "\nreportEntry->getMaxQuery      : " . $reportEntry->getMaxQuery();
		print "\nreportEntry->getMaxString     : " . $reportEntry->getMaxString();
		print "\nreportEntry->getDescription   : " . $reportEntry->getDescription();
		print "\nreportEntry->getIncrementSize : " . $reportEntry->getIncrementSize();
		print "\nreportEntry->getIncremental   : " . $reportEntry->getIncremental();
		print "\nreportEntry->getStyle         : " . $reportEntry->getStyle();
		print "\nreportEntry->getCustomDisOrder: " . $reportEntry->getCustomDisplayOrder();
		print "\nreportEntry->getImagePath     : " . $reportEntry->getImagePath();
		
		print "\n\n";
		print "--------------- Query Entry ---------------------\n";

		my $queryEntry = $reportEntry->getQueryEntry();
	
		print "Name        : " . $queryEntry->getName() . "\n";
		print "Query String: " . $queryEntry->getQueryString() . "\n";
		print "Desc        : " . $queryEntry->getDescription() . "\n";
		print "Prompting   : " . $queryEntry->getPromptingQueryXml() . "\n";
		print "Template    : " . $queryEntry->getTemplate() . "\n";
		
		print "--------------- Sub Report Entries ---------------------\n";
		

		my @subreports = $reportEntry->getSubReports();
		

		for my $subReportEntry (@subreports)
		{
			print "--------------- Sub Report Entry ---------------------\n";
			print "getName                  :" . $subReportEntry->getName() . "\n";
			print "getMainTemplate          :" . $subReportEntry->getMainTemplate() . "\n";
			print "getHeaderTemplate        :" . $subReportEntry->getHeaderTemplate() . "\n";
			print "getAttributeTemplate     :" . $subReportEntry->getAttributeTemplate() . "\n";
			print "getImageTemplate         :" . $subReportEntry->getImageTemplate() . "\n";
			print "getGroupTemplate         :" . $subReportEntry->getGroupTemplate() . "\n";
			print "getAutoAttributeTemplate :" . $subReportEntry->getAutoAttributeTemplate() . "\n";
			print "getFooterTemplate        :" . $subReportEntry->getFooterTemplate() . "\n";
			print "getGroupBy               :" . $subReportEntry->getGroupBy() . "\n";
			print "getCustomWslet           :" . $subReportEntry->getCustomWslet() . "\n";
			print "getXmlContent            :" . $subReportEntry->getXmlContent() . "\n";
			print "getSpanAttributeTemplate :" . $subReportEntry->getSpanAttributeTemplate() . "\n";
			print "getLabelTemplate         :" . $subReportEntry->getLabelTemplate() . "\n";
			print "getAutoLabelTemplate     :" . $subReportEntry->getAutoLabelTemplate() . "\n";
			print "getAttributes            :" . $subReportEntry->getAttributes() . "\n";
			print "getSortOrder             :" . $subReportEntry->getSortOrder() . "\n";
			print "getRelation              :" . $subReportEntry->getRelation() . "\n";
			print "getDefinitionType        :" . $subReportEntry->getDefinitionType() . "\n\n";
		}
	};
	if ($@)
	{
		print $@;
	}
	
示例 2:
 
 	#Save report XML to file.

 	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\machine\\ccmdb\\cm_database");
		#Construct a new Globals object.


		my $globals = new ChangeSynergy::Globals();
		
		#Export a CR report named 'My Report' from the shared preferences 

		my $reportEntry = $csapi->exportAReport($aUser, "My Report",  $globals->{PROBLEM_TYPE}, $globals->{SHARED_PROFILE});
		

		my $file = $reportEntry->getName() . ".xml";
		
		open(OUTPUT, ">$file");
		print(OUTPUT $reportEntry->toXml());
		close(OUTPUT);
	};
	if ($@)
	{
		print $@;
	}
 示例 3:
 
 	#Load saved XML results back into a L<ReporEntry> object.
 	

 	my $file = "report.xml";

 	open (INPUTFILE, "$file") or die "Could not open the file!";

	my $filecontents = "";

	my $buffer = "";
	
	while ($buffer = readline *INPUTFILE)
	{
		$filecontents .= $buffer;
	}
	
	close(INPUTFILE);
	

	my $reportEntryFactory = new ChangeSynergy::ReportEntryFactory();

	my $reportEntry = $reportEntryFactory->createReportEntryFromXml($filecontents);
exportReportsFromFolder

从共享首选项或用户首选项中的指定文件夹导出所有 CR 或任务报告。 返回结果是 ReportEntry 类的数组。

 参数:
	apiUser aUser :当前 api 用户的登录数据。
	scalar  folderName :要从中导出所有报告的文件夹的名称。
	scalar  objectType :报告的对象类型。
	scalar  configType :报告的配置位置。
 有效的对象类型(Globals.pm 中定义的常量):
        PROBLEM_TYPE
        TASK_TYPE
        OBJECT_TYPE
 

有效配置类型(常量定义在 Globals.pm 中):
        SHARED_PROFILE
        SYSTEM_CONFIG
        USER_PROFILE
 返回:ReportEntry
包含有关每个报告的所有信息的报告项对象数组。
 
示例:
 	
 	#Print all data about a report.

 	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\machine\\ccmdb\\cm_database");
		#Construct a new Globals object.


		my $globals = new ChangeSynergy::Globals();
		
		#Export all CR reports from the folder 'My Folder' from the shared preferences 

		my @reportEntries = $csapi->exportReportsFromFolder($aUser, "My Folder",  $globals->{PROBLEM_TYPE}, $globals->{SHARED_PROFILE});
		

		foreach my $reportEntry (@reportEntries)
		{
			#See the exportAReport above or the L<ReportEntry> class for how to interact with a ReportEntry object.
		}
	};
	
	if ($@)
	{
		print $@;
	}
GetAttributes

获取在服务器上定义的所有 IBM Rational Change 属性。 IBM Rational Change 属性为:

	[CCM_ATTRIBUTE]
		[NAME]
			IBM Rational Change 的属性名称。
		[/NAME]
		[TYPE]
			Web 可视化数据类型,
			可用的类型包括:CCM_STRING、CCM_TEXT、CCM_LISTBOX
			和 CCM_VALUELISTBOX。
		[/TYPE]
		[INTERFACE NAME]
			(可选)基于接口的别名。
			只要定义了接口,就可以有任意数量的接口选项。
			实际的标记名称是字面值接口名称。
		[/INTERFACE NAME]...
		[ALIAS]
			属性的缺省别名值。如果未使用接口选项,
			或者如果未指定用户的接口,那么将返回该值。
[ALIAS] 标记集定义缺省值,如果不存在任何 [ALIAS] 标记,
			那么将返回 [NAME]。
		[/ALIAS]
	[/CCM_ATTRIBUTE]

通过 getName() 方法识别 [NAME]。 通过 getType() 方法识别 [TYPE]。 通过 getLabel() 方法识别 [ALIAS]。 无法通过 api 使用 [INTERFACE NAME] 选项。

返回结果是 apiObjectVector 类的实例。

 参数:
	apiUser aUser     :当前 api 用户的登录数据。
 
返回:apiObjectVector
在服务器上定义的所有 IBM Rational Change 属性。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $attrs = $csapi->GetAttributes($aUser);
		my $i;

		my $j = $attrs->getDataSize();
		for($i=0; $i < $j; $i++)
		{
			print $attrs->getDataObject($i)->getName() . "\n";  #[CCM_ATTRIBUTE][NAME] 
			print $attrs->getDataObject($i)->getType() . "\n";  #[CCM_ATTRIBUTE][TYPE]
			print $attrs->getDataObject($i)->getLabel() . "\n"; #[CCM_ATTRIBUTE][ALIAS]
		}
	};
	if ($@)
	{
		print $@;
	}
GetCRData

将变更请求的详细信息装入数据类中,可以在其中修改变更请求的详细信息。然后,可以使用某个修改 api 函数提交已修改的数据类以更改变更请求。 返回结果是 apiObjectVector 类的实例。

注:当前转换选项随该 api 函数调用提供。 请参阅 apiTransitions 类描述。

 参数:
	apiUser aUser :当前 api 用户的登录数据。
	scalar  problemNumber:要引用的变更请求标识/问题号标识。
	scalar  attributeList:属性的定界列表。
	                       [attribute_name|attribute_name|attribute_name|...]
 返回:apiObjectVector
数据格式的变更请求详细信息。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->GetCRData($aUser, "100", "problem_synopsis|problem_description");
		my $tmpstr = $tmp->getXmlData();
	};
	if ($@)
	{
		print $@;
	}
GetCRDataAllTransitions

将变更请求的详细信息装入数据类中,可以在其中修改变更请求的详细信息。然后,可以使用某个修改 api 函数提交已修改的数据类以更改变更请求。 返回结果是 apiObjectVector 类的实例。 AllTransitions 函数包含 HIDDEN 转换。

注:当前转换选项随该 api 函数调用提供。 请参阅 apiTransitions 类描述。

 参数:
	apiUser aUser :当前 api 用户的登录数据。
	scalar  problemNumber:要引用的变更请求标识/问题号标识。
	scalar  attributeList:属性的定界列表。
	                       [attribute_name|attribute_name|attribute_name|...]
 返回:apiObjectVector
数据格式的变更请求详细信息。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->GetCRDataAllTransitions($aUser, "100", "problem_synopsis|problem_description");
		my $tmpstr = $tmp->getXmlData();
	};
	if ($@)
	{
		print $@;
	}
GetCV

获取对象的由四部分组成的名称。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser     :当前 api 用户的登录数据。
	scalar  cvid :要获取的对象的 cvid。
 返回:apiData

由四个部分组成的名称:[subsys/cvtype/name/version],例如:“1/admin/cs/1”
	
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->GetCV($aUser,"10159");
		print $tmp->getResponseData(); #ex: "3/admin/special/1"
		#Note: Result will be a four part name like: "[subsys/cvtype/name/version]", in string format.
	};
	if ($@)
	{
		print $@;
	}
GetDatabases

从 IBM Rational Change 服务器获取 IBM Rational Change 数据库的列表。 返回结果是 apiListObject 类的实例。

 参数:
	apiUser aUser:当前 api 用户的登录数据。
 返回:apiListObject
IBM Rational Change 服务器上所有数据库的列表。
	
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->GetDatabases($aUser);
		my $tmpstr = $tmp->getXmlData();
	};
	if ($@)
	{
		print $@;
	}
GetCentralCrDatabase

如果服务器处于中央服务器方式,那么获取中央 CR 数据库路径,否则将返回空字符串。

 参数:
	apiUser aUser:当前 api 用户的登录数据。
 返回:apiData
包含在 apiData 对象中的中央 CR 数据库路径。
	
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->GetCentralCrDatabase($aUser);
		my $tmpstr = $tmp->getResponseData();
	};
	if ($@)
	{
		print $@;
	}
GetDatabaseSettings

获取所有数据库(包括禁用的数据库)的当前设置。

 参数:
	apiUser user:当前 API 用户的登录数据。
 返回:散列引用列表,其中每个散列代表一个数据库。
每个散列具有以下键:path、enabled、description、max_sessions、min_sessions
和 users_per_session。所有值都是字符串,但“enabled”除外,它是真/假值。
 
示例:
 

	my @databases = $csapi->GetDatabaseSettings($user);
	foreach my $db (@databases)
	{
		print "Path:          $db->{path} \n";
		print "Enabled:       " . ($db->{enabled} ? "yes\n" : "no\n");
		print "Label:         $db->{label} \n";
		print "Description:   $db->{description} \n";
		print "Max Sessions:  $db->{max_sessions} \n";
		print "Min Sessions:  $db->{min_sessions} \n";
		print "Users/Session: $db->{users_per_session} \n\n";
	}
GetDataListBox

获取 DataListbox 的内容。 返回结果是 apiListObject 类的实例。

 参数:
	apiUser aUser     :当前 api 用户的登录数据。
	scalar  listObject:要获取的 DataListbox。
 返回:apiListObject
DataListbox 的内容。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $list = $csapi->GetDataListBox($aUser, "CRQUERYREPORTPREDEFINED");
		for(my $i=0; $i < $list->getListboxSize(); $i++)
		{

			my $label = $list->getLabel($i);

			my $value = $list->getValue($i);
			print "List label $i: " . $label . "\n";
			print "List value $i: " . $value . "\n";
		}
	};
	if ($@)
	{
		print $@;
	}
GetDataListBox

获取 DataListbox 的内容。 返回结果是 apiListObject 类的实例。

 参数:
	apiUser aUser     :当前 api 用户的登录数据。
	scalar  listObject:要获取的 DataListbox。
	scalar  configType:要在其中搜索列表的 config 条目。
	

有效的 Config 类型:这些类型在 Globals 类中定义。
        $self->{ALL}       		// 用户、共享和系统。返回发现的第一项。
        $self->{USER_PROFILE}	// 单个用户概要文件数据。
        $self->{SHARED_PROFILE} // 共享概要文件数据。
	       $self->{SYSTEM_CONFIG}  // 系统 config 数据。
 返回:apiListObject
DataListbox 的内容。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $globals = new ChangeSynergy::Globals();
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $list = $csapi->GetDataListBox($aUser, "CRQUERYREPORTUSERDEFINED", $globals->{USER_PROFILE});
		for(my $i=0; $i < $list->getListboxSize(); $i++)
		{

			my $label = $list->getLabel($i);

			my $value = $list->getValue($i);
			print "List label $i: " . $label . "\n";
			print "List value $i: " . $value . "\n";
		}
	};
	if ($@)
	{
		print $@;
	}
GetDOORSAttribute

从 DOORS 附件对象中获取 DOORS 属性标记值。

 参数:
	apiUser aUser          :指向当前 api 用户的登录数据的指针。
	scalar  cvid           :要检索的源对象的 cvid。
	scalar  attributeValue :所需 DOORS 属性的 DOORS_ATTR:NAME 值。
	scalar  attributeTag   :要从 [NAME|TYPE|RANGE|VALUE|DEFAULT_AR|USER|GROUP] 中
	                         获取信息的标记的名称。
	scalar  objectType     :xml 根标记 [DYNAMIC_ATTRS_ORIG|DYNAMIC_ATTRS_NEW]。
	scalar  charSet        :要使用的字符集。即:“UTF-16LE”、“iso-8859-1”
 返回:apiData
来自服务器的返回消息。
 
示例:
	

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->GetDOORSAttribute($aUser, "10126", "the name", "VALUE", "DYNAMIC_ATTRS_ORIG", "UTF-16LE");
	};
	if ($@)
	{
		print $@;
	}
GetDOORSAttribute52

从 DOORS 附件对象中获取 DOORS 属性标记值。

 参数:
	apiUser aUser          :指向当前 api 用户的登录数据的指针。
	scalar  cvid           :要检索的源对象的 cvid。
	scalar  attributeValue :所需 DOORS 属性的 DOORS_ATTR:NAME 值。
	scalar  attributeTag   :要从 [NAME|TYPE|RANGE|VALUE|DEFAULT_AR|USER|GROUP] 中
	                         获取信息的标记的名称。
	scalar  objectType     :xml 根标记 [DYNAMIC_ATTRS_ORIG|DYNAMIC_ATTRS_NEW]。
	scalar  objectId       :要查找属性的需求的标识。
	scalar  charSet        :要使用的字符集。即:“UTF-16LE”、“iso-8859-1”
 返回:apiData
来自服务器的返回消息。
 
示例:
	

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->GetDOORSAttribute($aUser, "10126", "the name", "VALUE", "DYNAMIC_ATTRS_ORIG", "98_req0000002d_1", "UTF-16LE");
	};
	if ($@)
	{
		print $@;
	}
getFolderSecurityRule

获取给定文件夹的文件夹安全信息。文件夹安全信息包含文件夹名称、读安全性成员和写安全性成员。 返回结果是 FolderSecurityRule 类的实例。

 参数:
	apiUser aUser :当前 api 用户的登录数据。
	scalar  folderName :要获取其安全性的文件夹的名称。
	scalar  objectType :文件夹的对象类型。
	scalar  formatType :文件夹的格式类型:报告、查询或报告格式。
	scalar  configType :报告的配置位置。
 返回:FolderSecurityRule
表示规则的 FolderSecurityRule 对象。
 
示例:
 

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\angler\\ccmdb\\cm_database");


		my $globals = new ChangeSynergy::Globals();
		
		#Get the folder security rule for the "all" CR Shared query folder.

		my $folderRule = $csapi->getFolderSecurityRule($aUser, "", $globals->{PROBLEM_TYPE}, $globals->{QUERY},
						 $globals->{SHARED_PROFILE});
		
		print "Folder Name: " . $folderRule->getFolderName() . "\n";
		

		my @readMembers = $folderRule->getReadMembers();
	
		print "Current readers \n";
		

		foreach my $member (@readMembers)
		{
			print "Reader: '$member'\n";
		}
		
		print "Finished printing readers: \n";
		

		my @writeMembers = $folderRule->getWriteMembers();
	
		print "Current writers: \n";
		

		foreach my $member (@writeMembers)
		{
			print "Writer: '$member'\n";
		}
		
		print "Finished printing writers: \n";
	};
	if ($@)
	{
		print $@;
	}
GetHosts

获取 IBM Rational Change 主机列表。 返回结果是 apiListObject 类的实例。

 参数:
	apiUser aUser:当前 api 用户的登录数据。
 返回:apiListObject
IBM Rational Change 服务器上所有主机的列表
 
示例:
 

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->GetHosts($aUser);
		my $tmpstr = $tmp->getXmlData();
	};
	if ($@)
	{
		print $@;
	}
GetHostSettings

获取所有主机(包括禁用的主机)的当前设置。

 参数:
	apiUser user:当前 API 用户的登录数据。
 返回:散列引用列表,其中每个散列代表一个主机。
每个散列具有以下键:hostname、type、enabled、description、max_sessions、priority
和 threshold。所有值都是字符串,但“enabled”除外,它是真/假值。
主机类型是“NT”或“UNIX”。
 
示例:
 

	my @hosts = $csapi->GetHostSettings($user);
	

	foreach my $host (@hosts)
	{
		print "Hostname:     $host->{hostname} \n";
		print "Type:         $host->{type} \n";
		print "Enabled:      " . ($host->{enabled} ? "yes\n" : "no\n");
		print "Description:  $host->{description} \n";
		print "Max Sessions: $host->{max_sessions} \n";
		print "Priority:     $host->{priority} \n";
		print "Threshold:    $host->{threshold} \n\n";
	}
GetList

获取 List 的内容。 返回结果是 apiListObject 类的实例。

 参数:
	apiUser aUser     :当前 api 用户的登录数据。
	scalar  listObject:要获取的列表。
 返回:apiListObject
List 的内容。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $list = $csapi->GetList($aUser, "CRQueryReportPreDefined");
		for(my $i=0; $i < $list->getListboxSize(); $i++)
		{

			my $label = $list->getLabel($i);

			my $value = $list->getValue($i);
			print "List label $i: " . $label . "\n";
			print "List value $i: " . $value . "\n";
		}
	};
	if ($@)
	{
		print $@;
	}
GetList

获取 List 的内容。 返回结果是 apiListObject 类的实例。

 参数:
	apiUser aUser     :当前 api 用户的登录数据。
	scalar  listObject:要获取的列表。
	scalar  configType:要在其中搜索列表的 config 条目。
	

有效的 Config 类型:这些类型在 Globals 类中定义。
        $self->{ALL}       		// 用户、共享和系统。返回发现的第一项。
        $self->{USER_PROFILE}	// 单个用户概要文件数据。
        $self->{SHARED_PROFILE} // 共享概要文件数据。
	       $self->{SYSTEM_CONFIG}  // 系统 config 数据。
 返回:apiListObject
List 的内容。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $globals = new ChangeSynergy::Globals();
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $list  = $csapi->GetList($aUser, "CRQUERYUSERDEFINED", $globals->{USER_PROFILE});
		for(my $i=0; $i < $list->getListboxSize(); $i++)
		{

			my $label = $list->getLabel($i);

			my $value = $list->getValue($i);
			print "List label $i: " . $label . "\n";
			print "List value $i: " . $value . "\n";
		}
	};
	if ($@)
	{
		print $@;
	}
GetListBox

获取 Listbox 的内容。 返回结果是 apiListObject 类的实例。

 参数:
	apiUser aUser     :当前 api 用户的登录数据。
	scalar  listObject:要获取的 Listbox。
 返回:apiListObject
Listbox 的内容。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $list  = $csapi->GetListBox($aUser, "severity");
		for(my $i=0; $i < $list->getListboxSize(); $i++)
		{

			my $label = $list->getLabel($i);

			my $value = $list->getValue($i);
			print "Listbox label $i: " . $label . "\n";
			print "Listbox value $i: " . $value . "\n";
		}
	};
	if ($@)
	{
		print $@;
	}
GetListBox

获取 Listbox 的内容。 返回结果是 apiListObject 类的实例。

 参数:
	apiUser aUser     :当前 api 用户的登录数据。
	scalar  listObject:要获取的 Listbox。
	scalar  configType:要在其中搜索列表框的 config 条目。
	

有效的 Config 类型:这些类型在 Globals 类中定义。
        $self->{ALL}       		// 用户、共享和系统。返回发现的第一项。
        $self->{USER_PROFILE}	// 单个用户概要文件数据。
        $self->{SHARED_PROFILE} // 共享概要文件数据。
	       $self->{SYSTEM_CONFIG}  // 系统 config 数据。
 返回:apiListObject
Listbox 的内容。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $globals = new ChangeSynergy::Globals();
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->GetListBox($aUser, "severity", $globals->{USER_PROFILE});
		for(my $i=0; $i < $list->getListboxSize(); $i++)
		{

			my $label = $list->getLabel($i);

			my $value = $list->getValue($i);
			print "Listbox label $i: " . $label . "\n";
			print "Listbox value $i: " . $value . "\n";
		}
	};
	if ($@)
	{
		print $@;
	}
GetListBoxDefaultValue

获取 Listbox 缺省值。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser   :当前 api 用户的登录数据。
 返回:apiData
配置文件中设置的 Listbox 缺省值。
 示例:
	my $csapi = new ChangeSynergy::csapi();
     eval
     {
            $csapi->setUpConnection("http://your_hostname:port/your_context");
            my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database"); 
            my $tmpStr = $csapi->GetListBoxDefaultValue($aUser);
            print $tmpStr->getResponseData();
      };
      if ($@)
      {
            print $@;
      }
GetNewCV

指定由四部分组成的名称后,返回对象的 cvid。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser   :当前 api 用户的登录数据。
	scalar  subsys  :由期望的四部分对象名组成的 subsys 值。
	scalar  cvtype  :由期望的四部分对象名组成的 cvtype 值。
	scalar  name    :由期望的四部分对象名组成的 name 值。
	scalar  version  :由期望的四部分对象名组成的 version 值。
 返回:apiData
Cvid 字符串值:“CV: 5_digit_integer_value_of_object”,例如:“CV: 12345”
	
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->GetNewCV($aUser, "3", "admin", "special", "1");
		print $tmp->getResponseData(); #ex: "CV: 12345"
		#Note: Result will be like: "CV: 5_digit_integer_value_of_object", in string format.
	};
	if ($@)
	{
		print $@;
	}
GetObjectData

将对象的详细信息装入数据类中,可在该类中修改或显示对象的详细信息。可以使用某个修改 api 函数提交已修改的数据类。返回结果是 apiObjectVector 类的实例。

 参数:
	apiUser aUser     :当前 api 用户的登录数据。
	scalar  cvid      :对象的 cvid。
	scalar  AttrList  :属性的定界列表。[attribute_name|attribute_name|attribute_name|...]

返回:apiObjectVector 请求的属性的内容。

 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $objVector = $csapi->GetObjectData($aUser, $cv1, "create_time|cvtype|is_asm|is_model|is_versioned|modify_time|name|owner|status|subsystem|version");
		my $i;

		my $j = $objVector->getDataSize();
		for($i=0; $i < $j; $i++)
		{
			print "Name : " . $objVector->getDataObject($i)->getName() . "\n";
			print "Value: " . $objVector->getDataObject($i)->getValue() . "\n";
		}
	};
	if ($@)
	{
		print $@;
	}
GetQuery

获取 Query 的内容。 返回结果是 apiListObject 类的实例。

 参数:
	apiUser aUser     :当前 api 用户的登录数据。
	scalar  listObject:要获取的 Query。
 返回:apiListObject
Query 的内容。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $query = $csapi->GetQuery($aUser, "All CRs");
		print "getName       : " . $query->getName() . "\n";
		print "getQueryString: " . $query->getQueryString() . "\n";
		print "getDateLastRun: " . $query->getDateLastRun() . "\n";
	};
	if ($@)
	{
		print $@;
	}
GetQuery

获取 Query 的内容。 返回结果是 apiListObject 类的实例。

 参数:
	apiUser aUser     :当前 api 用户的登录数据。
	scalar  listObject:要获取的 Query。
	scalar  configType:要在其中搜索查询的 config 条目。
	

有效的 Config 类型:这些类型在 Globals 类中定义。
  $self->{ALL}       		// 用户、共享和系统。返回发现的第一项。
		$self->{USER_PROFILE}	// 单个用户概要文件数据。
		$self->{SHARED_PROFILE} // 共享概要文件数据。
		$self->{SYSTEM_CONFIG}  // 系统 config 数据。
 返回:apiListObject
Query 的内容。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $globals = new ChangeSynergy::Globals();
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $query = $csapi->GetQuery($aUser, "Test Query", $globals->{USER_PROFILE});
		print "getName       : " . $query->getName() . "\n";
		print "getQueryString: " . $query->getQueryString() . "\n";
		print "getDateLastRun: " . $query->getDateLastRun() . "\n";
	};
	if ($@)
	{
		print $@;
	}
GetReport

获取 Report 的内容。 返回结果是 apiListObject 类的实例。

 参数:
	apiUser aUser     :当前 api 用户的登录数据。
	scalar  listObject:要获取的 Report。
 返回:apiListObject
Report 的内容。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $report = $csapi->GetReport($aUser, "Basic Summary");
		print "getName        : " . $report->getName()        . "\n";
		print "getExportForm  : " . $report->getExportForm () . "\n";
		print "getQueryName   : " . $report->getQueryName()   . "\n";
		print "getQueryString : " . $report->getQueryString() . "\n";
		print "getDateLastRun : " . $report->getDateLastRun() . "\n";
	

		for(my $i = 0; $i < $report->getSubreportSize(); $i++)
		{
			print "   Subreport $i \n";
			print "		getSubreportName    : "  . $report->getSubreportName($i)     . "\n";
			print "		getSubreportRelation: "  . $report->getSubreportRelation($i) . "\n";
			print "		getSubreportType    : "  . $report->getSubreportType($i)     . "\n";
		}
	};
	if ($@)
	{
		print $@;
	}
GetReport

获取 Report 的内容。 返回结果是 apiListObject 类的实例。

 参数:
	apiUser aUser     :当前 api 用户的登录数据。
	scalar  listObject:要获取的 Report。
	scalar  configType:要在其中搜索报告的 config 条目。
	

有效的 Config 类型:这些类型在 Globals 类中定义。
        $self->{ALL}       		// 用户、共享和系统。返回发现的第一项。
        $self->{USER_PROFILE}	// 单个用户概要文件数据。
        $self->{SHARED_PROFILE} // 共享概要文件数据。
	       $self->{SYSTEM_CONFIG}  // 系统 config 数据。
 返回:apiListObject
Report 的内容。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $globals = new ChangeSynergy::Globals();
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $report = $csapi->GetReport($aUser, "Test Format", $globals->{USER_PROFILE});
		print "getName        : " . $report->getName()        . "\n";
		print "getExportForm  : " . $report->getExportForm () . "\n";
		print "getQueryName   : " . $report->getQueryName()   . "\n";
		print "getQueryString : " . $report->getQueryString() . "\n";
		print "getDateLastRun : " . $report->getDateLastRun() . "\n";
	

		for(my $i = 0; $i < $report->getSubreportSize(); $i++)
		{
			print "   Subreport $i \n";
			print "		getSubreportName    : "  . $report->getSubreportName($i)     . "\n";
			print "		getSubreportRelation: "  . $report->getSubreportRelation($i) . "\n";
			print "		getSubreportType    : "  . $report->getSubreportType($i)     . "\n";
		}
	};
	if ($@)
	{
		print $@;
	}
GetTaskData

将任务的详细信息装入数据类中,可以在其中修改任务的详细信息。然后,可以使用某个修改 api 函数提交已修改的数据类以更改任务。 返回结果是 apiObjectVector 类的实例。

 参数:
	apiUser aUser :当前 api 用户的登录数据。
	scalar  taskNumber   :要引用的任务标识。
	scalar  attributeList:属性的定界列表。
	                       [attribute_name|attribute_name|attribute_name|...]
 返回:apiObjectVector
数据格式的任务详细信息。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->GetTaskData($aUser, "10", "task_synopsis|task_description|priority");
		my $tmpstr = $tmp->getXmlData();
	};
	if ($@)
	{
		print $@;
	}
GetUserPreference

获取指定用户的用户首选项或概要文件值。 返回结果是 apiData 类的实例。

 定义的用户首选项属性:
	user_name                :用户的全名。
	user_first_name          :用户的名字。
	user_last_name           :用户的姓氏。
	user_address             :为用户列出的地址。
	user_company             :用户工作所在的公司。
	user_email               :用户的电子邮件地址。
	user_fax                 :用户的传真号
	user_phone               :用户的电话号码。
	user_fontsize            :用户已定义的字体大小。
	user_read_security_value :用户的读安全性值。
 参数:
	apiUser aUser     :当前 api 用户的登录数据。
	scalar  userName  :要获取其有关信息的用户的名称。
	scalar  prefName  :要检索的首选项的名称。
 返回:apiData
请求的用户首选项的值。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->GetUserPreference($aUser, "u00001", "user_email");
	

		my $tmpstr = $tmp->getResponseData();
	};
	if ($@)
	{
		print $@;
	}
GetValueListBox

获取 ValueListbox 的内容。 返回结果是 apiListObject 类的实例。

 参数:
	apiUser aUser        :当前 api 用户的登录数据。
	scalar  listObject:要获取的 ValueListbox。
 返回:apiListObject
valuelistbox 的内容。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $list = $csapi->GetValueListBox($aUser, "date_keywords");
		for(my $i=0; $i < $list->getListboxSize(); $i++)
		{

			my $label = $list->getLabel($i);

			my $value = $list->getValue($i);
			print "GetValueListBox label $i: " . $label . "\n";
			print "GetValueListBox value $i: " . $value . "\n";		
		}
	};
	if ($@)
	{
		print $@;
	}
GetValueListBox

获取 ValueListbox 的内容。 返回结果是 apiListObject 类的实例。

 参数:
	apiUser aUser     :当前 api 用户的登录数据。
	scalar  listObject:要获取的 ValueListbox。
	scalar  configType:要在其中搜索 valueListbox 的 config 条目。
	

有效的 Config 类型:这些类型在 Globals 类中定义。
        $self->{ALL}       		// 用户、共享和系统。返回发现的第一项。
        $self->{USER_PROFILE}	// 单个用户概要文件数据。
        $self->{SHARED_PROFILE} // 共享概要文件数据。
	       $self->{SYSTEM_CONFIG}  // 系统 config 数据。
 返回:apiListObject
valuelistbox 的内容。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $globals = new ChangeSynergy::Globals();
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $list = $csapi->GetValueListBox($aUser, "user_defined_valuelistbox", $globals->{USER_PROFILE});
		for(my $i=0; $i < $list->getListboxSize(); $i++)
		{

			my $label = $list->getLabel($i);

			my $value = $list->getValue($i);
			print "GetValueListBox label $i: " . $label . "\n";
			print "GetValueListBox value $i: " . $value . "\n";		
		}
	};
	if ($@)
	{
		print $@;
	}
ImmediateQueryHtml

运行 IBM Rational Change 报告,并等待其完成。该 api 不会通过轮询模板进行响应。该 api 应该用于运行较小的报告。返回结果是 apiData 类的实例。

 注:返回值是完整的 HTML 页面。<HTML>...</HTML>
	   可以将返回值另存为 .html 文件,或者装入
	      浏览器窗口/控件。
 参数:
	apiUser aUser :当前 api 用户的登录数据。
	scalar  reportName :IBM Rational Change 报告名称
						 (CCM_REPORT][NAME]report name[/NAME]...[/CCM_REPORT])。
	scalar  queryString:有效的 IBM Rational Synergy 查询字符串。
	scalar  queryName  :IBM Rational Change 查询名称
						 ([CCM_QUERY][NAME]query name[/NAME]...[/CCM_QUERY])。
	scalar  reportTitle:此报告实例的标题。
 返回:apiData
HTML 页面形式的所请求即时查询。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
	

		my $tmpstr = $csapi->ImmediateQueryHtml($aUser, "Basic Summary", 
												"(submitter='cschuffe') and (cvtype='problem')",
												 undef, undef);
	};
	if ($@)
	{
		print $@;
	}
ImmediateReportHtml

运行 IBM Rational Change 报告,并等待其完成。该 api 不会通过轮询模板进行响应。该 api 应该用于运行较小的报告。返回结果是 apiData 类的实例。

 注:返回值是完整的 HTML 页面。<HTML>...</HTML>
	   可以将返回值另存为 .html 文件,或者装入
	      浏览器窗口/控件。
 参数:
	apiUser aUser :当前 api 用户的登录数据。
	scalar  reportName :IBM Rational Change 报告名称
						 ([CCM_REPORT][NAME]report name[/NAME]...[/CCM_REPORT])。
	scalar  reportTitle:此报告实例的标题。
 返回:apiData
HTML 页面形式的所请求即时查询。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
	

		my $tmpstr = $csapi->ImmediateReportHtml($aUser, "Basic Summary", "Basic Summary Report");
	};
	if ($@)
	{
		print $@;
	}
importAReport

导入使用 exportAReport 或 exportReportsFromFolder API 导出的 Change 报告。如果服务器上已存在要导入的报告的名称,那么该方法将失败并抛出异常。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser :当前 api 用户的登录数据。
	ReportEntry reportEntry:包含报告所有信息的报告项。
	scalar  objectType     :报告的对象类型。
	scalar  configType     :报告的配置位置,有效类型只有 user 和 shared。
 有效的对象类型(Globals.pm 中定义的常量):
        PROBLEM_TYPE
        TASK_TYPE
        OBJECT_TYPE
 

有效配置类型(常量定义在 Globals.pm 中):
        SHARED_PROFILE
        USER_PROFILE
 返回:apiData
有关导入是否成功的信息。
 
示例 1:
	#Create a copy of an existing report and change the query.

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\machine\\ccmdb\\cm_database");


		my $globals = new ChangeSynergy::Globals();
		
		#Export the 'Column' report from the system config data.

		my $reportEntry = $csapi->exportAReport($aUser, "Column",  $globals->{PROBLEM_TYPE}, $globals->{SYSTEM_CONFIG});
		
		#Change the name
		$reportEntry->setName("My column report");
		
		#Set a new query string in the query entry.
		$reportEntry->getQueryEntry->setQueryString("(cvtype='problem') and (crstatus='assigned')");
		
		#Get the subReports from the report entry.

		my @subReports = $reportEntry->getSubReports();
		
		#The column output only has a single subreport definition, CCM_PROBLEM.

		my $subReport = $subReports[0];
		
		#Get the original attributes and append submitter and severity as new attributes, must be in config file format.
		$subReport->setAttributes($subReport->getAttributes() . "|submitter:3:false|severity:4:false");
	
		#Import the report back to the server.

		my $result = $csapi->importAReport($aUser, $reportEntry, $globals->{PROBLEM_TYPE}, $globals->{SHARED_PROFILE});
	};
	if ($@)
	{
		print $@;
	}
	
示例 2:
	#Import a report from a file.

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\machine\\ccmdb\\cm_database");
		#Open a file named 'report.xml' and read in all the contents.

		my $file = "report.xml";

	 	open (INPUTFILE, "$file") or die "Could not open the file!";

		my $filecontents = "";

		my $buffer = "";
		
		while ($buffer = readline *INPUTFILE)
		{
			$filecontents .= $buffer;
		}
		
		close(INPUTFILE);
		
		#Create a new instance of the ReportEntryFactory so we can create our new data from the XML data read from file.

		my $reportEntryFactory = new ChangeSynergy::ReportEntryFactory();

		my $reportEntry = $reportEntryFactory->createReportEntryFromXml($filecontents);
		
		#Import the report back to the server.

		my $result = $csapi->importAReport($aUser, $reportEntry, $globals->{PROBLEM_TYPE}, $globals->{SHARED_PROFILE});
	};
	if ($@)
	{
		print $@;
	}
InstallAPackage

安装 IBM Rational Change 包。返回结果是 apiData 类的实例。

 参数:
	apiUser aUser       :当前 api 用户的登录数据。
	scalar  packageName :要安装的包的名称。
 返回:apiData
仅当包安装成功时,才会返回结果。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
	

		my $results = $csapi->InstallAPackage($aUser, "dev_process");
		
		print $results->getResponseData();
	};
	if ($@)
	{
		print $@;
	}
LoadAllConfigurationFiles

装入 IBM Rational Change 服务器上的所有配置数据文件。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser:当前 api 用户的登录数据。
 返回:apiData
来自服务器的返回消息。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->LoadAllConfigurationFiles($aUser);
	};
	if ($@)
	{
		print $@;
	}
LoadConfigurationData

装入 IBM Rational Change 服务器上的配置数据。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser:当前 api 用户的登录数据。
 返回:apiData
来自服务器的返回消息。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->LoadConfigurationData($aUser);
	};
	if ($@)
	{
		print $@;
	}
LoadConfigurationFile

装入 IBM Rational Change 服务器上的指定配置数据文件。 不允许装入 pt.cfg、admin_framework.cfg、user_framework.cfg 和 task_framework.cfg 配置文件。指定的文件必须位于“CHANGE_APP_HOME/WEB-INF/wsconfig”目录中。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser   :当前 api 用户的登录数据。
	scalar  cfgFile :要重新装入的配置文件的名称。
 返回:apiData
来自服务器的返回消息。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->LoadConfigurationFile($aUser, "my_config_file.cfg");
	};
	if ($@)
	{
		print $@;
	}
LoadDatabaseListboxes

将重新装入从数据库中获取其值的所有列表框。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser:当前 api 用户的登录数据。
 返回:apiData
来自服务器的返回消息。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->LoadDatabaseListboxes($aUser);
	};
	if ($@)
	{
		print $@;
	}
listFolders

返回顶级文件夹下所有查询、报告格式或报告文件夹的列表。 返回结果是 apiListObject 类的实例。

 参数:
	apiUser aUser :当前 api 用户的登录数据。
	scalar  objectType   :根文件夹的对象类型。
	scalar  formatType   :根文件夹的格式类型:报告、查询或报告格式。
	scalar  configType   :根文件夹的配置位置。
 有效的对象类型(Globals.pm 中定义的常量):
        PROBLEM_TYPE
        TASK_TYPE
        OBJECT_TYPE
 有效的格式类型(Globals.pm 中定义的常量):
 		QUERY
        REPORT
        REPORT_FORMAT
 

有效配置类型(常量定义在 Globals.pm 中):
        SHARED_PROFILE
        SYSTEM_CONFIG
        USER_PROFILE

返回:apiListObject
根文件夹下的文件夹列表。

示例:
	

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\machine\\ccmdb\\cm_database");
		


		my $globals = new ChangeSynergy::Globals();
		
		#Get a list of all the shared CR report folders.

		my $folders = $csapi->listFolders($aUser, $globals->{PROBLEM_TYPE}, $globals->{REPORT}, $globals->{SHARED_PROFILE});
		for (my $i = 0; $i < $folders->getListSize(); $i++)
		{
			print $folders->getLabel($i) . "\n";
		}
	};
	
	if ($@)
	{
		print $@;
	}
LoadFormHtml

装入不需要模板名称和类型之外的任何其他数据的任一 IBM Rational Change 模板。返回结果是 apiData 类的实例。

 注:返回值是完整的 HTML 页面。<HTML>...</HTML>
       可以将返回值另存为 .html 文件,或者装入
	      浏览器窗口/控件。
 参数:
	apiUser aUser       :当前 api 用户的登录数据。
	scalar  templateName:要装入的 IBM Rational Change 模板的名称
	                      ([CCM_TEMPLATE][NAME]template name[/NAME]...[/CCM_TEMPLATE])。
	scalar  templateType:要装入的 IBM Rational Change 模板的
	                      类型 ([ONLOAD_ACTION]type[/ONLOAD_ACTION])。
 
返回:apiData
来自服务器的 html 模板。
 示例
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->LoadFormHtml($aUser, "SearchTipsWindow", "workspace_form");
	};
	if ($@)
	{
		print $@;
	}
LoadFormUrl

装入不需要模板名称和类型之外的任何其他数据的任一 IBM Rational Change 模板。返回结果是 apiData 类的实例。

 注:返回值是完整的 URL 地址。
       可以将返回值另存为链接,或者装入
       浏览器窗口/控件。
 参数:
	apiUser aUser       :当前 api 用户的登录数据。
	scalar  templateName:要装入的 IBM Rational Change 模板的名称
	                      ([CCM_TEMPLATE][NAME]template name[/NAME]...[/CCM_TEMPLATE])。
	scalar  templateType:要装入的 IBM Rational Change 模板的
	                      类型 ([ONLOAD_ACTION]type[/ONLOAD_ACTION])。
 
返回:apiData
所需模板的 URL 地址。
 示例
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->LoadFormUrl($aUser, "SearchTipsWindow", "workspace_form");
	};
	if ($@)
	{
		print $@;
	}
LoadFrameSetHtml

装入 IBM Rational Change "frameset_form" 模板。IBM Rational Change 服务器将对提供的模板名称进行解析。其他函数变量可用于框架集格式定义中包含的 URL。 返回结果是 apiData 类的实例。

 注:返回值是完整的 HTML 页面。<HTML>...</HTML>
	   可以将返回值另存为 .html 文件,或者装入
	      浏览器窗口/控件。
 参数:
	apiUser aUser       :当前 api 用户的登录数据。
	scalar templateName :要装入的 IBM Rational Change 模板的名称
						  ([CCM_TEMPLATE][NAME]template name[/NAME]...[/CCM_TEMPLATE])。
	scalar taskNumber   :要引用的任务标识。
	scalar taskStatus   :所引用任务的状态值。
	scalar problemNumber:要引用的变更请求标识/问题号标识。
	scalar problemStatus:所引用 CR 的 crstatus 值。
	scalar cvid         :要引用的对象的 CVID。
	scalar externalData :要传递至某个提交请求的 XML 数据的字符串。
 外部数据 XML 的格式:
 
 <EXTERNAL_CONTEXT_DATA>
 	<ATTRIBUTE NAME="attribute_name">your value</ATTRIBUTE>
 	<ATTRIBUTE NAME="attribute_name">your value</ATTRIBUTE>
 	<ATTRIBUTE NAME="attribute_name">your value</ATTRIBUTE>
 	.
 	.
 	.
 </EXTERNAL_CONTEXT_DATA>
 
返回:apiData
HTML 页面形式的所请求框架集。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->LoadFrameSetHtml($aUser, "ChangeSynergyShowDetails", undef, 
											  undef, "1347", undef, undef, undef);
	};
	if ($@)
	{
		print $@;
	}
LoadFrameSetUrl

装入 IBM Rational Change "frameset_form" 模板。IBM Rational Change 服务器将对提供的模板名称进行解析。其他函数变量可用于框架集格式定义中包含的 URL。 返回结果是 apiData 类的实例。

 注:返回值是完整的 URL 地址。
       可以将返回值另存为链接,或者装入
	      浏览器窗口/控件。
 参数:
	apiUser aUser       :当前 api 用户的登录数据。
	scalar templateName :要装入的 IBM Rational Change 模板的名称
						  ([CCM_TEMPLATE][NAME]template name[/NAME]...[/CCM_TEMPLATE])。
	scalar taskNumber   :要引用的任务标识。
	scalar taskStatus   :所引用任务的状态值。
	scalar problemNumber:要引用的变更请求标识/问题号标识。
	scalar problemStatus:所引用 CR 的 crstatus 值。
	scalar cvid         :要引用的对象的 CVID。
	scalar externalData :要传递至某个提交请求的 XML 数据的字符串。
 外部数据 XML 的格式:
 
 <EXTERNAL_CONTEXT_DATA>
 	<ATTRIBUTE NAME="attribute_name">your value</ATTRIBUTE>
 	<ATTRIBUTE NAME="attribute_name">your value</ATTRIBUTE>
 	<ATTRIBUTE NAME="attribute_name">your value</ATTRIBUTE>
 	.
 	.
 	.
 </EXTERNAL_CONTEXT_DATA>
 
返回:apiData
URL 形式的所请求框架集。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->LoadFrameSetUrl($aUser, "ChangeSynergyShowDetails", undef, 
											  undef, "1347", undef, undef, undef);
	};
	if ($@)
	{
		print $@;
	}
LoadMergeConfigurationFiles

从 IBM Rational Change 服务器上的 [CFG_MERGE][/CFG_MERGE] 中装入所有配置数据文件。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser:当前 api 用户的登录数据。
 返回:apiData
来自服务器的返回消息。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->LoadMergeConfigurationFiles($aUser);
	};
	if ($@)
	{
		print $@;
	}
Login

以特定用户的身份登录至 IBM Rational Change 服务器,并连接至特定 IBM Rational Synergy 数据库。返回结果是 apiUser 类的实例。

 参数:
	scalar user    :用户的名称。
	scalar password:用户的密码。
	scalar role    :用户的角色(现在,Web 客户机使用术语“interface”来代替“role”的这一用法。)
	scalar database:针对用户的 IBM Rational Synergy 数据库路径。
 返回:apiUser
包含指定信息的 apiUser 类的新实例。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
	};
	if ($@)
	{
		print $@;
	}
AddUser

使用指定的 Rational Synergy 角色集向 LDAP 服务器和 Rational Synergy 数据库添加新用户。新用户可以在此调用完成之后登录。返回结果是 apiData 类的实例。

注:在循环中,请勿调用此函数。而是使用 AddUsers() api 函数。

 参数:
	apiUser aUser   :当前 api 用户的登录数据。
	apiUser aNewUser:新用户的数据。
 返回:apiData
来自服务器的返回消息。
 
示例:
	

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		

		my $aNewUser = new ChangeSynergy::apiUser("jsmith", "password", "developer|ccm_admin|pt_admin",
                                                  "\\\\your_hostname\\ccmdb\\cm_database");
		

		my $tmpstr = $csapi->AddUser($aUser, $aNewUser);
	};
	if ($@)
	{
		print $@;
	}
AddUsers

使用指定的 Rational Synergy 角色集向 LDAP 服务器和 Rational Synergy 数据库添加一组新用户。新用户可以在此调用完成之后登录。返回结果是 apiData 类的实例。

 参数:
	apiUser  aUser   :当前 api 用户的登录数据。
	@apiUser aNewUser:新用户数据的数组
	scalar   iCount  :新用户的数组大小。
 返回:apiData
来自服务器的返回消息。
 
示例:
	

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		my $i;

		my $j=100;
		my @newUsers;
		for($i=0;$i<$j;$i++)
		{
			push @newUsers, new ChangeSynergy::apiUser("ATestUser" . $i ,"ATestUser",
                                                       "developer|ccm_admin|pt_admin",
                                                       "\\\\your_hostname\\ccmdb\\cm_database");
		}
		my $tmpstr = $csapi->AddUsers($aUser, \@newUsers, $j);
	};
	if ($@)
	{
		print $@;
	}
Logout

通过立即释放用户的已检出许可证来注销该用户(没有任何许可证逗留时间)。

 参数:
	apiUser aUser :当前 api 用户的登录数据。
 
返回:apiData
来自服务器的返回消息。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->Logout($aUser);
	};
	if ($@)
	{
		print $@;
	}
ModifyCR

应用已修改的变更请求数据。只会将标记为已修改的数据对象提交至 IBM Rational Change 服务器。 不应变更属性 problem_number、modify_time 和 cvid。api 类将在需要时自动处理这些属性。 返回结果是 apiData 类的实例。

注:apiObjectData 的成员方法 setValue("") 将在被调用时自动设置已修改的标志。

 参数:
	apiUser         aUser:当前 api 用户的登录数据。
	apiObjectVector data :要由 api 函数处理的数据。
 返回:apiData
仅当修改成功时,才会返回结果
 
示例:
 

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->AttributeModifyCRData($aUser, "100", "crstatus");
		or

		my $tmp = $csapi->AttributeModifyCRData($aUser, "100");
		or

		my $tmp = $csapi->ModifyCRData($aUser, "100", "CRDetail");
		or

		my $tmp = $csapi->GetCRData($aUser, "100", "problem_synopsis|problem_description|keyword");
		
		$tmp->getDataObjectByName("problem_synopsis")->setValue("I modified the synopsis through the csapi...");
		$tmp->getDataObjectByName("problem_description")->setValue("I modified the description through the csapi...");
		$tmp->getDataObjectByName("keyword")->setValue("csapi");
		my $tmpstr = $csapi->ModifyCR($aUser, $tmp);
	};
	if ($@)
	{
		print $@;
	}
ModifyCRData

将变更请求的详细信息装入数据类中,可以在其中修改变更请求的详细信息。然后,可以使用某个修改 api 函数提交已修改的数据类以更改变更请求。 返回结果是 apiObjectVector 类的实例。

注:当前转换选项随该 api 函数调用提供。 请参阅 apiTransitions 类描述。

 参数:
	apiUser aUser        :当前 api 用户的登录数据。
	scalar  problemNumber:要引用的变更请求标识/问题号标识。
	scalar  templateName :要装入的 IBM Rational Change 模板的名称
	                       ([CCM_TEMPLATE][NAME]template name[/NAME]...[/CCM_TEMPLATE])。
 返回:apiObjectVector
数据格式的变更请求详细信息。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->ModifyCRData($aUser, "100", "CRDetail");
		my $tmpstr = $tmp->getXmlData();
	};
	if ($@)
	{
		print $@;
	}
ModifyObjectAttributes

修改名为“your name value”的对象的现有属性。必须提供分配给属性的值。该操作还将更新对象的 modify_time 属性。返回结果是 apiData 类的实例。

 参数:
	apiUser         aUser       :当前 api 用户的登录数据。
	scalar          cvidList    :将受影响的 cvid 的列表(以“|”竖线定界),或单个 cvid。
	apiObjectVector attrData    :要由 api 函数处理的数据。
 
返回:apiData
来自服务器的返回消息。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $attrData = new ChangeSynergy::apiObjectVector();
		my $objData = new ChangeSynergy::apiObjectData();
		$objData->setName("attribute_a");
		$objData->setValue("Linux");
		$attrData->addDataObject($objData);
		my $objData = new ChangeSynergy::apiObjectData();
		$objData->setName("attribute_b");
		$objData->setValue("true");
		$attrData->addDataObject($objData);
		my $objData = new ChangeSynergy::apiObjectData();
		$objData->setName("attribute_c");
		$objData->setValue("777");
		$attrData->addDataObject($objData);
		my $tmp = $csapi->ModifyObjectAttributes($aUser, "10156|10157|10158|10159|10160", $attrData)
		print $tmp->getResponseData();
	};
	if ($@)
	{
		print $@;
	}
ModifyTask

应用已修改的任务数据。只会将标记为已修改的数据对象提交至 IBM Rational Change 服务器。 不应变更属性 task_number、modify_time 和 cvid。api 类将在需要时自动处理这些属性。 返回结果是 apiData 类的实例。

注:apiObjectData 的成员方法 setValue("") 将在被调用时自动设置已修改的标志。

 参数:
	apiUser         aUser:当前 api 用户的登录数据。
	apiObjectVector data :要由 api 函数处理的数据。
 返回:apiData
仅当修改成功时,才会返回结果
 示例:
 

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->ModifyTaskData($aUser, "10", "TaskDetails");
		or

		my $tmp = $csapi->GetTaskData($aUser, "10", "task_synopsis|task_description|priority");
		
		$tmp->getDataObjectByName("task_synopsis")->setValue("I modified the synopsis through the csapi...");
		$tmp->getDataObjectByName("task_description")->setValue("I modified the description through the csapi...");
		$tmp->getDataObjectByName("priority")->setValue("high");
		my $tmpstr = $csapi->ModifyTask($aUser, $tmp);
	};
	if ($@)
	{
		print $@;
	}
ModifyTaskData

将任务的详细信息装入数据类中,可以在其中修改任务的详细信息。然后,可以使用某个修改 api 函数提交已修改的数据类以更改任务。 返回结果是 apiObjectVector 类的实例。

 参数:
	apiUser aUser       :当前 api 用户的登录数据。
	scalar  taskNumber  :要引用的任务标识。
	scalar  templateName:要装入的 IBM Rational Change 模板的名称
	                      ([CCM_TEMPLATE][NAME]template name[/NAME]...[/CCM_TEMPLATE])。
 
返回:apiObjectVector
数据格式的任务详细信息
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->ModifyTaskData($aUser, "10", "TaskDetails");
		my $tmpstr = $tmp->getXmlData();
	};
	if ($@)
	{
		print $@;
	}
moveFolderMembers

将查询、报告格式或报告文件夹的成员移至同一类型的新文件夹。服务器将找到报告所属的当前文件夹,并将这些报告移至新指定的文件夹。任何移动都必须在列表中的所有成员都存在的情况下才能完成。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser :当前 api 用户的登录数据。
	scalar  folderName   :要将报告移至的文件夹的名称。
	scalar  memberList   :要从一个文件夹移至另一个文件夹的报告的列表(以竖线定界)。
	scalar  objectType   :文件夹的对象类型。
	scalar  formatType   :文件夹的格式类型:报告、查询或报告格式。
	scalar  configType   :报告的配置位置。
 有效的对象类型(Globals.pm 中定义的常量):
        PROBLEM_TYPE
        TASK_TYPE
        OBJECT_TYPE
 有效的格式类型(Globals.pm 中定义的常量):
 		QUERY
        REPORT
        REPORT_FORMAT
 

有效配置类型(常量定义在 Globals.pm 中):
        SHARED_PROFILE
        SYSTEM_CONFIG
        USER_PROFILE

返回:apiData
来自服务器的返回消息。

示例:
	

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\machine\\ccmdb\\cm_database");
		


		my $globals = new ChangeSynergy::Globals();
		
		#Moves the reports 'API Test 1' and 'API Test 2' to the folder 'API Folder'.

		my $moveResults = $csapi->moveFolderMembers($aUser, "API Folder", "API Test 1|API Test 2", $globals->{PROBLEM_TYPE}, $globals->{REPORT}, $globals->{SHARED_PROFILE});
		print $moveResults->getResponseData() . "\n";
	};
	if ($@)
	{
		print $@;
	}
PreferenceNameSubstitutionForAllUsers

在所有用户的首选项名称中执行替换。例如,用户报告和查询存储在 _USER_CFG_%username_%databasepath 条目中。 这可能是 _USER_CFG_jsmith_\\your_hostnameA\ccmdb\cm_database。如果数据库从 your_hostnameA 移至 your_hostnameB,那么此方法可以执行替换。 它将找到一个字符串的所有出现位置,并将其替换为另一个字符串。找到“\\your_hostnameA\ccmdb\cm_database”并将其替换为“\\your_hostnameB\ccmdb\cm_database”。 返回结果是 apiData 类的实例。

注:无法更改或添加用户概要文件值。这些值包括用户的名字、姓氏、电子邮件地址、传真号、电话号码和地址。

 参数:
	apiUser aUser   :当前 api 用户的登录数据。
	scalar  keyValue:执行替换时要搜索的值。
	scalar  subValue:替换值,即要添加的值。
 返回:apiData
来自服务器的返回消息。
 
示例:
	

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostnameB\\ccmdb\\cm_database");
		$tmpData = $csapi->PreferenceNameSubstitutionForAllUsers($aUser, "\\\\your_hostnameA\\ccmdb\\cm_database", "\\\\your_hostnameB\\ccmdb\\cm_database");
	
		print $tmpData->getResponseData();
	};
	if ($@)
	{
		print $@;
	}
PreferenceNameSubstitutionForAUser

在单个用户的首选项名称中执行替换。例如,用户报告和查询存储在 _USER_CFG_%username_%databasepath 条目中。 这可能是 _USER_CFG_jsmith_\\your_hostnameA\ccmdb\cm_database。如果数据库从 your_hostnameA 移至 your_hostnameB,那么此方法可以执行替换。 它将找到一个字符串的所有出现位置,并将其替换为另一个字符串。找到“\\your_hostnameA\ccmdb\cm_database”并将其替换为“\\your_hostnameB\ccmdb\cm_database”。 返回结果是 apiData 类的实例。

注:无法更改或添加用户概要文件值。这些值包括用户的名字、姓氏、电子邮件地址、传真号、电话号码和地址。

 参数:
	apiUser aUser   :当前 api 用户的登录数据。
	scalar  username:要编辑的用户首选项的名称。
	scalar  keyValue:执行替换时要搜索的值。
	scalar  subValue:替换值,即要添加的值。
 返回:apiData
来自服务器的返回消息。
 
示例:
	

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostnameB\\ccmdb\\cm_database");
		$tmpData = $csapi->PreferenceNameSubstitutionForAUser($aUser, "u00001", "\\\\your_hostnameA\\ccmdb\\cm_database", "\\\\your_hostnameB\\ccmdb\\cm_database");
	
		print $tmpData->getResponseData();
	};
	if ($@)
	{
		print $@;
	}
PreferenceSubstitutionForAUser

在单个用户的首选项值中执行替换。 在给定一个用户首选项的情况下,找到一个字符串的所有出现位置,并将其替换为另一个字符串。当您需要更改用户的 config 条目以在 _USER_CFG_ 条目中将一个报告名称 (problem_review) 替换为另一个报告名称 (cr_review) 时,这很有用。返回结果是 apiData 类的实例。

注:无法更改或添加用户概要文件值。这些值包括用户的名字、姓氏、电子邮件地址、传真号、电话号码和地址。

 参数:
	apiUser aUser   :当前 api 用户的登录数据。
	scalar  username:要编辑的用户首选项的名称。
	scalar  keyName :要编辑的首选项的名称。
	scalar  keyValue:执行替换时要搜索的值。
	scalar  subValue:替换值,即要添加的值。
	scalar  allDBs  :true 或 false,指示是否对所有数据库执行添加,
						还是仅对当前 api 用户登录到的数据库执行添加。
 返回:apiData
来自服务器的返回消息。
 
示例:
	

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		
		$tmpData = $csapi->PreferenceSubstitutionForAUser($aUser, "u00001", "_USER_CFG_", "problem_review", "cr_review", "true");
	
		print $tmpData->getResponseData();
	};
	if ($@)
	{
		print $@;
	}
PreferenceSubstitutionForAllUsers

在所有用户的首选项值中执行替换。 在给定一个用户首选项的情况下,找到一个字符串的所有出现位置,并将其替换为另一个字符串。当您需要更改用户的 config 条目以在 _USER_CFG_ 条目中将一个报告名称 (problem_review) 替换为另一个报告名称 (cr_review) 时,这很有用。返回结果是 apiData 类的实例。

注:无法更改或添加用户概要文件值。这些值包括用户的名字、姓氏、电子邮件地址、传真号、电话号码和地址。

 参数:
	apiUser aUser   :当前 api 用户的登录数据。
	scalar  keyName :要编辑的首选项的名称。
	scalar  keyValue:执行替换时要搜索的值。
	scalar  subValue:替换值,即要添加的值。
	scalar  allDBs  :true 或 false,指示是否对所有数据库执行添加,
						还是仅对当前 api 用户登录到的数据库执行添加。
 返回:apiData
来自服务器的返回消息。
 
示例:
	

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		
		$tmpData = $csapi->PreferenceSubstitutionForAllUsers($aUser, "_USER_CFG_", "problem_review", "cr_review", "true");
	
		print $tmpData->getResponseData();
	};
	if ($@)
	{
		print $@;
	}
ProcessEmailSubmitForms

在 IBM Rational Change 服务器上处理电子邮件提交表单。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser:当前 api 用户的登录数据。
 返回:apiData
来自服务器的返回消息。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->ProcessEmailSubmitForms($aUser);
	};
	if ($@)
	{
		print $@;
	}
QueryData

运行 IBM Rational Change 报告,并且仅使用 XML 数据进行响应。 返回结果是 apiQueryData 类的实例。

注:返回值是报告的完整内容(仅表示为数据)。

 参数:
	apiUser aUser       :当前 api 用户的登录数据。
	scalar  reportName  :IBM Rational Change 报告名称
	                      ([CCM_REPORT][NAME]report name[/NAME]...[/CCM_REPORT])。
	scalar  queryString :有效的 IBM Rational Synergy 查询字符串。
	scalar  queryName   :IBM Rational Change 查询名称
	                      ([CCM_QUERY][NAME]query name[/NAME]...[/CCM_QUERY])。
	scalar  reportTitle :此报告实例的标题。
	scalar  templateName:要装入的 IBM Rational Change 模板的名称
	                      ([CCM_TEMPLATE][NAME]template name[/NAME]...[/CCM_TEMPLATE])。
	
 返回:apiQueryData
表示报告数据的 XML 数据。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->QueryData($aUser, "Basic Summary", "(submitter='cschuffe') and (cvtype='problem')", 
                                    undef, undef, undef);
	};
	if ($@)
	{
		print $@;
	}
QueryData

运行 IBM Rational Change 报告,并且仅使用 XML 数据进行响应。 返回结果是 apiQueryData 类的实例。

注:返回值是报告的完整内容(仅表示为数据)。

 参数:
	apiUser aUser :当前 api 用户的登录数据。
	scalar  reportName   :IBM Rational Change 报告名称
	                       ([CCM_REPORT][NAME]report name[/NAME]...[/CCM_REPORT])。
	scalar  queryString  :有效的 IBM Rational Synergy 查询字符串。
	scalar  queryName    :IBM Rational Change 查询名称
	                       ([CCM_QUERY][NAME]query name[/NAME]...[/CCM_QUERY])。
	scalar  reportTitle  :此报告实例的标题。
	scalar  templateName :要装入的 IBM Rational Change 模板的名称
                        ([CCM_TEMPLATE][NAME]template name[/NAME]...[/CCM_TEMPLATE])。
	scalar  attributeList:属性“problem_number|crstatus|assigner...”的列表(以竖线定界)。
	
 返回:apiQueryData
表示报告数据的 XML 数据。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->QueryData($aUser, "Basic Summary", "(submitter='cschuffe') and (cvtype='problem')", 
                                    undef, undef, undef, "problem_number|crstatus");
	};
	if ($@)
	{
		print $@;
	}
QueryHtml

运行 IBM Rational Change 报告,将返回结果或轮询模板(如果结果尚未准备好)。

该 api 应该用于运行较大的报告。返回结果是 apiData 类的实例。

 注:返回值是完整的 HTML 页面。<HTML>...</HTML>
       可以将返回值另存为 .html 文件,或者装入
       浏览器窗口/控件。
 参数:
	apiUser aUser       :当前 api 用户的登录数据。
	scalar  reportName  :IBM Rational Change 报告名称
	                      ([CCM_REPORT][NAME]report name[/NAME]...[/CCM_REPORT])。
	scalar  queryString :有效的 IBM Rational Synergy 查询字符串。
	scalar  queryName   :IBM Rational Change 查询名称
	                      ([CCM_QUERY][NAME]query name[/NAME]...[/CCM_QUERY])。
	scalar  reportTitle :此报告实例的标题。
	scalar  templateName:要装入的 IBM Rational Change 模板的名称
	                      ([CCM_TEMPLATE][NAME]template name[/NAME]...[/CCM_TEMPLATE])。
 返回:apiData
HTML 页面形式的所请求即时查询,或者
所运行查询的轮询模板。这是 HTML 页面。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->QueryHtml($aUser, "Basic Summary", 
                                       "(submitter='cschuffe') and (cvtype='problem')",
                                       undef, "Basic Summary Report");
	};
	if ($@)
	{
		print $@;
	}
QueryNameData

运行 IBM Rational Change 报告,并且仅使用 XML 数据进行响应。 返回结果是 apiQueryData 类的实例。

注:返回值是报告的完整内容(仅表示为数据)。

 参数:
	apiUser aUser :当前 api 用户的登录数据。
	scalar  reportName   :IBM Rational Change 报告名称
	                       ([CCM_REPORT][NAME]report name[/NAME]...[/CCM_REPORT])。
	scalar  queryName    :IBM Rational Change 查询名称
	                       ([CCM_QUERY][NAME]query name[/NAME]...[/CCM_QUERY])。
	scalar  attributeList:属性“problem_number|crstatus|assigner...”的列表(以竖线定界)。
	
 返回:apiQueryData
表示报告数据的 XML 数据。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->QueryNameData($aUser, "Basic Summary", "All CRs", "problem_number|crstatus");
	};
	if ($@)
	{
		print $@;
	}
QueryStringData

运行 IBM Rational Change 报告,并且仅使用 XML 数据进行响应。 返回结果是 apiQueryData 类的实例。

注:返回值是报告的完整内容(仅表示为数据)。

 参数:
	apiUser aUser :当前 api 用户的登录数据。
	scalar  reportName   :IBM Rational Change 报告名称
	                       ([CCM_REPORT][NAME]report name[/NAME]...[/CCM_REPORT])。
	scalar  queryString  :有效的 IBM Rational Synergy 查询字符串。
	scalar  attributeList:属性“problem_number|crstatus|assigner...”的列表(以竖线定界)。
	
 返回:apiQueryData
表示报告数据的 XML 数据。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->QueryStringData($aUser, "Basic Summary", "(submitter='cschuffe') and (cvtype='problem')", 
                                    "problem_number|crstatus");
	};
	if ($@)
	{
		print $@;
	}
RefreshUsers

注意:对于 IBM Rational Change 5.2,该方法不是非常有用。IBM Rational Change 现在可以自动检测通过“ccm users”命令进行的更改,无需调用此方法 - 无论如何,都将即时进行刷新。这不会导致出现问题,但可能执行了不必要的工作。

使所有后端会话刷新其安全性设置并重新装入所有用户信息。如果在 IBM Rational Change 外部将新用户添加到 IBM Rational Synergy,将需要此方法。通常,仅当启动新会话时才会看到这些更改;现有会话将继续使用旧数据。该函数会强制所有会话自行刷新并立即看到此类更改。

需要用户使用“管理员”界面的访问权进行登录。

IBM Rational Change 只有使用其 LDAP 服务器中的条目才能识别用户。 只将用户添加到 IBM Rational Synergy 并调用此函数将不允许这些用户登录至 IBM Rational Change。此函数仅在高级用户定制期间有用。

 参数:
	apiUser aUser        :当前 API 用户的登录数据。
 返回:标量
来自服务器的返回消息。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		$csapi->RefreshUsers($aUser);
	};
	if ($@)
	{
		print $@;
	}
renameFolder

重命名服务器上的查询、报告格式或报告文件夹。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser :当前 api 用户的登录数据。
	scalar  folderName   :文件夹的当前名称。
	scalar  newFolderName:文件夹的新名称。
	scalar  objectType   :文件夹的对象类型。
	scalar  formatType   :文件夹的格式类型:报告、查询或报告格式。
	scalar  configType   :报告的配置位置。
 有效的对象类型(Globals.pm 中定义的常量):
        PROBLEM_TYPE
        TASK_TYPE
        OBJECT_TYPE
 有效的格式类型(Globals.pm 中定义的常量):
 		QUERY
        REPORT
        REPORT_FORMAT
 

有效配置类型(常量定义在 Globals.pm 中):
        SHARED_PROFILE
        SYSTEM_CONFIG
        USER_PROFILE

返回:apiData
来自服务器的返回消息。

示例:
	

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\machine\\ccmdb\\cm_database");
		


		my $globals = new ChangeSynergy::Globals();
		
		#Renames a shared CR Report folder called 'API Folder' to 'API Folder Renamed'

		my $renameResults = $csapi->renameFolder($aUser, "API Folder", "API Folder Renamed", $globals->{PROBLEM_TYPE}, $globals->{REPORT}, $globals->{SHARED_PROFILE});
		print $renameResults->getResponseData();
	};
	if ($@)
	{
		print $@;
	}
ReloadListboxes

将重新装入 pt_listbox.cfg 文件,并且将重新装入从数据库中获取其值的所有列表框。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser:当前 api 用户的登录数据。
 返回:apiData
来自服务器的返回消息。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->ReloadListboxes($aUser);
	};
	if ($@)
	{
		print $@;
	}
ReloadStringTable

清除并重新装入外部字符串表。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser:当前 api 用户的登录数据。
 返回:apiData
来自服务器的返回消息。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->ReloadStringTable($aUser);
	};
	if ($@)
	{
		print $@;
	}
reloadAppProperties

重新装入文件 WEB-INF/wsconfig/system/app.properties 和 WEB-INF/wsconfig/system/app.user.properties。

返回结果是 apiData 类的实例。

 参数:
	apiUser aUser:当前 api 用户的登录数据。
 返回:apiData
来自服务器的返回消息。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->reloadAppProperties($aUser);
	};
	if ($@)
	{
		print $@;
	}
ReportData

运行 IBM Rational Change 报告,并且仅使用 XML 数据进行响应。 返回结果是 apiQueryData 类的实例。

注:返回值是报告的完整内容(仅表示为数据)。

 参数:
	apiUser aUser :当前 api 用户的登录数据。
	scalar  reportName   :IBM Rational Change 报告名称
	                       ([CCM_REPORT][NAME]report name[/NAME]...[/CCM_REPORT])。
	scalar  attributeList:属性“problem_number|crstatus|assigner...”的列表(以竖线定界)。
 返回:apiQueryData
表示报告数据的 XML 数据。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->ReportData($aUser, "DRP - Summary of CRs Submitted by Me", "problem_number");
		
		$tmpstr = $tmp->getXmlData();
	};
	if ($@)
	{
		print $@;
	}
ReportData

运行 IBM Rational Change 报告,并且仅使用 XML 数据进行响应。 返回结果是 apiQueryData 类的实例。

注:返回值是报告的完整内容(仅表示为数据)。

 参数:
	apiUser aUser       :当前 api 用户的登录数据。
	scalar  reportName  :IBM Rational Change 报告名称
	                      ([CCM_REPORT][NAME]report name[/NAME]...[/CCM_REPORT])。
	scalar  reportTitle :此报告实例的标题。
	scalar  templateName:要装入的 IBM Rational Change 模板的名称
	                      ([CCM_TEMPLATE][NAME]template name[/NAME]...[/CCM_TEMPLATE])。
 返回:apiQueryData
表示报告数据的 XML 数据。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->ReportData($aUser, "DRP - Summary of CRs Submitted by Me", undef, undef);
		
		$tmpstr = $tmp->getXmlData();
	};
	if ($@)
	{
		print $@;
	}
ReportData

运行 IBM Rational Change 报告,并且仅使用 XML 数据进行响应。 返回结果是 apiQueryData 类的实例。

注:返回值是报告的完整内容(仅表示为数据)。

 参数:
	apiUser aUser :当前 api 用户的登录数据。
	scalar  reportName   :IBM Rational Change 报告名称
	                       ([CCM_REPORT][NAME]report name[/NAME]...[/CCM_REPORT])。
	scalar  reportTitle  :此报告实例的标题。
	scalar  templateName :要装入的 IBM Rational Change 模板的名称
                        ([CCM_TEMPLATE][NAME]template name[/NAME]...[/CCM_TEMPLATE])。
	scalar  attributeList:属性“problem_number|crstatus|assigner...”的列表(以竖线定界)。
 返回:apiQueryData
表示报告数据的 XML 数据。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->ReportData($aUser, "DRP - Summary of CRs Submitted by Me", undef, undef, undef);
		
		$tmpstr = $tmp->getXmlData();
	};
	if ($@)
	{
		print $@;
	}
ReportHtml

运行 IBM Rational Change 报告,将返回结果或轮询模板(如果结果尚未准备好)。 该 api 应该用于运行较大的报告。返回结果是 apiData 类的实例。

 注:返回值是完整的 HTML 页面。<HTML>...</HTML>
       可以将返回值另存为 .html 文件,或者装入
       浏览器窗口/控件。
 参数:
	apiUser aUser       :当前 api 用户的登录数据。
	scalar  reportName  :IBM Rational Change 报告名称
	                      ([CCM_REPORT][NAME]report name[/NAME]...[/CCM_REPORT])。
	scalar  reportTitle :此报告实例的标题。
	scalar  templateName:要装入的 IBM Rational Change 模板的名称
	                      ([CCM_TEMPLATE][NAME]template name[/NAME]...[/CCM_TEMPLATE])。
 
返回:apiData
HTML 页面形式的所请求即时查询,或者
所运行的报告轮询模板。这是 HTML 页面。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->ReportHtml($aUser, "Basic Summary", "Basic Summary Report", undef);
	};
	if ($@)
	{
		print $@;
	}
ReportOnCRData

运行在单个变更请求上进行报告的 IBM Rational Change 报告。 返回结果是 apiQueryData 类的实例。

注:返回值是报告的完整内容(仅表示为数据)。

 参数:
	apiUser aUser :当前 api 用户的登录数据。
	scalar  problemNumber:要引用的变更请求标识/问题号标识。
	scalar  ReportName   :IBM Rational Change 报告名称
	                       ([CCM_REPORT][NAME]report name[/NAME]...[/CCM_REPORT])。
	scalar  reportTitle  :此报告实例的标题。
 返回:apiQueryData
表示报告内容的 XML 数据。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->ReportOnCRData($aUser, "132", "DRP - Summary with Tasks and Objects", undef);
		

		my $tmpstr = $tmp->getXmlData();
	};
	if ($@)
	{
		print $@;
	}
ReportOnCRData

运行在单个变更请求上进行报告的 IBM Rational Change 报告。 返回结果是 apiQueryData 类的实例。

注:返回值是报告的完整内容(仅表示为数据)。

 参数:
	apiUser aUser :当前 api 用户的登录数据。
	scalar  problemNumber:要引用的变更请求标识/问题号标识。
	scalar  ReportName   :IBM Rational Change 报告名称
	                       ([CCM_REPORT][NAME]report name[/NAME]...[/CCM_REPORT])。
	scalar  reportTitle  :此报告实例的标题。
	scalar  attributeList:属性“problem_number|crstatus|assigner...”的列表(以竖线定界)。
 返回:apiQueryData
表示报告内容的 XML 数据。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->ReportOnCRData($aUser, "132", "DRP - Summary with Tasks and Objects",
                                         undef, "problem_number|crstatus");
		

		my $tmpstr = $tmp->getXmlData();
	};
	if ($@)
	{
		print $@;
	}
ReportOnCRHtml

运行在单个变更请求上进行报告的 IBM Rational Change 报告。 返回结果是 apiData 类的实例。

 注:返回值是完整的 HTML 页面。<HTML>...</HTML>
       可以将返回值另存为 .html 文件,或者装入
       浏览器窗口/控件。
 参数:
	apiUser aUser        :当前 api 用户的登录数据。
	scalar  problemNumber:要引用的变更请求标识/问题号标识。
	scalar  reportName   :IBM Rational Change 报告名称
	                       ([CCM_REPORT][NAME]report name[/NAME]...[/CCM_REPORT])。
	scalar  reportTitle  :此报告实例的标题。
 
返回:apiData
HTML 页面形式的报告。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->ReportOnCRHtml($aUser, "1347", "problemdetail", undef);
	};
	if ($@)
	{
		print $@;
	}
ReportOnObjectData

运行在单个对象上进行报告的 IBM Rational Change 报告。 返回结果是 apiQueryData 类的实例。

注:返回值是报告的完整内容(仅表示为数据)。

 参数:
	apiUser aUser      :当前 api 用户的登录数据。
	scalar  objectId   :所引用对象的 CVID。
	scalar  reportName :IBM Rational Change 报告名称
	                     ([CCM_REPORT][NAME]report name[/NAME]...[/CCM_REPORT])。
	scalar  reportTitle:此报告实例的标题。
 返回:apiQueryData
XML 数据格式的报告。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->ReportOnObjectData($aUser, "11753", "objectdetail", undef);
		

		my $tmpstr = $tmp->getXmlData();
	};
	if ($@)
	{
		print $@;
	}
ReportOnObjectData

运行在单个对象上进行报告的 IBM Rational Change 报告。 返回结果是 apiQueryData 类的实例。

注:返回值是报告的完整内容(仅表示为数据)。

 参数:
	apiUser aUser :当前 api 用户的登录数据。
	scalar  objectId     :所引用对象的 CVID。
	scalar  reportName   :IBM Rational Change 报告名称
	                       ([CCM_REPORT][NAME]report name[/NAME]...[/CCM_REPORT])。
	scalar  reportTitle  :此报告实例的标题。
	scalar  attributeList:属性“problem_number|crstatus|assigner...”的列表(以竖线定界)。
 返回:apiQueryData
XML 数据格式的报告。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->ReportOnObjectData($aUser, "11753", "objectdetail", undef, "problem_number");
		

		my $tmpstr = $tmp->getXmlData();
	};
	if ($@)
	{
		print $@;
	}
ReportOnObjectHtml

运行在单个对象上进行报告的 IBM Rational Change 报告。 返回结果是 apiData 类的实例。

 注:返回值是完整的 HTML 页面。<HTML>...</HTML>
       可以将返回值另存为 .html 文件,或者装入
       浏览器窗口/控件。
 参数:
	apiUser aUser      :当前 api 用户的登录数据。
	scalar  objectId   :所引用对象的 CVID。
	scalar  reportName   :IBM Rational Change 报告名称
	                     ([CCM_REPORT][NAME]report name[/NAME]...[/CCM_REPORT])。
	scalar  reportTitle:此报告实例的标题。
 返回:apiData
HTML 页面形式的报告。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->ReportOnObjectHtml($aUser, "13", "objectdetail", undef);
	};
	if ($@)
	{
		print $@;
	}
ReportOnTaskData

运行在单个任务上进行报告的 IBM Rational Change 报告。 返回结果是 apiQueryData 类的实例。

 参数:
	apiUser aUser      :当前 api 用户的登录数据。
	scalar  taskNumber :要引用的任务标识。
	scalar  reportName :IBM Rational Change 报告名称
	                     ([CCM_REPORT][NAME]report name[/NAME]...[/CCM_REPORT])。
	scalar  reportTitle:此报告实例的标题。
 返回:apiQueryData
XML 数据格式的报告。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->ReportOnTaskData($aUser, "1", "taskdetail", undef);
		

		my $tmpstr = $tmp->getXmlData();
	};
	if ($@)
	{
		print $@;
	}
ReportOnTaskData

运行在单个任务上进行报告的 IBM Rational Change 报告。 返回结果是 apiQueryData 类的实例。

 参数:
	apiUser aUser :当前 api 用户的登录数据。
	scalar  taskNumber   :要引用的任务标识。
	scalar  reportName   :IBM Rational Change 报告名称
	                       ([CCM_REPORT][NAME]report name[/NAME]...[/CCM_REPORT])。
	scalar  reportTitle  :此报告实例的标题。
	scalar  attributeList:属性“problem_number|crstatus|assigner...”的列表(以竖线定界)。
 返回:apiQueryData
XML 数据格式的报告。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->ReportOnTaskData($aUser, "1", "taskdetail", undef, "task_number");
		

		my $tmpstr = $tmp->getXmlData();
	};
	if ($@)
	{
		print $@;
	}
ReportOnTaskHtml

运行在单个任务上进行报告的 IBM Rational Change 报告。 返回结果是 apiData 类的实例。

 注:返回值是完整的 HTML 页面。<HTML>...</HTML>
       可以将返回值另存为 .html 文件,或者装入
       浏览器窗口/控件。
 参数:
	apiUser aUser      :当前 api 用户的登录数据。
	scalar  taskNumber :要引用的任务标识。
	scalar  reportName :IBM Rational Change 报告名称
	                     ([CCM_REPORT][NAME]report name[/NAME]...[/CCM_REPORT])。
	scalar  reportTitle:此报告实例的标题。
 返回:apiData
HTML 页面形式的报告结果。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->ReportOnTaskHtml($aUser, "13", "taskdetail", undef);
	};
	if ($@)
	{
		print $@;
	}
ResetAdminTokens

针对所有数据库让管理员用户登录。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser:当前 api 用户的登录数据。
 返回:apiData
来自服务器的返回消息。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->ResetAdminTokens($aUser);
	};
	if ($@)
	{
		print $@;
	}
ResetConfigurationDataLoadTime

重置 IBM Rational Change 服务器上装入的配置数据时间戳记。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser:当前 api 用户的登录数据。
 返回:apiData
来自服务器的返回消息。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->ResetConfigurationDataLoadTime($aUser);
	};
	if ($@)
	{
		print $@;
	}
ServerAPIVersion

获取服务器的 API 版本号。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser:当前 api 用户的登录数据。
 返回:apiData

版本号字符串。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr1 = $csapi->ServerAPIVersion($aUser);
	};
	if ($@)
	{
		print $@;
	}
ServerGetFile

从 IBM Rational Change 服务器获取文件对象。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser     :当前 api 用户的登录数据。
	scalar  file :要检索的对象的文件名。
 返回:apiData
服务器返回的字节数据。
	
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser      = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");

		my $file       = "serverFile.txt";

		my $filehandle = $csapi->ServerGetFile($aUser, $file);
		open(OUTPUTFILE, ">serverFile.txt");
		print OUTPUTFILE $filehandle->getResponseByteData();
		close OUTPUTFILE;
	};
	if ($@)
	{
		print $@;
	}
ServerSendFile

将文件对象复制到 IBM Rational Change 服务器。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser :当前 api 用户的登录数据。
	scalar  buffer:要发送至服务器的 BYTE 数据。
	scalar  size   :BYTE 数据的大小。
 返回:apiData
来自服务器的返回消息。
	
示例:
	my $csapi  = new ChangeSynergy::csapi();

	my $buffer = "";

	my $buf    = "";

	my $size   = "";
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser      = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		open(INPUTFILE, "filename.txt") or die "Could not open up the file";
		while($buf = readline *INPUTFILE)
		{
			$buffer .= $buf;
		}
		close(INPUTFILE);
		
		$size = -s "filename.txt";
		my $filehandle = $csapi->ServerSendFile($aUser, $buffer, $size);
	};
	if ($@)
	{
		print $@;
	}
ServerVersion

获取服务器版本号。它是一个无标记的 api。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser:当前 api 用户的登录数据。
 返回:apiData

版本号字符串。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr1 = $csapi->ServerVersion();
	};
	if ($@)
	{
		print $@;
	}
SetAttributes

在服务器上设置/创建 IBM Rational Change 属性。

如果定制应用程序所引用的所有属性已在安装的 CR 过程中定义,那么将不需要此操作。GetAttributes() api 方法可用于确认是否已定义这些属性。

所提供属性的唯一列表将存储在使用所提供名称的 IBM Rational Change 配置文件中。“lpszCfgName”不应该包含“.ext”点扩展名,而只应该是 一个文件名前缀,例如“my_app_attrs”。IBM Rational Change 服务器会将“.cfg”添加到该名称。 命名文件时应谨慎。名称“pt”、“task_framework”、“admin_framework”、“user_framework”、“users”和“template”是保留的系统配置文件名,不允许使用这些名称。此操作将删除名为 lpszCfgName.cfg 的文件(如果存在)。因此,您可以覆盖自己的定制属性列表。如果无法创建或删除该文件,此操作将失败。

如果服务器上有任何列出的属性不是现有 lpszCfgName.cfg 文件名中的任何已定义属性,此操作将失败。如果操作出于此原因而失败,那么将返回错误属性的列表。建议将 GetAttributes() api 方法用于确认所有定制应用程序属性实际上对 IBM Rational Change 服务器未知。

已知的预定义 IBM Rational Change 属性(已保留,并且无法定义):

	***************** 全局 CR 属性 *****************
	
	[CCM_ATTRIBUTE][NAME]crstatus[/NAME][ALIAS]状态[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]problem_synopsis[/NAME][ALIAS]大纲[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]problem_description[/NAME][ALIAS]问题描述[/ALIAS][TYPE]CCM_TEXT[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]problem_number[/NAME][ALIAS]CR 标识[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]transition_log[/NAME][ALIAS]日志[/ALIAS][TYPE]CCM_TEXT[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]submitter[/NAME][ALIAS]提交者[/ALIAS][TYPE]CCM_USER[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]submitter_name[/NAME][ALIAS]姓名[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]submitter_phone[/NAME][ALIAS]电话号码[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]submitter_fax[/NAME][ALIAS]传真号[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]submitter_address[/NAME][ALIAS]地址[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]submitter_email[/NAME][ALIAS]电子邮件地址[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]submitter_company[/NAME][ALIAS]雇主[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE] 	
	 ***************** 全局任务属性 *****************
	[CCM_ATTRIBUTE][NAME]task_number[/NAME][ALIAS]任务标识[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]task_synopsis[/NAME][ALIAS]大纲[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	
	***************** 全局对象属性 *****************
	
	[CCM_ATTRIBUTE][NAME]cvid[/NAME][ALIAS]IBM Rational Synergy 标识[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]comment[/NAME][ALIAS]对象注释[/ALIAS][TYPE]CCM_TEXT[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]description[/NAME][ALIAS]对象描述[/ALIAS][TYPE]CCM_TEXT[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]displayname[/NAME][ALIAS]显示名称[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]source[/NAME][ALIAS]源[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]attachment_name[/NAME][ALIAS]附件名称[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]attachment_size[/NAME][ALIAS]附件长度[/ALIAS][TYPE]CCM_NUMBER[/TYPE][/CCM_ATTRIBUTE]
	
	***************** 共享 Ccm/PT/系统属性 *****************
	
	[CCM_ATTRIBUTE][NAME]status[/NAME][ALIAS]状态[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]database[/NAME][ALIAS]数据库[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]modifiable_in[/NAME][ALIAS]在其中进行处理的数据库[/ALIAS][TYPE]CCM_LISTBOX[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]created_in[/NAME][ALIAS]在其中进行创建的数据库[/ALIAS][TYPE]CCM_LISTBOX[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]cvtype[/NAME][ALIAS]对象类型[/ALIAS][TYPE]CCM_LISTBOX[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]name[/NAME][ALIAS]对象名[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]modify_time[/NAME][ALIAS]上次修改时间[/ALIAS][TYPE]CCM_DATE[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]status_log[/NAME][ALIAS]转变日志[/ALIAS][TYPE]CCM_TEXT[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]platform[/NAME][ALIAS]平台[/ALIAS][TYPE]CCM_LISTBOX[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]creator[/NAME][ALIAS]创建者[/ALIAS][TYPE]CCM_USER[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]create_time[/NAME][ALIAS]创建日期[/ALIAS][TYPE]CCM_DATE[/TYPE][/CCM_ATTRIBUTE]
	
	***************** 特殊 PTCLI/系统属性 *****************
	
	[CCM_ATTRIBUTE][NAME]users_roles[/NAME][ALIAS]用户角色[/ALIAS][TYPE]CCM_TEXT[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]users[/NAME][ALIAS]用户[/ALIAS][TYPE]CCM_TEXT[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]user[/NAME][ALIAS]用户[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]generic_cs_attribute[/NAME][ALIAS]请勿使用/除去[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]dcm_dbid[/NAME][ALIAS]DCM 数据库标识[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]dcm_delimiter[/NAME][ALIAS]DCM 定界符[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]pt_app[/NAME][ALIAS]DevClient 应用程序数据[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]pt_app_role[/NAME][ALIAS]DevClient 应用程序角色[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]all_databases[/NAME][ALIAS]所有数据库[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]all_groups[/NAME][ALIAS]所有组[/ALIAS][TYPE]CCM_LISTBOX[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]LIFECYCLES[/NAME][ALIAS]所有生命周期[/ALIAS][TYPE]CCM_LISTBOX[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]LIFECYCLE_STATES[/NAME][ALIAS]生命周期中的所有状态[/ALIAS][TYPE]CCM_LISTBOX[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]LIFECYCLE_TRANSITIONS[/NAME][ALIAS]生命周期中的所有转变[/ALIAS][TYPE]CCM_LISTBOX[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]VALID_TRANSITIONS[/NAME][ALIAS]允许的转变[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]VALID_CREATES[/NAME][ALIAS]允许的提交[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]VALID_CREATES_USER[/NAME][ALIAS]允许的用户提交[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]CURRENT_LIFECYCLE[/NAME][ALIAS]当前生命周期[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]

	[CCM_ATTRIBUTE][NAME]IS_ADMIN[/NAME][ALIAS]是管理员[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]licensed_dcmpt[/NAME][ALIAS]许可证信息[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]licensed_xpt[/NAME][ALIAS]许可证信息[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]licensed_grpsec[/NAME][ALIAS]许可证信息[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	
	***************** 特殊 ACcent 属性 *****************
	
	[CCM_ATTRIBUTE][NAME]_COMMENTS[/NAME][ALIAS]注释[/ALIAS][TYPE]CCM_TEXT[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]_DUPLICATE[/NAME][ALIAS]重复[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]_CREATE_TASK[/NAME][ALIAS]创建任务[/ALIAS][TYPE]CCM_TOGGLE[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]_IS_MODIFIABLE[/NAME][ALIAS]对象可被修改[/ALIAS][TYPE]CCM_TOGGLE[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]IS_MODIFIABLE[/NAME][ALIAS]对象可被修改[/ALIAS][TYPE]CCM_TOGGLE[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]has_duplicate[/NAME][ALIAS]重复项[/ALIAS][TYPE]CCM_RELATION[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]attachment[/NAME][ALIAS]附件[/ALIAS][TYPE]CCM_RELATION[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]associated_task[/NAME][ALIAS]关联的任务[/ALIAS][TYPE]CCM_RELATION[/TYPE][/CCM_ATTRIBUTE]
	
	***************** 特殊 IBM Rational Change 标识 *****************
	
	[CCM_ATTRIBUTE][NAME]_ATTACHMENT_NAME[/NAME][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]_ATTACHMENT_COMMENT[/NAME][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]_ATTACHMENT_IS_BINARY[/NAME][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]_ATTACHMENT_IS_ASCII[/NAME][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]_ATTACHMENT_TYPE[/NAME][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]START_HERE[/NAME][ALIAS]提交表单[/ALIAS][TYPE]CCM_VALUELISTBOX[/TYPE][/CCM_ATTRIBUTE]
	
	***************** 文本替换变量 *****************
	
	[CCM_ATTRIBUTE][NAME]ChangeRequestProcessImage[/NAME][ALIAS]no_cr_process.gif[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	
	***************** 文本替换变量 *****************
	
	[CCM_ATTRIBUTE][NAME]Problem_Identifier[/NAME][ALIAS]变更请求[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]Problem_Identifier_Plural[/NAME][ALIAS]变更请求[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]Problem_Identifier_Abbr[/NAME][ALIAS]CR[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	
	***************** 文本替换变量 *****************
	
	[CCM_ATTRIBUTE][NAME]DUPLICATE[/NAME][ALIAS]重复项[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]QUERY_STRING[/NAME][ALIAS]查询字符串[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]cr_modifications[/NAME][ALIAS]显示修改事件[/ALIAS][TYPE]CCM_TOGGLE[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]cr_transitions[/NAME][ALIAS]显示转变注释[/ALIAS][TYPE]CCM_TOGGLE[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]cr_notes[/NAME][ALIAS]显示备注[/ALIAS][TYPE]CCM_TOGGLE[/TYPE][/CCM_ATTRIBUTE]
	
	***************** 实用程序 *****************
	
	[CCM_ATTRIBUTE][NAME]TRANSITION_USER[/NAME][ALIAS]转变用户[/ALIAS][TYPE]CCM_LISTBOX[/TYPE][/CCM_ATTRIBUTE]
	
	***************** 概要文件属性 *****************
	
	[CCM_ATTRIBUTE][NAME]report_window_target[/NAME][ALIAS]报告窗口目标[/ALIAS][TYPE]CCM_VALUELISTBOX[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]report_link_target[/NAME][ALIAS]报告链接目标[/ALIAS][TYPE]CCM_VALUELISTBOX[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]fontsize[/NAME][ALIAS]字体大小[/ALIAS][TYPE]CCM_LISTBOX[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]user_default_home_page[/NAME][ALIAS]报告链接目标[/ALIAS][TYPE]CCM_LISTBOX[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]defaultReport[/NAME][ALIAS]缺省报告[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]reportIncremental[/NAME][ALIAS]增量报告[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]reportIncrementalSize[/NAME][ALIAS]增量报告大小[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]object_scope[/NAME][ALIAS]对象作用域[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]object_scope_lifecycle[/NAME][ALIAS]对象作用域生命周期[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]cr_notes[/NAME][ALIAS]CR 说明[/ALIAS][TYPE]CCM_TOGGLE[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]cr_transitions[/NAME][ALIAS]CR 转变[/ALIAS][TYPE]CCM_TOGGLE[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]cr_modifications[/NAME][ALIAS]CR 修改[/ALIAS][TYPE]CCM_TOGGLE[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]firstname[/NAME][ALIAS]用户的名字[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]lastname[/NAME][ALIAS]用户的姓氏[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	
	***************** 任务属性 *****************
	
	[CCM_ATTRIBUTE][NAME]task_subsys[/NAME][ALIAS]任务子系统[/ALIAS][TYPE]CCM_LISTBOX[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]task_description[/NAME][ALIAS]描述[/ALIAS][TYPE]CCM_TEXT[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]priority[/NAME][ALIAS]优先级[/ALIAS][TYPE]CCM_LISTBOX[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]est_completion_date[/NAME][ALIAS]估算的完成日期[/ALIAS][TYPE]CCM_DATE[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]est_duration[/NAME][ALIAS]估算的持续时间[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]actual_duration[/NAME][ALIAS]实际持续时间[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]registration_date[/NAME][ALIAS]注册日期[/ALIAS][TYPE]CCM_DATE[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]completion_date[/NAME][ALIAS]完成日期[/ALIAS][TYPE]CCM_DATE[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]asgndate_begin[/NAME][ALIAS]已分配,晚于[/ALIAS][TYPE]CCM_DATE[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]asgndate_end[/NAME][ALIAS]已分配,早于[/ALIAS][TYPE]CCM_DATE[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]compdate_begin[/NAME][ALIAS]已完成,晚于[/ALIAS][TYPE]CCM_DATE[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]compdate_end[/NAME][ALIAS]已完成,早于[/ALIAS][TYPE]CCM_DATE[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]completed_id[/NAME][ALIAS]已完成的标识[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]completed_in[/NAME][ALIAS]完成位置[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]assigner[/NAME][ALIAS]分配者[/ALIAS][TYPE]CCM_USER[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]resolver[/NAME][ALIAS]解决者[/ALIAS][TYPE]CCM_USER[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]assignment_date[/NAME][ALIAS]分配日期[/ALIAS][TYPE]CCM_DATE[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]release[/NAME][ALIAS]发行版[/ALIAS][TYPE]CCM_LISTBOX[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]keyword[/NAME][ALIAS]关键字[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]
	
	***************** 对象属性 *****************
	
	[CCM_ATTRIBUTE][NAME]owner[/NAME][ALIAS]对象的所有者[/ALIAS][TYPE]CCM_USER[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]subsystem[/NAME][ALIAS]子系统[/ALIAS][TYPE]CCM_STRING[/TYPE][/CCM_ATTRIBUTE]

	[CCM_ATTRIBUTE][NAME]TASKSTATES[/NAME][ALIAS]任务状态[/ALIAS][TYPE]CCM_LISTBOX[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]TASK_DATABASE[/NAME][ALIAS]任务数据库[/ALIAS][TYPE]CCM_LISTBOX[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]all_releases[/NAME][ALIAS]所有发行版[/ALIAS][TYPE]CCM_LISTBOX[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]inactive_releases[/NAME][ALIAS]不活动的发行版[/ALIAS][TYPE]CCM_LISTBOX[/TYPE][/CCM_ATTRIBUTE]
	[CCM_ATTRIBUTE][NAME]active_releases[/NAME][ALIAS]活动的发行版[/ALIAS][TYPE]CCM_LISTBOX[/TYPE][/CCM_ATTRIBUTE]

IBM Rational Change 属性为:

	[CCM_ATTRIBUTE]
		[NAME]
			IBM Rational Change 的属性名称。
		[/NAME]
		[TYPE]
			Web 可视化数据类型,
			可用的类型包括:CCM_STRING、CCM_TEXT、CCM_LISTBOX
			和 CCM_VALUELISTBOX。
		[/TYPE]
		[INTERFACE NAME]
			(可选)基于接口的别名。
			有多少接口,就可以有多少接口选项。
			其中,“INTERFACE NAME”和“/INTERFACE NAME”是字面值接口名称。
		[/INTERFACE NAME]...
		[ALIAS]
			属性的缺省别名值。如果未使用接口选项,
			或者如果未指定用户的接口,那么将返回该值。
[ALIAS] 标记集定义缺省值,如果不存在任何 [ALIAS] 标记,
			那么将返回 [NAME]。
		[/ALIAS]
	[/CCM_ATTRIBUTE]

通过 getName() 方法识别 [NAME]。 通过 getType() 方法识别 [TYPE]。 通过 getLabel() 方法识别 [ALIAS]。 无法通过 api 使用 [INTERFACE NAME] 选项。

返回结果是 apiData 类的实例。

 参数:
	apiUser         aUser   :当前 api 用户的登录数据。
	scalar          cfgName :要包含新属性的新配置文件的名称,
	                          将自动添加“.cfg”扩展名。
	apiObjectVector attrData:要由 api 函数处理的数据。
 
返回:apiData
来自服务器的返回消息。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $attrData = new ChangeSynergy::apiObjectVector();
		my $objData = new ChangeSynergy::apiObjectData();
		$objData->setName("cost");
		$objData->setType("CCM_STRING");
		$objData->setLabel("Cost");
		$attrData->addDataObject($objData);
		my $objData = new ChangeSynergy::apiObjectData();
		$objData->setName("customer_priority");
		$objData->setType("CCM_LISTBOX");
		$objData->setLabel("Customer Priority");
		$attrData->addDataObject($objData);
		my $objData = new ChangeSynergy::apiObjectData();

		$objData->setName("version_fixed");
		$objData->setType("CCM_STRING");
		$objData->setLabel("Version Fixed");
		$attrData->addDataObject($objData);
		$tmp = $csapi->SetAttributes($aUser, "api_attributes", $attrData);
		print $tmp->getResponseData();
	};
	if ($@)
	{
		print $@;
	}
setFolderSecurityRule

设置给定文件夹的文件夹安全信息。文件夹安全信息包含文件夹名称、读安全性成员和写安全性成员。 您还可以通过提供没有任何读者或编写者的文件夹名称来清空规则。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser :当前 api 用户的登录数据。
	FolderSecurityrule folderRule :文件夹的文件夹安全规则对象。
	scalar             objectType :文件夹的对象类型。
	scalar             formatType :文件夹的格式类型:报告、查询或报告格式。
	scalar             configType :报告的配置位置。
 返回:apiData
包含关于更新成功与否消息的 apiData。
 
示例:
 

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\angler\\ccmdb\\cm_database");


		my $globals = new ChangeSynergy::Globals();
		
		#Get the folder security rule for the "all" CR Shared query folder.

		my $folderRule = $csapi->getFolderSecurityRule($aUser, "", $globals->{PROBLEM_TYPE}, $globals->{QUERY},
						 $globals->{SHARED_PROFILE});
		
		$folderRule->addReadMember("someone");
		$folderRule->addWriteMember("someone else");
		

		my $result = $csapi->setFolderSecurityRule($aUser, $folderRule, $globals->{PROBLEM_TYPE}, $globals->{QUERY}, $globals->{SHARED_PROFILE});
		print $result->getResponseData() . "\n";
	};
	if ($@)
	{
		print $@;
	}
setQueryConfigType

在运行查询时,设置要使用的 config 类型。有四种 config 类型可供指定:用户、共享、系统和所有。用户 config 类型将仅搜索用户保存的信息。共享 config 类型将仅搜索共享 config,而系统 config 类型将仅搜索系统 config。“所有”类型将搜索用户 config,然后搜索共享 config,最后搜索系统 config,并运行第一个与请求匹配的查询。

 参数:
	scalar configType:要在其中搜索查询的 config 条目。
	

有效的 Config 类型:这些类型在 Globals 类中定义。
        $self->{ALL}       		// 用户、共享和系统。返回发现的第一项。
        $self->{USER_PROFILE}	// 单个用户概要文件数据。
        $self->{SHARED_PROFILE} // 共享概要文件数据。
	       $self->{SYSTEM_CONFIG}  // 系统 config 数据。
 示例:
	my $csapi = new ChangeSynergy::csapi();
 	eval
	{


		my $globals = new ChangeSynergy::Globals();
		
		$csapi->setUpConnection("http://your_hostname:port/your_context");

		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
				
		#set the config type for the query.
 		$csapi->setQueryConfigType($globals->{USER_PROFILE});
 		or
 		$csapi->setQueryConfigType($globals->{SHARED_PROFILE});
 		or
 		$csapi->setQueryConfigType($globals->{SYSTEM_CONFIG});
 		or
 		$csapi->setQueryConfigType($globals->{ALL});
 		
 		#set the config type for the report format.
 		$csapi->setReportConfigType($globals->{USER_PROFILE});
 		or
 		$csapi->setReportConfigType($globals->{SHARED_PROFILE});
 		or
 		$csapi->setReportConfigType($globals->{SYSTEM_CONFIG});
 		or
 		$csapi->setReportConfigType($globals->{ALL});
	

		my $tmpstr = $csapi->ImmediateReportHtml($aUser, "Basic Summary", "Basic Summary Report");
 		
	};
	if ($@)
	{
		print $@;
	}
setReportConfigType

在运行报告时,设置要使用的 config 类型。有四种 config 类型可供指定:用户、共享、系统和所有。用户 config 类型将仅搜索用户保存的信息。共享 config 类型将仅搜索共享 config,而系统 config 类型将仅搜索系统 config。“所有”类型将搜索用户 config,然后搜索共享 config,最后搜索系统 config,并运行第一个与请求匹配的报告。

 参数:
	scalar configType:要在其中搜索报告的 config 条目。
	

有效的 Config 类型:这些类型在 Globals 类中定义。
  $self->{ALL}       		// 用户、共享和系统。返回发现的第一项。
		$self->{USER_PROFILE}	// 单个用户概要文件数据。
		$self->{SHARED_PROFILE} // 共享概要文件数据。
		$self->{SYSTEM_CONFIG}  // 系统 config 数据。
 示例:
	my $csapi = new ChangeSynergy::csapi();
 	eval
	{


		my $globals = new ChangeSynergy::Globals();
		
		$csapi->setUpConnection("http://your_hostname:port/your_context");

		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		
		
		#set the config type for the report.
 		$csapi->setReportConfigType($globals->{USER_PROFILE});
 		or
 		$csapi->setReportConfigType($globals->{SHARED_PROFILE});
 		or
 		$csapi->setReportConfigType($globals->{SYSTEM_CONFIG});
 		or
 		$csapi->setReportConfigType($globals->{ALL});
	

		my $tmpstr = $csapi->ImmediateReportHtml($aUser, "Basic Summary", "Basic Summary Report");
 		
	};
	if ($@)
	{
		print $@;
	}
setUpConnection

设置用于调用 API 函数的连接信息。

 参数:
	scalar URL:应用程序的 URL
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
	};
	if ($@)
	{
		print $@;
	}
ShowCRHtml

以 HTML Web 页面形式显示变更请求的详细信息。IBM Rational Change 服务器将确定要使用的模板。返回结果是 apiData 类的实例。

 注:返回值是完整的 HTML 页面。<HTML>...</HTML>
       可以将返回值另存为 .html 文件,或者装入
       浏览器窗口/控件。
 参数:
	apiUser aUser        :当前 api 用户的登录数据。
	scalar  problemNumber:要引用的变更请求标识/问题号标识。
	scalar  relationName :有效的 IBM Rational Synergy/IBM Rational Change 关系名称。
	scalar  isModifiable :["true"|"false"] 中任一项的字符串表示法。
 返回:apiData
html 页面形式的完整显示表单。
 示例:
 

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->ShowCRHtml($aUser, "1347", "child_cr", "true");
	};
	if ($@)
	{
		print $@;
	}
ShowCRHtml

以 HTML Web 页面形式显示变更请求的详细信息。IBM Rational Change 服务器将使用提供的模板名称。返回结果是 apiData 类的实例。

 注:返回值是完整的 HTML 页面。<HTML>...</HTML>
       可以将返回值另存为 .html 文件,或者装入
       浏览器窗口/控件。
 参数:
	apiUser aUser        :当前 api 用户的登录数据。
	scalar  problemNumber:要引用的变更请求标识/问题号标识。
	scalar  templateName :要装入的 IBM Rational Change 模板的名称
                        ([CCM_TEMPLATE][NAME]template name[/NAME]...[/CCM_TEMPLATE])。
	scalar  relationName :有效的 IBM Rational Synergy/IBM Rational Change 关系名称。
	scalar  isModifiable :["true"|"false"] 中任一项的字符串表示法。

返回:apiData html 页面形式的完整显示表单。

 示例:
 

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->ShowCRHtml($aUser, "1347", "CRDetail", undef, undef);
	};
	if ($@)
	{
		print $@;
	}
ShowCRUrl

以 HTML Web 页面形式显示变更请求的详细信息。IBM Rational Change 服务器将确定要使用的模板。返回结果是 apiData 类的实例。

 注:返回值是完整的 URL 地址
       可以将返回值另存为链接,或者装入
       浏览器窗口/控件。
 参数:
	apiUser aUser        :当前 api 用户的登录数据。
	scalar  problemNumber:要引用的变更请求标识/问题号标识。
	scalar  relationName :有效的 IBM Rational Synergy/IBM Rational Change 关系名称。
	scalar  isModifiable :["true"|"false"] 中任一项的字符串表示法。
 返回:apiData
html 页面形式的完整显示表单。
 示例:
 

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->ShowCRUrl($aUser, "1347", "child_cr", "true");
	};
	if ($@)
	{
		print $@;
	}
ShowCRUrl

以 HTML Web 页面形式显示变更请求的详细信息。IBM Rational Change 服务器将使用提供的模板名称。返回结果是 apiData 类的实例。

 注:返回值是完整的 URL 地址。
       可以将返回值另存为链接,或者装入
       浏览器窗口/控件。
 参数:
	apiUser aUser        :当前 api 用户的登录数据。
	scalar  problemNumber:要引用的变更请求标识/问题号标识。
	scalar  templateName :要装入的 IBM Rational Change 模板的名称
                        ([CCM_TEMPLATE][NAME]template name[/NAME]...[/CCM_TEMPLATE])。
	scalar  relationName :有效的 IBM Rational Synergy/IBM Rational Change 关系名称。
	scalar  isModifiable :["true"|"false"] 中任一项的字符串表示法。

返回:apiData URL 地址形式的显示表单。

 示例:
 

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->ShowCRUrl($aUser, "1347", "CRDetail", undef, undef);
	};
	if ($@)
	{
		print $@;
	}
ShowTaskHtml

以 HTML Web 页面形式显示任务的详细信息。IBM Rational Change 服务器将根据任务的当前状态值确定要使用的模板。 返回结果是 apiData 类的实例。

 注:返回值是完整的 HTML 页面。<HTML>...</HTML>
       可以将返回值另存为 .html 文件,或者装入
       浏览器窗口/控件。
 参数:
	apiUser aUser       :当前 api 用户的登录数据。
	scalar  taskNumber  :要引用的任务标识。
	scalar  relationName:有效的 IBM Rational Synergy/IBM Rational Change 关系名称。
	scalar  isModifiable:["true"|"false"] 中任一项的字符串表示法。
 返回:apiData
HTML 页面形式的显示任务详细信息页面。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->ShowTaskHtml($aUser, "1", undef, undef);
	};
	if ($@)
	{
		print $@;
	}
ShowTaskHtml

以 HTML Web 页面形式显示任务的详细信息。IBM Rational Change 服务器将使用提供的模板名称。返回结果是 apiData 类的实例。

 注:返回值是完整的 HTML 页面。<HTML>...</HTML>
       可以将返回值另存为 .html 文件,或者装入
       浏览器窗口/控件。
 参数:
	apiUser aUser       :当前 api 用户的登录数据。
	scalar  taskNumber  :要引用的任务标识。
	scalar  templateName:要装入的 IBM Rational Change 模板的名称
	                      ([CCM_TEMPLATE][NAME]template name[/NAME]...[/CCM_TEMPLATE])。
	scalar  relationName:有效的 IBM Rational Synergy/IBM Rational Change 关系名称。
	scalar  isModifiable:["true"|"false"] 中任一项的字符串表示法。
 返回:apiData
HTML 页面形式的显示任务详细信息页面。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->ShowTaskHtml($aUser, "1", "TaskDetails", undef, undef);
	};
	if ($@)
	{
		print $@;
	}
ShowTaskUrl

以 HTML Web 页面形式显示任务的详细信息。IBM Rational Change 服务器将根据任务的当前状态值确定要使用的模板。 返回结果是 apiData 类的实例。

 注:返回值是完整的 URL 地址。
       可以将返回值另存为链接,或者装入
       浏览器窗口/控件。
 参数:
	apiUser aUser       :当前 api 用户的登录数据。
	scalar  taskNumber  :要引用的任务标识。
	scalar  relationName:有效的 IBM Rational Synergy/IBM Rational Change 关系名称。
	scalar  isModifiable:["true"|"false"] 中任一项的字符串表示法。
 返回:apiData
指向显示任务详细信息页面的 URL。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->ShowTaskUrl($aUser, "1", undef, undef);
	};
	if ($@)
	{
		print $@;
	}
ShowTaskUrl

以 HTML Web 页面形式显示任务的详细信息。IBM Rational Change 服务器将使用提供的模板名称。返回结果是 apiData 类的实例。

 注:返回值是完整的 URL 地址。
       可以将返回值另存为链接,或者装入
       浏览器窗口/控件。
 参数:
	apiUser aUser       :当前 api 用户的登录数据。
	scalar  taskNumber  :要引用的任务标识。
	scalar  templateName:要装入的 IBM Rational Change 模板的名称
	                      ([CCM_TEMPLATE][NAME]template name[/NAME]...[/CCM_TEMPLATE])。
	scalar  relationName:有效的 IBM Rational Synergy/IBM Rational Change 关系名称。
	scalar  isModifiable:["true"|"false"] 中任一项的字符串表示法。
 返回:apiData
指向显示任务详细信息页面的 URL。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->ShowTaskUrl($aUser, "1", "TaskDetails", undef, undef);
	};
	if ($@)
	{
		print $@;
	}
StartServerAccess

在 IBM Rational Change 服务器上重新启动服务器访问。

这是低级别 API,通常不需要显式调用。 需要阻止服务器访问(如更新配置数据或管理会话池)的操作在内部已经实施了阻止。但是,您可以出于其他原因(如正在进行数据库维护时)使用这些 API 来阻止服务器访问。

根据堆栈模型的 StartServerAccess 和 StopServerAccess 函数:每个 StopServerAccess 调用应该对应一个 StartServerAccess 调用。 例如,如果在行中调用了两次 StopServerAccess,那么也必须相应调用 StartServerAccess 两次才能复原服务器访问。

返回结果是 apiData 类的实例。

 参数:
	apiUser aUser:当前 api 用户的登录数据。
 返回:apiData
来自服务器的返回消息。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->StartServerAccess($aUser);
	};
	if ($@)
	{
		print $@;
	}
StopServerAccess

在 IBM Rational Change 服务器上停止服务器访问。

这是低级别 API,通常不需要显式调用。 需要阻止服务器访问(如更新配置数据或管理会话池)的操作在内部已经实施了阻止。但是,您可以出于其他原因(如正在进行数据库维护时)使用这些 API 来阻止服务器访问。

根据堆栈模型的 StartServerAccess 和 StopServerAccess 函数:每个 StopServerAccess 调用应该对应一个 StartServerAccess 调用。 例如,如果在行中调用了两次 StopServerAccess,那么也必须相应调用 StartServerAccess 两次才能复原服务器访问。

返回结果是 apiData 类的实例。

 参数:
	apiUser aUser:当前 api 用户的登录数据。
 返回:apiData
来自服务器的返回消息。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->StopServerAccess($aUser);
	};
	if ($@)
	{
		print $@;
	}
SubmitCR

应用已修改的变更请求数据。只会将标记为已修改的数据对象提交至 IBM Rational Change 服务器。 不应变更属性 problem_number、modify_time 和 cvid。api 类将在需要时自动处理这些属性。返回结果是 apiData 类的实例。

注:apiObjectData 的成员方法 setValue("") 将在被调用时自动设置已修改的标志。

 参数:
	apiUser         aUser:当前 api 用户的登录数据。
	apiObjectVector data :要由 api 函数处理的数据。
 
返回:apiData
仅当提交成功时,才会返回结果
 
示例:
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->SubmitCRData($aUser, "START_HERE2entered");
		my $i;

		my $j = $tmp->getDataSize();
		for($i=0;$i<$j;$i++)
		{
			if($tmp->getDataObject($i)->getRequired())
			{
				$tmp->getDataObject($i)->setValue("I must supply a value here to successfully complete a submit...");
			}
		}
		$tmp->getDataObjectByName("problem_synopsis")->setValue("I submitted this through the csapi");
		$tmp->getDataObjectByName("problem_description")->setValue("Yes, isn't this great!!!!");
		$tmp->getDataObjectByName("severity")->setValue("Showstopper");
		$tmp->getDataObjectByName("product_name")->setValue("Product A");
		$tmp->getDataObjectByName("submitter")->setValue("u00001");
		$tmp->getDataObjectByName("request_type")->setValue("Defect");
		$tmp->getDataObjectByName("crstatus")->setValue($tmp->getTransitionLink(0)->getToState());
		

		my $tmpstr = $csapi->SubmitCR($aUser, $tmp);
	};
	if ($@)
	{
		print $@;
	}
SubmitCRAssocCR

应用已修改的变更请求数据。只会将标记为已修改的数据对象提交至 IBM Rational Change 服务器。 不应变更属性 problem_number、modify_time 和 cvid。api 类将在需要时自动处理这些属性。返回结果是 apiData 类的实例。

注:apiObjectData 的成员方法 setValue("") 将在被调用时自动设置已修改的标志。

 参数:
	apiUser         aUser        :当前 api 用户的登录数据。
	apiObjectVector data         :要由 api 函数处理的数据。
	scalar          relationName :有效的 IBM Rational Synergy/IBM Rational Change 关系名称。
	scalar          problemNumber:要引用的变更请求标识/问题号标识。
 
返回:apiData
仅当提交和关联成功时,才会返回结果
 
示例 1:
 

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->SubmitCRData($aUser, "START_HERE2entered");
		my $i;

		my $j = $tmp->getDataSize();
		for($i=0;$i<$j;$i++)
		{
			if($tmp->getDataObject($i)->getRequired())
			{
				$tmp->getDataObject($i)->setValue("I must supply a value here to successfully complete a submit...");
			}
		}
		$tmp->getDataObjectByName("problem_synopsis")->setValue("I submitted this through the csapi");
		$tmp->getDataObjectByName("problem_description")->setValue("Yes, isn't this great!!!!");
		$tmp->getDataObjectByName("severity")->setValue("Showstopper");
		$tmp->getDataObjectByName("product_name")->setValue("Product A");
		$tmp->getDataObjectByName("submitter")->setValue($aUser->getUserName());
		$tmp->getDataObjectByName("request_type")->setValue("Defect");
		$tmp->getDatagetDataObjectByNameObject("crstatus")->setValue($tmp->getTransitionLink(0)->getToState());
		
		$tmpstr = $csapi->SubmitCRAssocCR($aUser, $tmp, "child_cr", "1347");
	};
	if ($@)
	{
		print $@;
	}
 示例 2:
 

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->CopyCRData($aUser, "1347", "COPY_child_cr2new_child");
		my $i;

		my $j = $tmp->getDataSize();
		for($i=0;$i<$j;$i++)
		{
			if($tmp->getDataObject($i)->getRequired())
			{
				$tmp->getDataObject($i)->setValue("I must supply a value here to successfully complete a submit...");
			}
			if($tmp->getDataObject($i)->getInherited())
			{
				$tmp->getDataObject($i)->setIsModified(TRUE);
			}
		}
		$tmp->getDataObjectByName("problem_synopsis")->setValue("I submitted this through the csapi");
		$tmp->getDataObjectByName("problem_description")->setValue("Yes, isn't this great!!!!");
		$tmp->getDataObjectByName("severity")->setValue("Showstopper");
		$tmp->getDataObjectByName("product_name")->setValue("Product A");
		$tmp->getDataObjectByName("submitter")->setValue("u00001");
		$tmp->getDataObjectByName("request_type")->setValue("Defect");
		$tmp->getDataObject("crstatus")->setValue($tmp->getTransitionLink(0)->getToState());
		

		my $tmpstr = $csapi->SubmitCRAssocCR($aUser, $tmp, $tmp->getTransitionLink(0)->getRelation(), "1347");
	};
	if ($@)
	{
		print $@;
	}
SubmitCRData

将变更请求提交的需求装入数据类中,可以在其中修改新变更请求的详细信息。然后,可以使用某个修改 api 函数提交已修改的数据类以更改变更请求。 返回结果是 apiObjectVector 类的实例。 注:提交“结束状态”随该 api 函数调用提供。 请参阅 apiTransitions 类描述。

 参数:
	apiUser aUser       :当前 api 用户的登录数据。
	scalar  templateName:要装入的 IBM Rational Change 模板的名称
	                      ([CCM_TEMPLATE][NAME]template name[/NAME]...[/CCM_TEMPLATE])。
 返回:apiObjectVector
数据格式的 CR 提交需求。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->SubmitCRData($aUser, "START_HERE2entered");
		my $tmpstr = $tmp->getXmlData();
	};
	if ($@)
	{
		print $@;
	}
SubmitCRHtml

以 HTML Web 页面形式装入针对提交变更请求的需求。 返回结果是 apiData 类的实例。

 注:返回值是完整的 HTML 页面。<HTML>...</HTML>
       可以将返回值另存为 .html 文件,或者装入
       浏览器窗口/控件。
	   
参数:
	apiUser aUser        :当前 api 用户的登录数据。
	scalar  templateName :要装入的 IBM Rational Change 模板的名称
                        ([CCM_TEMPLATE][NAME]template name[/NAME]...[/CCM_TEMPLATE])。
	scalar  problemNumber:要引用的变更请求标识/问题号标识。
	scalar  relationName :有效的 IBM Rational Synergy/IBM Rational Change 关系名称。
	scalar externalData  :要传递至某个提交请求的 XML 数据的字符串。
 
外部数据 XML 的格式:
 
 <EXTERNAL_CONTEXT_DATA>
 	<ATTRIBUTE NAME="attribute_name">your value</ATTRIBUTE>
 	<ATTRIBUTE NAME="attribute_name">your value</ATTRIBUTE>
 	<ATTRIBUTE NAME="attribute_name">your value</ATTRIBUTE>
 	.
 	.
 	.
 </EXTERNAL_CONTEXT_DATA>
 
返回:apiData
html 页面形式的所请求提交 CR 页面。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->SubmitCRHtml($aUser, "CRSubmit", undef, undef, undef);
	};
	if ($@)
	{
		print $@;
	}
SubmitCRUrl

以 HTML Web 页面形式装入针对提交变更请求的需求。 返回结果是 apiData 类的实例。

 注:返回值是完整的 URL 地址。
       可以将返回值另存为链接,或者装入
       浏览器窗口/控件。
	   
参数:
	apiUser aUser        :当前 api 用户的登录数据。
	scalar  templateName :要装入的 IBM Rational Change 模板的名称
                        ([CCM_TEMPLATE][NAME]template name[/NAME]...[/CCM_TEMPLATE])。
	scalar  problemNumber:要引用的变更请求标识/问题号标识。
	scalar  relationName :有效的 IBM Rational Synergy/IBM Rational Change 关系名称。
	scalar externalData  :要传递至某个提交请求的 XML 数据的字符串。
 
外部数据 XML 的格式:
 
 <EXTERNAL_CONTEXT_DATA>
 	<ATTRIBUTE NAME="attribute_name">your value</ATTRIBUTE>
 	<ATTRIBUTE NAME="attribute_name">your value</ATTRIBUTE>
 	<ATTRIBUTE NAME="attribute_name">your value</ATTRIBUTE>
 	.
 	.
 	.
 </EXTERNAL_CONTEXT_DATA>
 
返回:apiData
html 页面形式的所请求提交 CR 页面。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->SubmitCRUrl($aUser, "CRSubmit", undef, undef, undef);
	};
	if ($@)
	{
		print $@;
	}
SubmitTask

应用已修改的任务数据。只会将标记为已修改的数据对象提交至 IBM Rational Change 服务器。 不应变更属性 task_number、modify_time 和 cvid。api 类将在需要时自动处理这些属性。返回结果是 apiData 类的实例。

注:apiObjectData 的成员方法 setValue("") 将在被调用时自动设置已修改的标志。

 参数:
	apiUser         aUser:当前 api 用户的登录数据。
	apiObjectVector data :要由 api 函数处理的数据。
 返回:apiData
仅当提交成功时,才会返回结果
 示例 1:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->SubmitTaskData($aUser, "TaskCreate");
		

		my $i;

		my $j = $tmp->getDataSize();
		for($i=0;$i<$j;$i++)
		{
			if($tmp->getDataObject($i)->getRequired())
			{
				$tmp->getDataObject($i)->setValue("I must supply a value here to successfully complete a submit...");
			}
		}
		$tmp->getDataObjectByName("task_synopsis")->setValue("I modified the synopsis through the csapi...");
		$tmp->getDataObjectByName("task_description")->setValue("I modified the description through the csapi...");
		$tmp->getDataObjectByName("priority")->setValue("high");
		$tmp->getDataObjectByName("resolver")->setValue($aUser->getUserName());
		my $tmpstr = $csapi->SubmitTask($aUser, $tmp);
	};
	if ($@)
	{
		print $@;
	}
 示例 2:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->CopyTaskData($aUser, "12", "CreateTask");
		

		my $i;

		my $j = $tmp->getDataSize();
		for($i=0;$i<$j;$i++)
		{
			if($tmp->getDataObject($i)->getRequired())
			{
				if($tmp->getDataObject($i)->getValue() == NULL)
					$tmp->getDataObject($i)->setValue("I must supply a value here to successfully complete a submit...");
			}
		}
		$tmp->getDataObjectByName("task_synopsis")->setValue("I modified the synopsis through the csapi...");
		$tmp->getDataObjectByName("task_description")->setValue("I modified the description through the csapi...");
		$tmp->getDataObjectByName("priority")->setValue("high");
		$tmp->getDataObjectByName("resolver")->setValue($aUser->getUserName());
		my $tmpstr = $csapi->SubmitTask($aUser, $tmp);
	};
	if ($@)
	{
		print $@;
	}
SubmitTaskAssocCR

应用已修改的任务数据。只会将标记为已修改的数据对象提交至 IBM Rational Change 服务器。 不应变更属性 task_number、modify_time 和 cvid。api 类将在需要时自动处理这些属性。返回结果是 apiData 类的实例。

注:apiObjectData 的成员方法 setValue("") 将在被调用时自动设置已修改的标志。

 参数:
	apiUser         aUser        :当前 api 用户的登录数据。
	apiObjectVector data         :要由 api 函数处理的数据。
	scalar          relationName :有效的 IBM Rational Synergy/IBM Rational Change 关系名称。
	scalar          problemNumber:要引用的变更请求标识/问题号标识。
 返回:apiData
仅当提交和关联成功时,才会返回结果
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->SubmitTaskData($aUser, "TaskCreate");
		

		my $i;

		my $j = $tmp->getDataSize();
		for($i=0;$i<$j;$i++)
		{
			if($tmp->getDataObject($i)->getRequired())
			{
				$tmp->getDataObject($i)->setValue("I must supply a value here to successfully complete a submit...");
			}
		}
		$tmp->getDataObjectByName("task_synopsis")->setValue("I modified the synopsis through the csapi...");
		$tmp->getDataObjectByName("task_description")->setValue("I modified the description through the csapi...");
		$tmp->getDataObjectByName("priority")->setValue("high");
		$tmp->getDataObjectByName("resolver")->setValue($aUser->getUserName());
		my $tmpstr = $csapi->SubmitTaskAssocCR($aUser, $tmp, "associated_task", "1355");
	};
	if ($@)
	{
		print $@;
	}
SubmitTaskData

将任务提交的需求装入数据类中,可以在其中修改新任务的详细信息。然后,可以使用某个修改 api 函数提交已修改的数据类以更改任务。 返回结果是 apiObjectVector 类的实例。

 参数:
 	apiUser aUser      :当前 api 用户的登录数据。
	scalar  templateName:要装入的 IBM Rational Change 模板的名称
	                      ([CCM_TEMPLATE][NAME]template name[/NAME]...[/CCM_TEMPLATE])。
 返回:apiObjectVector
数据格式的任务提交需求。
 示例:
 

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->SubmitTaskData($aUser, "TaskCreate");
		my $tmpstr = $tmp->getXmlData();
	};
	if ($@)
	{
		print $@;
	}
SubmitTaskHtml

以 HTML Web 页面形式装入针对提交任务的需求。 返回结果是 apiData 类的实例。

 注:返回值是完整的 HTML 页面。<HTML>...</HTML>
       可以将返回值另存为 .html 文件,或者装入
       浏览器窗口/控件。
 参数:
	apiUser aUser       :当前 api 用户的登录数据。
	scalar  templateName:要装入的 IBM Rational Change 模板的名称
	                      ([CCM_TEMPLATE][NAME]template name[/NAME]...[/CCM_TEMPLATE])。
 返回:apiData
html 页面形式的所请求提交任务页面。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->SubmitTaskHtml($aUser, "TaskCreate");
	};
	if ($@)
	{
		print $@;
	}
SubmitTaskUrl

以 HTML Web 页面形式装入针对提交任务的需求。 返回结果是 apiData 类的实例。

 注:返回值是完整的 URL 地址。
       可以将返回值另存为链接,或者装入
       浏览器窗口/控件。
 参数:
	apiUser aUser       :当前 api 用户的登录数据。
	scalar  templateName:要装入的 IBM Rational Change 模板的名称
	                      ([CCM_TEMPLATE][NAME]template name[/NAME]...[/CCM_TEMPLATE])。
 返回:apiData
提交任务页面的 URL。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->SubmitTaskUrl($aUser, "TaskCreate");
	};
	if ($@)
	{
		print $@;
	}
SwitchUser

允许本地管理员用户切换为任意用户。 返回结果是 apiUser 类的实例。

 参数:

    apiUser localAdminUser:本地管理员用户的登录数据。
	scalar targetUserName :目标用户的名称。
	scalar targetRole     :目标用户的角色。(现在,Web 客户机使用术语“interface”来代替“role”的这一用法。)
	scalar targetDatabase :针对用户的 IBM Rational Synergy 数据库路径。
 返回:apiUser
包含指定信息的 apiUser 类的新实例。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $localAdminUser = $csapi->Login("admin", "localAdminPassword", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		


		my $aTargetUser = $csapi->SwitchUser($localAdminUser, "u00002", "User", "\\\\your_hostname\\ccmdb\\cm_database");
	};
	if ($@)
	{
		print $@;
	}
SyncDatabase

在中央服务器方式下,等待中央服务器将所有 CR 同步到特定数据库中。由于会自动将中央 CR 同步到所有其他数据库,因此从不需要此调用,但这允许您等待所有暂挂的更新完成。

例如,如果脚本快速修改大量 CR,那么可能需要一段时间来同步这些更改。如果脚本中的后续操作取决于正在与中央数据库同步的特定数据库,那么脚本可以调用此函数以等待所有这些更改都同步。 达到最新状态之后,该调用函数将返回,而脚本则可以继续。 将忽略该函数调用(即使正在等待)之后进行的更改。

如果数据库处于联机状态,但在一段时间内未同步任何 CR,那么将超时。 参数:

	apiUser user:当前 API 用户的登录数据。
	scalar  database:要同步和等待的数据库。必须处于联机状态。
 
返回:
不返回任何值。同步完成后,静默返回。如果没有任何更新
处于暂挂状态,将立即返回。
TaskFullName

构造任务的由四个部分组成的名称。不会检查任务是否实际存在;这只会构造由四个部分组成的名称。 参数:

	apiUser aUser:当前 api 用户的登录数据。
	scalar  taskNumber:任务号。
 
返回:标量
由四个部分组成的名称。
ToggleDebug

在 IBM Rational Change 服务器上切换调试标志。 返回结果是 apiData 类的实例。

 参数:
	apiUser aUser:当前 api 用户的登录数据。
	scalar  enable:“true”表示启用调试,“false”表示禁用调试,
	                该参数是可选参数,如果未指定,那么会将调试切换至
	                当前设置的相反设置,例如,从开到关,或从关到开。
 返回:apiData
来自服务器的返回消息。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		my $debugString = $csapi->ToggleDebug($aUser);
		or

		my $debugString = $csapi->ToggleDebug($aUser, "true");
		or

		my $debugString = $csapi->ToggleDebug($aUser, "false");
		
		print $debugString->getResponseData() . "\n";
	};
	if ($@)
	{
		print $@;
	}
TransitionCR

应用已修改的变更请求数据。只会将标记为已修改的数据对象提交至 IBM Rational Change 服务器。 不应变更属性 problem_number、modify_time 和 cvid。api 类将在需要时自动处理这些属性。返回结果是 apiData 类的实例。 注:apiObjectData 的成员方法 setValue("") 将在被调用时自动设置已修改的标志。

 参数:
	apiUser         aUser:当前 api 用户的登录数据。
	apiObjectVector data :要由 api 函数处理的数据。
 返回:apiData
仅当转换成功时,才会返回结果
 
示例:
 

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp1 = $csapi->AttributeModifyCRData($aUser, "100", "crstatus");
		or

		my $tmp1 = $csapi->AttributeModifyCRData($aUser, "100");
		or

		my $tmp1 = $csapi->ModifyCRData($aUser, "100", "CRDetail");
		or

		my $tmp1 = $csapi->GetCRData($aUser, "100", "problem_synopsis|problem_description|keyword");
		

		my $tmp2 = $csapi->TransitionCRData($aUser, "100", $tmp1->getTransitionLink(1)->getTransition());
		$tmp2->getDataObjectByName("problem_synopsis")->setValue("I modified the synopsis through the csapi...");
		$tmp2->getDataObjectByName("problem_description")->setValue("I modified the description through the csapi...");
		$tmp2->getDataObjectByName("keyword")->setValue("csapi");
  		$tmp2->getDataObjectByName("crstatus")->setValue($tmp1->getTransitionLink(1)->getToState());
		my $tmpstr = $csapi->TransitionCR($aUser, $tmp2);
	};
	if ($@)
	{
		print $@;
	}
TransitionCRData

将变更请求的详细信息装入数据类中,可以在其中修改变更请求的详细信息。然后,可以使用某个修改 api 函数提交已修改的数据类以更改变更请求。 返回结果是 apiObjectVector 类的实例。

注:转换的“起始状态”和“结束状态”随该 api 函数调用提供。 请参阅 apiTransitions 类描述。

 参数:
	apiUser aUser        :当前 api 用户的登录数据。
	scalar  problemNumber:要引用的变更请求标识/问题号标识。
	scalar  templateName :要装入的 IBM Rational Change 模板的名称
	                       ([CCM_TEMPLATE][NAME]template name[/NAME]...[/CCM_TEMPLATE])。
 返回:apiObjectVector
数据格式的变更请求详细信息。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->TransitionCRData($aUser, "100", "assigned2resolved");
		my $tmpstr = $tmp->getXmlData();
	};
	if ($@)
	{
		print $@;
	}
TransitionTask

应用已修改的任务数据。只会将标记为已修改的数据对象提交至 IBM Rational Change 服务器。 不应变更属性 task_number、modify_time 和 cvid。api 类将在需要时自动处理这些属性。

注:apiObjectData 的成员方法 setValue("") 将在被调用时自动设置已修改的标志。

 参数:
	apiUser         aUser:当前 api 用户的登录数据。
	apiObjectVector data :要由 api 函数处理的数据。
 返回:apiData
仅当转换成功时,才会返回结果
 示例:
 

	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->ModifyTaskData($aUser, "10", "TaskDetails");
		or

		my $tmp = $csapi->GetTaskData($aUser, "10", "task_synopsis|task_description|priority");
		or

		my $tmp = $csapi->TransitionTaskData($aUser, "10", "TaskDetails");
		
		$tmp->getDataObjectByName("task_synopsis")->setValue("I modified the synopsis through the csapi...");
		$tmp->getDataObjectByName("task_description")->setValue("I modified the description through the csapi...");
		$tmp->getDataObjectByName("priority")->setValue("high");
		$tmp->getDataObjectByName("status")->setValue("completed");
		my $tmpstr = $csapi->TransitionTask($aUser, $tmp);
	};
	if ($@)
	{
		print $@;
	}
TransitionTaskData

将任务的详细信息装入数据类中,可以在其中修改任务的详细信息。然后,可以使用某个修改 api 函数提交已修改的数据类以更改任务。 返回结果是 apiObjectVector 类的实例。

 参数:
	apiUser aUser       :当前 api 用户的登录数据。
	scalar  taskNumber  :要引用的任务标识。
	scalar  templateName:要装入的 IBM Rational Change 模板的名称
	                      ([CCM_TEMPLATE][NAME]template name[/NAME]...[/CCM_TEMPLATE])。
 返回:apiObjectVector
数据格式的任务详细信息。
 示例:
 

	my $csapi = new ChangeSynergy::csapi();
	
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->TransitionTaskData($aUser, "4", "TaskDetails");
		my $tmpstr = $tmp->getXmlData();
	};
	if ($@)
	{
		print $@;
	}
UninstallAPackage

卸载 IBM Rational Change 包。返回结果是 apiData 类的实例。

 参数:
	apiUser aUser       :当前 api 用户的登录数据。
	scalar  packageName :要卸载的包的名称。
 返回:apiData
仅当包卸载成功时,才会返回结果。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
	

		my $results = $csapi->UninstallAPackage($aUser, "dev_process");
		
		print $results->getResponseData();
	};
	if ($@)
	{
		print $@;
	}
UpdateIndex

根据需要更新搜索索引,而不是等待下一个安排的时间间隔。 如果已禁用索引,那么这也可以起到隐式启用索引的效果(请参阅“EnableIndexing”和“DisableIndexing”)。

 参数:
	apiUser aUser:当前 api 用户的登录数据。
 返回:apiData
来自服务器的返回消息。
 
示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->UpdateIndex($aUser);
	};
	if ($@)
	{
		print $@;
	}
ValidateLicense

验证是否可以获取该许可证。

 参数:
	apiUser aUser        :当前 api 用户的登录数据。
	scalar  licenseString:要验证的许可证标识。
 
返回:标量
true 或 false
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->ValidateLicense($aUser, "pt");
	};
	if ($@)
	{
		print $@;
	}
VerifySignatures

在指定的 CCM_E_SIGNATURE 属性上验证变更请求的电子签名。

 参数:
	apiUser aUser        :当前 api 用户的登录数据。
	scalar  problemNumber:要验证的问题号。
	scalar  attributeName:电子签名属性名称。
 
返回:标量
true 或 false
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmp = $csapi->VerifySignatures($aUser, "1", "myEig");
	};
	if ($@)
	{
		print $@;
	}
ExportProjectSecurityData

将项目安全性定义(包括角色和全局分配)从 RDS 导出到 LDIF 文件:CHANGE_APP_HOME/WEB-INF/wsconfig/tmpdir/import_<current date and time>.ldif。 可通过 API ImportProjectSecurityData 导入此文件。 只有 Rational Change 管理员用户才能使用该 API。

 参数:
	apiUser aUser :当前 api 用户的登录数据。
 
返回:apiData
有关导出成功还是失败的消息。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->ExportProjectSecurityData($aUser);
		print $tmpstr->getResponseData() . "\n";
	};
	if ($@)
	{
		print $@;
	}
ImportProjectSecurityData

将数据从通过 ExportProjectSecurityData 创建的 LDIF 文件导入到与 Rational Change 连接的 RDS。该文件必须位于 CHANGE_APP_HOME/WEB-INF/wsconfig/tmpdir 中。 只有 Rational Change 管理员用户才能使用该 API。

 参数:
	apiUser aUser :当前 api 用户的登录数据。
	scalar  importFileName:要导入的 LDIF 文件的名称。
	scalar  isUpdate:“true”表示将数据更新/添加到 RDS,
			“false”表示只将新数据添加到 RDS,而不更新现有数据。
 
返回:apiData
有关导入成功还是失败的消息。
 示例:
	my $csapi = new ChangeSynergy::csapi();
	eval
	{
		$csapi->setUpConnection("http://your_hostname:port/your_context");
		my $aUser = $csapi->Login("u00001", "u00001", "Admin", "\\\\your_hostname\\ccmdb\\cm_database");
		my $tmpstr = $csapi->ImportProjectSecurityData($aUser, "import_12_07_2010_12_41_12.ldif", true);
		print $tmpstr->getResponseData() . "\n";
	};
	if ($@)
	{
		print $@;
	}