原文地址(英文):
http://wiki.scn.sap.com/wiki/display/BOBJ/How+to+Migrate+and+Upgrade+Dashboards+based+on+QAAWS
作者:Amit Mathur,现就职于SAP
简介
本文介绍了如何使用Web服务查询(QaaWS) 或添加查询的方式(Dashboards Design 4.0之后的新功能)迁移Dashboard或SWF。使用本文提供的最佳解决方案可以很容易完成迁移。本文旨在帮助所有设计dashboard并希望在不同环境中迁移的人员。
迁移概要
成功迁移dashboards需要完成以下内容:
- 迁移QaaWS查询使用的全部Universe
- 迁移Xcelsius dashboards中使用的全部QaaWS WSDL
- 迁移所有SWF文件
注:本文假定QaaWS查询使用的所有universe已经完成迁移。
迁移QaaWS WSDL
迁移QaaWS有以下两种方法。选择哪种方式取决于您需要迁移多少数量的查询。使用QaaWS Designer可以一次迁移一个查询(适用于当查询数量较少时),使用Import Wizard可以一次迁移多个查询。
方法1:迁移少量查询
可以使用QaaWS Designer进行少量查询的迁移。因为一次只能迁移一个查询,本方法不适合迁移较多数量的查询。
使用QaaWS Designer迁移的步骤:
1.登陆QaaWS Designer。
2.选择需要迁移的查询。
3.如下图所示点击"Deploy to Another Server"。
4.输入另一个服务器的登陆信息。
5.发布查询。
方法2:迁移多数查询
使用Import Wizard可以迁移多个查询。
使用Import Wizard迁移的步骤:
1.打开Import Wizard。
2.从下拉菜单中选择源环境并输入登陆信息。
3.从下拉菜单中选择QAAWS WSDL需要迁移的目标环境或者BIAR文件。
4.选择导入对象。在"Import folders and objects"上打钩。
5.根据指示,选择下一步。
6.在QaaWS folder中选择需要迁移的查询。在"Merge"或者"Update"中选择"Update"以确保web服务的CUID在迁移过程中不会被更改。
7.使用Import Wizard移动WSDL之后,就可以在新的环境中看到QAAWS中的WSDL。
迁移SWF文件
可以使用以下三种方法:
1.使用相关URL(最简单)
2.更改模型用于通过FlashVar创建动态Web服务URL。
3.使用xml文件获取web服务URL
注:推荐使用方法1(最简单)。方法2和3因为使用了遗产系统(Life Cycle Method(LCM))所以有些复杂。
方法1:使用相关URL
确保Universe和WSDL已经完成迁移。
本方法只需在数据连接中更改web服务URL。
注:本方法可以防止在XCelsius中预览dashboard(error #2032*.*)
在发布SWF文件之前需要对XLF文件进行下面的更改:
1.打开SLF文件。
2.点击数据 >连接 > Web服务查询。
3.在下图位置找到Web服务URL。
4.将现有的URL更改为"/dswsbobje/qaawsservices/queryasaservice"。
5.发布SWF到BOE。
6.将SWF文件发布之后,可以使用Import Wizard迁移至新环境。
方法2:更改模型并使用FlashVar
本方法使用遗产系统(Life Cycle Method (LCM))。在这个方法中,我们更改模型用于通过FlashVar创建动态Web服务URL。
1.在数据模型(Excel)中定义一个用来存储动态web服务URL的单元格。
2.在Xcelsius中,在绑定WSDL后,进入Web服务URL并选择步骤1中定义的单元格。
3.对每一个使用QaaWS的Web服务连接进行设置。
4.将全部Web服务URL关联单元格设置完成后,创建一个FlashVar。
5.加入一个flash变量。将其命名为WSDOMAIN并映射到步骤1中指定的单元格。
由于此方法需要将URL通过FlashVar动态分配,需要使用代码将其结合到一起。
示例代码:
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://macromedia.com/cabs/swflash.cab#version=6,0,0,0" ID=flaMovie WIDTH=250 HEIGHT=250>
<PARAM NAME=movie VALUE="flaMovie.swf">
<PARAM NAME=FlashVars VALUE="WSDOMAIN=[http://servername:port/dswsbobje/services/Session]">
<PARAM NAME=quality VALUE=medium>
<PARAM NAME=bgcolor VALUE=#99CC33>
<EMBED src="flaMovie.swf" FlashVars="WSDOMAIN=[http://servername:port/dswsbobje/services/Session]" bgcolor=#99CC33 WIDTH=250 HEIGHT=250 TYPE="application/x-shockwave-flash">
</EMBED>
</OBJECT>
注:将http://servername:port替换成实际服务器名称和端口号。您可能需要将'/'密码化,可以将movie VALUE动态化以便重复使用相同的代码。
6.(LCM过程开始)测试Xcelsius模型运行与预期一致。
7.在目标环境进行必要文件的备份。
8.使用Import Wizard,将SWF,连接,Universe导入BIAR文件。
9.使用Import Wizard将步骤8中的文件通过BIAR文件导入目标系统。
10.使用QaaWS Wizard将定义拷贝至目标系统。
11.确保上传新服务器的URL分配的代码。
12.测试Xcelsius模型与预期一致。
方法3:使用xml文件获取web服务URL
1.创建XML文件用于保存Web服务URL。此文件需在每个系统(开发,测试,生产)中使用相同的名字和路径。
示例XML文件:
<data>
<variable name="WSDOMAIN">
<row
<column>[http://<server name:8080/dswsbobje/services/Session]</column>
</row>
</variable>
</data>
2.在数据模型(Excel)中定义一个用来存储动态web服务URL的单元格。
3.在Xcelsius中,在绑定WSDL后,进入Web服务URL并选择步骤2中定义的单元格。
4.对每一个使用QaaWS的Web服务连接进行设置。
5.在模型中加入XML数据连接并设置"Enable LOAD"。
6.将位置映射到上述步骤指定的单元格中。
(在上述示例中,在XML文件中定义的变量是WSDOMAIN,故可以将范围命名为WSDOMAIN,确保指向XML文件的全部路径。此文件需在每个系统中使用相同路径。例如:C:\XML\filename.xml)
7.将模型导入BOE。
8.(LCM过程开始)测试Xcelsius模型运行与预期一致。
9.在目标环境进行必要文件的备份。
10.使用Import Wizard,将SWF,连接,Universe导入BIAR文件。
11.使用Import Wizard将步骤8中的文件通过BIAR文件导入目标系统。
12.使用QaaWS Wizard将定义拷贝至目标系统。
13.测试Xcelsius模型与预期一致。
附录
将基于QaaWS的dashboard从XI 3.1移动至BI 4.0/4.1
1.迁移dashboard中使用的全部Universe和QaaWS查询。
2.迁移QaaWS查询之后运行WSDL生成器。
http://<servername>:<port number>/dswsbobje/qaawsservices/wsdlGenerator
3.从SP02移动至SP04 (BI 4.0)时,安装RESTful Web服务。
注:
升级SP04时需手动选择安装RESTful Web服务的选项。在SP04完全安装中,RESTful Web服务是默认选择的。
XI 3.1中的"Flash对象"在BI 4.0之后的版本中被称作"Dashboards设计对象"。
Dashboards设计对象融合了XLF和SWF。
使用Flash变量迁移dashboards
此方法需要考虑下列步骤。
在过去,我们推荐使用QaaWS来设计dashboard,以便很容易的指向不同的服务器。
需要做的内容如下:
1.对于每一个QaaWS Web服务连接,拷贝Web服务URL并使用下面的格式放入数据表格:
=<URL>
使用"="语法使其变为公式以便稍后进行编辑。
2.将Web服务URL与单元格捆绑(每个查询一个单元格)
3.在Excel中,将单元格中的服务器名称放入独有的单元格中(例如:A1)。
4.更新每一个URL单元格使其指向将步骤3中创建的单元格。
=A1&<其余URL>
5.定义Flash变量用于传递服务器名称。
6.将SWF发布到BI平台后,可以在CMC中更改特定dashboard的Flash变量值。