Skip to Content
Author's profile photo Xiaoping Zheng

BO示例脚本程序

作者:Shawn Penner,现就职于SAP

原文地址(英语):

http://scn.sap.com/people/shawn.penner/blog/2013/06/04/scripts-and-samples

 

作者简介

本文作者 Shawn Penner 在SAP BusinessObject(前身Crystal Decisions) 的技术支持部分已有超过10年的工作经验。在他的实际工作中,他曾写过很多基于BO SDK的示例代码,用以实现诸如:功能演示,回避产品功能限制,修复一些系统问题等场景。
本文收集了一些场景的样例代码,并展示了如何去使用它们。

作者的一些相关博文


标题:清理系统中的垃圾文件

简介

此文包含了一段示例程序用以进行FRS 服务器里的文件清理。这是因为使用BO自带的reposcan工具是能够清除掉CMS DB中的垃圾infoobjects信息,但是对于FRS 硬盘中的垃圾文件则无法清除。这里的代码便可用于实现清理FRS的需求。

示例代码

扫描并清理FRS 服务器
处理 RepoScan XML  (处理reposcan 日志文件从而确定需要清理的垃圾文件并进行清理)

标题: 清理大量的报表实例

中文翻译版本:(翻译中)

简介

在此文中,包含了一系列不同的代码用以实现不同的清理需求。产品自带的功能可以设定一个实例数的上限值,但是如果有上千甚至百万级的实例数的时候,通过该功能去实现是有些困难的。此文章便包含了不同的示例代码去解决这些问题。而且还包含了一个额外的示例代码用来实现暂停所有的重复执行的计划从而使得能够在没有新的实例产生的情况下对当前的实例进行处理

示例代码

删除一个报表的所有实例 ——基本
删除所有的失败的实例
删除指定时间内被创建的所有实例
手动方式删除实例
暂停和继续所有的实例

标题:重新指定WebI报表的Universe语义层

简介

一个非常常见的问题是我们需要去重新为大量的webi报表重新指定Universe语义层。作者在过去做过大量的类似的工作并将相关的内容整理到了这篇文章中。不过需要注意的是,这篇文章的方法仅适用于XI R2,XI 3.x的版本。在BI 4开始相关的SDK类库被移除了因此本文的方法在BI 4中并不能适用。从BI 4 SP6开始,通过Restful SDK,我们又可以实现为webi报表指定universe的功能。但是目前作者还没有创建出类似的示例程序。而且,目前BI 4的Restful SDK仅支持针对单一语义层的WebI报表进行data provider的变更,这些在后续应该会做相应改进吧。

示例代码

自动检测并重新指定语义层
脚本检索并替换语义层
为独立的webi报表重新指定语义层

标题:用户管理的脚本代码

简介

本文包含了一系列实现用户管理功能的示例代码。它可用来处理大量的重复性管理用户,用户组的操作。

示例代码

有效化,无效化所有用户
统计报表,示例的数量
改变所有者
复制用户的基本设定
强制登出
删除别名
更改用户类型为命名用户或并行用户
添加别名

脚本代码的使用方法

以上的代码主要是基于BusinessObjects Enterprise XI 3.1 平台设计的。如果是一个默认安装的系统,它们大多数可以简单的通过捆绑的web程序(Infoview,CMC等)来执行。

针对BOE XI 3.x:

对于基于Java编写的jsp脚本用以处理用户或InfoObjects

  1. 把脚本代码复制到文件夹 “C:\Program Files (x86)\Business Objects\Tomcat7\webapps\InfoViewApp”
  2. 确保已经将如用户名,密码,CMS名等等需要更改的内容指定为您系统中相应的内容
  3. 确保Tomcat在运行 (如果已经在运行,是没必要去重启它的)
  4. 通过打开浏览器访问连接”http://MyServer:8080/InfoViewApp/MyScript.jsp“来执行脚本的代码逻辑。

 

