Page tree
Skip to end of metadata
Go to start of metadata

下面以 .NET 环境为例,介绍如何在应用系统中调用 Smartbi API 函数。

实现步骤

1、假设Smartbi服务器已经部署到应用服务器中,访问地址为:http://biserver:port/smartbi/vision 

2、从本文底部附件help_sdk_WebService.rar解压后把目录help_sdk_WebService\WebService\下的run.cmd和config.xml拷贝至本地目录如D:\WebService\下。

3、编辑D:\WebService\run.cmd,修改其中 Smartbi 服务器地址为实际地址。

Rem 生成CatalogService的cs文件
wsdl /protocol:SOAP12 /n:Smartbi.Catalog  /par:config.xml http://localhost:18080/smartbi/vision/services/CatalogService?wsdl

Rem 生成UserManagerService的cs文件
wsdl /protocol:SOAP12 /n:Smartbi.User  /par:config.xml http://localhost:18080/smartbi/vision/services/UserManagerService?wsdl

Rem 生成SimpleReportService的cs文件
wsdl /protocol:SOAP12 /n:Smartbi.SimpleReport  /par:config.xml http://localhost:18080/smartbi/vision/services/SimpleReportService?wsdl

Rem 生成ManageReportService的cs文件
wsdl /protocol:SOAP12 /n:Smartbi.ManageReport  /par:config.xml http://localhost:18080/smartbi/vision/services/ManageReportService?wsdl

Rem 生成AnalysisReportService的cs文件
wsdl /protocol:SOAP12 /n:Smartbi.AnalysisReport  /par:config.xml http://localhost:18080/smartbi/vision/services/AnalysisReportService?wsdl

Rem 生成BusinessViewService的cs文件
wsdl /protocol:SOAP12 /n:Smartbi.BusinessView  /par:config.xml http://localhost:18080/smartbi/vision/services/BusinessViewService?wsdl

 

4、生成各服务接口的cs文件:以Microsoft Visual Studio 2005版本为例,点击"开始 > 所有程序 > Microsoft Visual Studio 2005 > Visual Studio Tools > Visual Studio 2005 命令提示",如下图所示:


运行D:\WebService\run.cmd,如下图所示:


 
5、在您的 .net 项目环境中,添加项目引用,如下图所示:


6、在“添加引用”窗口,选择“.net”选项卡下的“System.Web.Services”,点击“确定”按钮即可。


 
7、在您的 .net 项目环境中,新建一个文件夹如WebService,右键选择"添加 -> 现有项",如下图所示。然后在“添加现有项”窗口中,选择第 (3) 步中D:\WebService下生成的 *Service.cs文件,点击“添加”即可。


8、完成以上几个步骤就可以调用 Smartbi 的 API 函数了。


调用示例

下面的示例代码段,演示了 Smartbi 系统登录、创建用户和组、以及打开灵活分析报表并获取数据的调用过程。

CookieContainer cookieContainer = new System.Net.CookieContainer(); //创建cookieContainer对象,用于维持会话

/**
 *用户管理模块
 */
UserManagerService user = new UserManagerService();
user.CookieContainer = cookieContainer; //此代码必不可少,使用同一个cookieContainer对象来维持会话
user.login("admin", "manager"); //登录到Smartbi系统 
 
/**
 *新建组和用户
 */
String newDepId = user.createDepartment("DEPARTMENT", "WebServiceTest", "WebService测试组", "", "WEBSERVICE");
String newUserId = user.createUser("DEPARTMENT", "WebServiceTest", "webservice测试用户", "", "manager", true);
 
/**
 *打开灵活分析报表
 */
SimpleReportService simpleReport = new SimpleReportService();
simpleReport.CookieContainer = cookieContainer; //此代码必不可少,使用同一个cookieContainer 对象来维持会话
String reportId = "I2c94ef9e21c7c2470121c7c91c720023";
ClientReportView reportView = simpleReport.openQuery(reportId);
String clientId = reportView.clientId;
int totalCount = simpleReport.getTotalRows(clientId); //取报表总条数  
simpleReport.setRowsPerPage(clientId, totalCount); //1.设置每页显示的数据条数 
String paramId = "OutputParameter.I2c94ef9e21c7c2470121c7c8e8df001c.产品目录";
simpleReport.setParamValue(clientId, paramId, "3", "甜点、面包和糖"); //2.设置报表参数,ID取业务查询中输出参数的ID  
CellData[][] reportData = simpleReport.getReportDataWS(clientId, 0); //3.取报表数据  
simpleReport.closeQuery(clientId); //4.关闭报表  
 
/**
 *登录注销
 */  
user.logout();

 
注意事项

以下代码:

CookieContainer cookieContainer = new System.Net.CookieContainer();

user.CookieContainer = cookieContainer;

simpleReport.CookieContainer = cookieContainer;

必不可少,CookieContainer 用于记录会话信息,多个 Service 都必须使用同一个 cookieContainer 对象来维持会话。以上示例说明了用户管理以及灵活分析报表接口的调用方法,其它服务接口的调用类似,请参考示例。完整的工程示例代码请参考附件help_sdk_WebService.rar中的 help_sdk_WebService.rar\samples\WebServiceSample\ 目录下的工程文件,方法说明请参考 WebService API 文档。

 

help_sdk_WebService.rar:

help_sdk_WebService.rar

  • No labels

3 Comments

  1. smartbi.war\vision\help\sdk\WebService

    help目录都不存在了,找不着run.cmd

  2. help相关内容已移至插件包SmartbiHelp.ext。

     

  3. BusinessViewService没有加入到run.cmd中去。

    同时,rar中还缺少BusinessViewService的API说明。