cognos集成文档
需积分: 0 35 浏览量
更新于2018-06-25
收藏 24KB DOCX 举报
### Cognos集成文档知识点详解
#### 一、Cognos简介
Cognos是一款由IBM公司提供的商业智能工具,广泛应用于数据展示和分析领域。它可以帮助企业收集、整合、管理和展示复杂的数据集,以便更好地支持决策过程。Cognos支持多种数据源,包括关系型数据库、多维数据仓库等,提供了丰富的报表设计、查询和分析功能。
#### 二、Cognos集成方法
Cognos的集成通常涉及到系统配置、权限管理等方面。以下是从提供的文档中提炼出的关键步骤:
##### 1. 配置文件设置
在`SystemConfig.properties`文件中配置Cognos相关的参数,主要包括:
- **cognosValid**:设置为`true`表示启用Cognos。
- **cognosGateWay**:指定Cognos服务器的地址,如`http://localhost:9300/p2pd/servlet/dispatch`。
- **cognosDefaultuser**:设置默认登录用户名。
- **cognosDefaultpasswd**:设置默认登录密码。
这些配置是Cognos集成的基础,确保Cognos能够被正确地调用。
##### 2. 页面集成
- 在`login.jsp`中添加一个隐藏的`iframe`,指向Cognos的登出URL。例如:
```html
<iframe style="display:none;" src="<%=gateWay%>?b_action=xts.run&m=portal/logoff.xts&h_CAM_action=logoff"></iframe>
```
- 在`index.jsp`中添加一个链接到Cognos门户的`iframe`,如果是需要配置权限,则链接至相应的权限配置页面。例如:
```html
<iframe style="display:none;" src="<%=webpath%>/CognosInit.do?method=inits"></iframe>
```
这些步骤确保了用户在登录后可以无缝地访问Cognos门户,同时也方便用户退出Cognos。
##### 3. 权限集成
- 使用一张名为`dt_user_metarole`的表来存储用户的ID及Cognos权限信息。例如:
```sql
LOGIN_ID: 0
META_ROLE_ID: xiaohui`111111
```
- 在`CognosResource.xml`文件中定义查询语句,用于获取用户的权限信息:
```xml
<select>
t.login_id userId,
t.meta_role_id metaRoleId
from dt_user_metarole t
where t.login_id = #loginId#
</select>
```
- 通过`CognosUserInfoImpl.java`(持久层)加载并执行SQL语句。
- 通过`CognosConfigServiceImpl.java`(业务层)调用持久层的方法。
- 使用`CognosConfigurationAction.java`(前台交互层)处理用户请求并与页面交互。例如:
```java
public ActionForward inits(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest request,
HttpServletResponse response) throws ActionException {
Map<String, Object> paramMap = new HashMap<>();
paramMap.putAll(SystemConfig.getCognosParams());
CognosConfigService cognosConfigService = (CognosConfigService) getBaseService().getServiceFacade("cognosConfigService");
SecurityUser sercurityUser = SecurityUserHoder.getCurrentUser();
if (sercurityUser != null) {
CognosPOJO cognosPojo = cognosConfigService.getCognosUserInfoBy(sercurityUser);
if (cognosPojo != null) {
String namePass = cognosPojo.getMetaRoleId();
if (namePass != null && namePass.indexOf("`") > 0) {
paramMap.put(SystemConfig.cognosDefaultuser, namePass.substring(0, namePass.indexOf("`")));
paramMap.put(SystemConfig.cognosDefaultpasswd, namePass.substring(namePass.indexOf("`") + 1, namePass.length()));
} else {
paramMap.put(SystemConfig.cognosDefaultuser, null);
paramMap.put(SystemConfig.cognosDefaultpasswd, null);
}
SystemConfig.cognosInit(paramMap);
}
}
// 更多逻辑处理...
}
```
通过这种方式,系统可以根据用户的权限动态地配置Cognos的访问信息,确保只有拥有相应权限的用户才能访问特定的Cognos资源。
#### 三、总结
本文详细介绍了Cognos集成的基本步骤,包括配置文件的设置、页面集成以及权限管理等方面。通过这些步骤,可以使Cognos更好地与现有系统进行集成,提高数据展示和分析的能力。同时,合理的权限管理也可以确保数据的安全性和合规性。
通过以上介绍可以看出,Cognos的集成涉及多个方面,需要仔细规划和实施。希望本文能对您了解和应用Cognos有所帮助。