对于基于Java编写的jsp脚本用以处理Webi 报表

  1. 把脚本代码复制到文件夹”C:\Program Files (x86)\Business Objects\Tomcat7\webapps\AnalyticalReporting”.
  2. 确保已经将如用户名,密码,CMS名等等需要更改的内容指定为您系统中相应的内容
  3. 确保Tomcat在运行 (如果已经在运行,是没必要去重启它的)
  4. 通过打开浏览器访问连接”http://MyServer:8080/AnalyticalReporting/MyScript.jsp“来执行脚本的代码逻辑。

 

对于基于Java编写的jsp脚本用以处理Crystal Reports 报表(水晶报表)

  1. 把脚本代码复制到文件夹”C:\Program Files (x86)\Business Objects\Tomcat7\webapps\CrystalReports”
  2. 确保已经将如用户名,密码,CMS名等等需要更改的内容指定为您系统中相应的内容
  3. 确保Tomcat在运行 (如果已经在运行,是没必要去重启它的)
  4. 通过打开浏览器访问连接”http://MyServer:8080/CrystalReports/MyScript.jsp“来执行脚本的代码逻辑。

 

对已VBScript编写的脚本

  1. 确保已经将如用户名,密码,CMS名等等需要更改的内容指定为您系统中相应的内容
  2. VBS scripts 仅可以在一个安装了BO .NET SDK的Windows环境中运行。BO .NET SDK可以通过安装BO的服务器或客户端组件来实现。
  3. VBS scripts 在 XI R2 版本是被官方支持的, 但在 XI 3.x 和 BI4 并不被官方支持,虽然通常这些代码也是可以运行的。
  4. 如果使用的是32位的Windows系统,简单通过双击就可以执行代码(此方法可能将得不到一些debug信息的输出),或者通过命令行输入”cscript.exe MyScript.vbs”来执行。
  5. 如果使用的是64位的Windows系统,则需通过命令行指定32位版本的cscript来执行,如 “%windir%\SysWOW64\cscript.exe MyScript.vbs”

针对SAP BusinessObjects Business Intelligence platform 4.0

 

对于基于Java编写的jsp脚本用以处理用户或InfoObjects

  1. 把脚本代码复制到文件夹”C:\Program Files (x86)\SAP BusinessObjects\Tomcat6\webapps\AdminTools”
  2. 确保已经将如用户名,密码,CMS名等等需要更改的内容指定为您系统中相应的内容
  3. 确保Tomcat在运行 (如果已经在运行,是没必要去重启它的)
  4. 通过打开浏览器访问连接”http://MyServer:8080/AdminTools/MyScript.jsp“来执行脚本的代码逻辑。

 

对于基于Java编写的jsp脚本用以处理Webi 报表

  1. 停止Tomcat
  2. 把脚本代码复制到文件夹”C:\Program Files (x86)\SAP BusinessObjects\Tomcat6\webapps\AdminTools”
  3. 确保已经将如用户名,密码,CMS名等等需要更改的内容指定为您系统中相应的内容
  4. 从文件夹”C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\java\lib” 和 “C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\java\lib\external” 中复制所有的jar文件到文件夹 “C:\Program Files (x86)\SAP BusinessObjects\Tomcat6\webapps\AdminTools\WEB-INF\lib”。如果复制的过程中出现了重名冲突,不要选择覆盖已有的jar文件。
  5. 启动Tomcat
  6. 通过打开浏览器访问连接”http://MyServer:8080/AdminTools/MyScript.jsp“来执行脚本的代码逻辑。

 

