ChangeSynergy::CreateReportDefinition
同时使用 ChangeSynergy::CreateReportDefinition 类和 csapi createReport API,以根据现有报告创建新的 Change 报告。
此 API 的用法示例:
my $csapi = new ChangeSynergy::csapi();
eval { $csapi->setUpConnection("http", "machine", 8600);
my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\machine\\ccmdb\\cm_database"); #Create an instance of the CreateReportDefinition class. my $reportDef = new ChangeSynergy::CreateReportDefinition(); #Set the required attributes. $reportDef->setName("API Created Report"); $reportDef->setBaseReport("Column"); $reportDef->setQueryString("(cvtype='problem') and (crstatus='entered')"); #Set optional attributes $reportDef->setDescription("This report was created via the Perl API"); $reportDef->setIncrementSize(7); #Only see 7 items per page. $reportDef->setFolderName("API Folder"); #Place the report into a folder named 'API Folder' #Change the list of attributes from a column report. Initial attributes are problem_number, crstatus and problem_synopsis. #Changing to just be problem_number and enterer. my @attributeLists = (); push @attributeLists, "problem_number:0:false|enterer:1:false"; $reportDef->setAttributes(\@attributeLists); #Sort first by enterer as a string and secondarily sort the problem number. my @sortOrderList = (); push @sortOrderList, "enterer:string:A|problem_number:intb:A"; $reportDef->setSortOrder(\@sortOrderList); #Create an instance of the Globals calls. my $globals = new ChangeSynergy::Globals(); #Call the 'createReport' API and add the new report to the Shared CR queries. $csapi->createReport($aUser, $reportDef, $globals->{PROBLEM_TYPE}, $globals->{SHARED_PROFILE}); }; if ($@) { print $@; }
数组 |
getAttributes() 获取属性配置字符串的数组,每个数组索引针对一个子报告。示例字符串:“problem_number:0:false|enterer:1:false”。 |
标量 |
getBaseReport() 获取创建新报告所基于的基本报告的名称。 |
标量 |
getDescription() 获取报告的描述。 |
标量 |
getFolderName() 获取将在其中创建报告的文件夹的名称。 |
标量 |
getIncrementSize() 获取将显示在标明页码的报告上的项目的数量,或如果报告未标明页码,则为 -1。 |
标量 |
getName()> 获取要创建的报告的名称。 |
标量 |
getPromptingQueryXml()> 获取定义提示查询工作方式的 XML 数据。 |
数组 |
getSortOrder() 获取排序顺序配置字符串的数组,每个数组索引针对一个子报告。示例字符串:“problem_number:intb:A”。 |
标量 |
getQueryString() 获取报告的查询字符串。 |
空 |
setAttributes(array @attributes) 设置运行报告时将检索的属性的列表。每个数组索引都是一个属性配置字符串,“problem_number:0:false|crstatus:1:false|problem_synopsis:2:false”。 |
空 |
setBaseReport(scalar baseReportName) 设置创建新报告所基于的基本报告的名称,例如“Column”或“Block”。 创建新报告时,需要基本报告名称。 |
空 |
setDescription(scalar description) 设置此报告的描述,该描述是当最终用户选择此报告时应该在报告界面中看到的文本。 |
空 |
setFolderName(scalar folderName) 设置将在其中创建报告的文件夹的名称。 如果未提供文件夹名称,则报告将创建在根目录层。 |
空 |
setIncrementSize(scalar incrementSize) 设置报告每页所显示项目的数量。如果报告未标明页码,则使用 -1。 |
空 |
setName(scalar reportName) 设置将在 Change 服务器上创建的报告的名称。 这个名称将出现在报告界面上。创建新报告时需要一个名称。 |
空 |
setPromptingQueryXml(scalar reportName) 设置报告的提示查询 XML。它定义提示查询工作方式。 |
空 |
setSortOrder(array @sortOrder) 设置运行报告时将使用的排序属性的列表。每个数组索引都是一个排序顺序配置字符串,“problem_number:intb:A”。 |
空 |
setQueryString(scalar queryString) 设置运行报告时将使用的查询字符串。例如,(cvtype='problem') 和 (crstatus='assigned')。 创建新报告时需要查询字符串。 |
初始化新创建的 ChangeSynergy::CreateReportDefinition 类,以便用于创建新报告。
my $reportDef = new ChangeSynergy::CreateReportDefinition();
获取属性配置字符串的数组。数组的每个索引都表示一个子报告。属性配置字符串示例为“problem_number:0:false|crstatus:1:false|problem_synopsis:2:false”, 它与在 CCM_PROBLEM, CCM_TASK 或 CCM_OBJECT 定义的标准配置项中出现的字符串同属一类。
返回:标量数组 属性配置字符串的数组。
获取基本报告的名称。基本报告是此报告所基于的报告,例如,“Column”或“Block”。
返回:标量 基本报告的名称。
获取报告的描述。当用户单击报告时,该描述将显示在 Change 报告界面中。
返回:标量 报告的描述。
获取放置新报告的文件夹的名称。如果为空,则新报告将不会放置到文件夹中。
返回:标量 在其中创建报告的文件夹的名称。
获取将显示在标明页码的报告上的项目的数量。如果返回值为 -1,则表示此报告未标明页码。
返回:标量 要显示在页面上的结果的数量,如果是未标页码的报告,则为 -1。
获取报告的名称,该名称将显示在 Change 报告界面中。
返回:标量 报告将在 change 服务器上使用的名称。
获取提示查询 XML 数据。
返回:标量 XML 格式的提示查询数据。
获取排序顺序配置字符串的数组。数组的每个索引都表示一个子报告。排序顺序配置字符串示例为“problem_number:intb:A”,它与在 CCM_PROBLEM、CCM_TASK 或 CCM_OBJECT 定义的标准配置项中出现的字符串同属一类。
返回:标量数组 排序顺序配置字符串的数组。
获取报告的查询字符串。
返回:标量 查询字符串。
设置运行报告时将检索的每个子报告的属性列表。每个数组索引表示每个子报告的一个属性配置字符串。必须设置的字符串是 name:order:span 属性。 例如,“problem_number:0:false|crstatus:1:false|problem_synopsis:2:false”。
传入的参数必须为数组引用, \@array。
该设置只能用于特别报告类型,而不能用于系统或报告构建器报告,因为其格式是硬编码的,不能动态更改。
参数: 数组引用属性:引用属性配置字符串的数组。
示例: my $reportDef = new ChangeSynergy::CreateReportDefinition(); my @attributeLists = (); push @attributeLists, "problem_number:0:false|enterer:1:false"; $reportDef->setAttributes(\@attributeLists);
设置创建新报告所基于的基本报告的名称。基本报告必须已经存在于 Change 服务器之上。可能的基本报告示例为“Column”和“Block”。
必须设置该参数,csapi->createReport 函数才能起作用。
参数: 标量:基本报告的名称。
示例: my $reportDef = new ChangeSynergy::CreateReportDefinition(); $reportDef->setBaseReport("Column");
设置最终用户将在 Change 报告界面中看到的报告描述文本。
参数: 标量:报告的描述。
示例: my $reportDef = new ChangeSynergy::CreateReportDefinition(); $reportDef->setDescription("All entered CRs");
设置将在其中创建报告的文件夹的名称。如果文件夹并不存在,将尝试创建一个文件夹。如果未指定文件夹名称,则报告将创建在根文件夹中。
参数: 标量:放置报告的文件夹的名称,或如果为空,则不存在文件夹。
示例: my $reportDef = new ChangeSynergy::CreateReportDefinition(); $reportDef->setFolderName("API Folder");
设置报告结果每页所显示项目的数量。指定 -1 表示该报告将不使用页面标明。
参数: 标量:每页可查看项目的数量,或 -1 表示未标明页码。
示例: my $reportDef = new ChangeSynergy::CreateReportDefinition(); $reportDef->setIncrementSize(20);
设置报告的名称,这是最终用户应在 Change 报告界面中看到并进行交互的名称。 如果报告名称已经存在,则此名称应该为“报告名称 (x)”,其中 x 为第一个自由选择的数字。该命名方案与 Web 界面中使用的命名方案相同。
必须设置该参数,csapi->createReport 函数才能起作用。
参数: 标量:报告在创建时应该具有的名称。
示例: my $reportDef = new ChangeSynergy::CreateReportDefinition(); $reportDef->setName("API report");
设置报告的提示查询 XML 数据。最好通过界面或导出并导入现有报告的方式来创建提示报告。如果了解 XML 格式,则只需要设置该设置。
参数: 标量:定义提示查询的 XML 数据。
示例: my $reportDef = new ChangeSynergy::CreateReportDefinition(); $reportDef->setPromptingQueryXml(XML DATA);
设置运行报告时用于排序报告的每个子报告的排序属性列表。每个数组索引表示每个子报告的一个排序顺序配置字符串。必须设置的字符串是 attribute name:sort type:A 或 D。其中 A 或 D 表示升序或降序。 示例字符串为“problem_number:intb:A”。
传入的参数必须为数组引用, \@array。
参数: 数组引用属性:引用排序顺序配置字符串的数组。
示例: my $reportDef = new ChangeSynergy::CreateReportDefinition(); my @sortOrderList = (); push @sortOrderList, "enterer:string:A|problem_number:intb:A"; $reportDef->setSortOrder(\@sortOrderList);
设置运行报告时将使用的查询字符串。
必须设置该参数,csapi->createReport 函数才能起作用。
参数: 标量:查询字符串。
示例: my $reportDef = new ChangeSynergy::CreateReportDefinition(); $reportDef->setQueryString("(cvtype='problem') and (crstatus='entered')");