Business Objects 4.3报表目标分发地址查询方法咨询
针对Business Objects 4.3生成报表分发地址清单的解决方案
方法1:通过CMC直接导出规整数据
- 登录Central Management Console(CMC),进入对象模块,定位目标报表所在文件夹(或全局搜索所有报表对象)
- 选中需要统计的报表,右键选择导出 -> 导出为CSV
- 在导出配置中勾选实例详细信息和目的地相关字段,导出后的CSV文件会直接包含每个报表对应的分发目标地址(邮件地址、FTP路径等),导入Excel即可直接使用。
方法2:优化Query Builder查询语句
之前的结果难读是因为未关联关键字段,试试这个结构化查询:
SELECT SI_NAME AS 报表名称, SI_ID AS 报表ID, CASE WHEN SI_DESTINATION IS NULL THEN '无分发配置' ELSE SI_DESTINATION END AS 分发目标地址, SI_SCHEDULE_STATUS AS 调度状态 FROM CI_INFOOBJECTS WHERE SI_KIND IN ('Webi', 'CrystalReport', 'Excel') -- 按需替换报表类型 AND SI_INSTANCE = 0 -- 仅查询主报表对象,排除调度实例 AND SI_SCHEDULE_INFO.SI_DESTINATION IS NOT NULL -- 过滤有分发配置的报表
执行后复制结果到Excel,用数据分列功能按逗号分隔,就能得到规整的表格。
方法3:通过RESTful API批量提取
BO4.3支持REST API,可编写简单脚本批量获取信息:
- 调用认证接口获取登录Token
- 调用
/objects接口筛选报表对象,指定返回si_destination字段 - 解析JSON结果后导出为表格
核心逻辑示例(伪代码):
import requests # 认证获取Token auth_url = "http://<BO服务器地址>:6405/biprws/logon/long" auth_data = {"userName": "<你的用户名>", "password": "<你的密码>", "auth": "secEnterprise"} token = requests.post(auth_url, json=auth_data).json()["logonToken"] # 查询报表及分发信息 query_url = "http://<BO服务器地址>:6405/biprws/infostore/query" query_payload = { "query": "SELECT SI_NAME, SI_DESTINATION FROM CI_INFOOBJECTS WHERE SI_KIND='Webi' AND SI_SCHEDULE_INFO.SI_DESTINATION IS NOT NULL" } headers = {"X-SAP-LogonToken": token} response = requests.post(query_url, json=query_payload, headers=headers) # 解析并输出结果 for item in response.json()["objects"]: print(f"报表名称: {item['properties']['SI_NAME']}, 分发地址: {item['properties']['SI_DESTINATION']}")
方法4:基于BO SDK定制工具
如果需要长期复用,可使用BO SDK(.NET/Java)开发小工具:
- 引入BO SDK核心库(如.NET的
CrystalDecisions.Enterprise.dll) - 连接到BO CMS服务器
- 查询
CI_INFOOBJECTS表,筛选有分发配置的报表 - 提取
SI_DESTINATION字段,批量导出为Excel或CSV文件
内容的提问来源于stack exchange,提问作者Bebbo
相关产品推荐
相关产品推荐