对于基于Java编写的jsp脚本用以处理Crystal Reports 报表(水晶报表)

  1. 停止Tomcat
  2. 把脚本代码复制到文件夹”C:\Program Files (x86)\SAP BusinessObjects\Tomcat6\webapps\AdminTools”
  3. 确保已经将如用户名,密码,CMS名等等需要更改的内容指定为您系统中相应的内容
  4. 从文件夹”C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\java\lib” 和 “C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\java\lib\external” 中复制所有的jar文件到文件夹”C:\Program Files (x86)\SAP BusinessObjects\Tomcat6\webapps\AdminTools\WEB-INF\lib”。如果复制的过程中出现了重名冲突,不要选择覆盖已有的jar文件。
  5. 启动 Tomcat
  6. 通过打开浏览器访问连接”http://MyServer:8080/AdminTools/MyScript.jsp“来执行脚本的代码逻辑。

 

对已VBScript编写的脚本

  1. 确保已经将如用户名,密码,CMS名等等需要更改的内容指定为您系统中相应的内容
  2. VBS scripts 仅可以在一个安装了BO .NET SDK的Windows环境中运行。BO .NET SDK可以通过安装BO的服务器或客户端组件来实现。
  3. VBS scripts 在 XI R2 版本是被官方支持的, 但在 XI 3.x 和 BI4 并不被官方支持,虽然通常这些代码也是可以运行的。
  4. 如果使用的是32位的Windows系统,简单通过双击就可以执行代码(此方法可能将得不到一些debug信息的输出),或者通过命令行输入”cscript.exe MyScript.vbs”来执行。
  5. 如果使用的是64位的Windows系统,则需通过命令行指定32位版本的cscript来执行,如 “%windir%\SysWOW64\cscript.exe MyScript.vbs”

其他的示例和文档

 

脚本代码:

Base Scripting Template for Webi Reports

Base Scripting Template for Crystal Reports

Base Scripting Template for InfoObjects

 

示例程序:

示例
Java_RAS-Managed_BE115_Add_Border 添加边框 RAS RCAPI SDK
Java_RAS-Managed_BE115_Add_Database-Field 添加数据库字段项目 RAS RCAPI SDK
Java_RAS-Managed_BE115_Add_Database-Table 添加数据库表项目 RAS RCAPI SDK
Java_RAS-Managed_BE115_Add_Database-Table-Links 添加数据库表链接项目 RAS RCAPI SDK
Java_RAS-Managed_BE115_Add_Formula-Field 添加数式项目 RAS RCAPI SDK
Java_RAS-Managed_BE115_Add_Group 添加组 RAS RCAPI SDK
Java_RAS-Managed_BE115_Add_Image-From-File 从文件中添加图形 RAS RCAPI SDK
Java_RAS-Managed_BE115_Add_Line 添加一条线 RAS RCAPI SDK
Java_RAS-Managed_BE115_Add_Parameter 添加参数 RAS RCAPI SDK
Java_RAS-Managed_BE115_Add_Section 添加节 RAS RCAPI SDK
Java_RAS-Managed_BE115_Add_Special-Field 添加特殊字段 RAS RCAPI SDK
Java_RAS-Managed_BE115_Add_Text-Field 添加文本对象 RAS RCAPI SDK
Java_RAS-Managed_BE115_Add_Tool-tip 添加提示项目 RAS RCAPI SDK
Java_RAS-Managed_BE115_Change_Paper-Size 更改页面大小 RAS RCAPI SDK
Java_RAS-Managed_BE115_Copy_Image 复制图形对象 RAS RCAPI SDK
Java_RAS-Managed_BE115_Delete_Report-Object 删除报表对象 RAS RCAPI SDK
Java_RAS-Managed_BE115_Modify_Section-Height 调整节的高度 RAS RCAPI SDK
Java_RAS-Managed_BE115_Remove_Group 删除组 RAS RCAPI SDK
Java_RAS-Managed_BE115_Remove_Report-Object 从水晶报表中移除对象
Java_RAS-Managed_BE115_Set_Command-Table-Location 变更命令表的SQL内容
Java_RAS-Managed_BE12_Export_XML 导出水晶报表到XML格式 Report Application Server (RAS) SDK
Java_RAS2008-managed_changedbconnectionodbc 变更存储于BO平台的水晶报表的ODBC连接信息 RAS SDK
Java_RAS2008-managed_changedbconnectionoledb 变更存储于BO平台的水晶报表的OLE DB连接信息 RAS SDK
Java_RAS2008-managed_dblogon 为存储于BO平台的水晶报表传递数据库登陆信息 RAS SDK
Java_RAS2008-managed_discreteparameter 为存储于BO平台的水晶报表传递参数值 RAS SDK
Java_RAS2008-managed_exportreport 导出存储于BO平台的水晶报表 RAS SDK
Java_RAS2008-managed_rangedparameters 为存储于BO平台的水晶报表传递范围型参数值 RAS SDK
Java_RAS2008-managed_resultset 为存储于BO平台的水晶报表传递结果集 RAS SDK
Java_RAS2008-managed_selectionformula 为存储于BO平台的水晶报表设定范围数式 RAS SDK
Java_RAS2008-managed_setprintoptions 为存储于BO平台的水晶报表设定打印属性 RAS SDK
Java_RAS2008-managed_suppressheader 为存储于BO平台的水晶报表的表头设定抑制显示状态 RAS SDK
Java_RAS2008-managed_viewreport 读取存储于BO平台的水晶报表 the RAS SDK
Java_RAS2008-unmanaged_addformulafield 为未被存储于BO平台的水晶报表添加数式对象 RAS RCAPI SDK
Java_RAS2008-unmanaged_addsort 为未被存储于BO平台的水晶报表添加排序 RAS RCAPI SDK
Java_RAS2008-unmanaged_changedbconnectionodbc 变更未被存储于BO平台的水晶报表的ODBC连接信息RAS SDK
Java_RAS2008-unmanaged_changedbconnectionoledb 变更未被存储于BO平台的水晶报表的OLE DB连接信息RAS SDK
Java_RAS2008-unmanaged_dblogon 为未被存储于BO平台的水晶报表传递数据库登陆信息 RAS SDK
Java_RAS2008-unmanaged_discreteparameter 为未被存储于BO平台的水晶报表传递参数值RAS SDK
Java_RAS2008-unmanaged_exportreport 导出未被存储于BO平台的水晶报表RAS SDK
Java_RAS2008-unmanaged_rangedparameters 为未被存储于BO平台的水晶报表传递范围型参数值RAS SDK
Java_RAS2008-unmanaged_resultset 为未被存储于BO平台的水晶报表传递结果集RAS SDK
Java_RAS2008-unmanaged_selectionformula 为未被存储于BO平台的水晶报表设定范围数式 RAS SDK
Java_RAS2008-unmanaged_setprintoptions 为未被存储于BO平台的水晶报表设定打印属性RAS SDK
Java_RAS2008-unmanaged_suppressheader 为未被存储于BO平台的水晶报表设定表头抑制显示状态 RAS SDK
Java_RAS2008-unmanaged_viewreport 读取未被存储于BO平台的水晶报表 RAS SDK

Assigned Tags

      3 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member
      Author's profile photo Former Member
      Former Member

      这些SDK在4.x版本里面都不好用是吧?

      Author's profile photo Xiaoping Zheng
      Xiaoping Zheng
      Blog Post Author

      不是的,平台级别的SDK大部分还是可用的,一些报表级别的SDK被移到了restful接口中。上面的文章也有说明,比如:

      一个非常常见的问题是我们需要去重新为大量的webi报表重新指定Universe语义层。作者在过去做过大量的类似的工作并将相关的内容整理到了这篇文章中。不过需要注意的是,这篇文章的方法仅适用于XI R2,XI 3.x的版本。在BI 4开始相关的SDK类库被移除了因此本文的方法在BI 4中并不能适用。从BI 4 SP6开始,通过Restful SDK,我们又可以实现为webi报表指定universe的功能。但是目前作者还没有创建出类似的示例程序。而且,目前BI 4的Restful SDK仅支持针对单一语义层的WebI报表进行data provider的变更,这些在后续应该会做相应改进吧。