java - Cognos SDK - 运行报告的连接参数
问题描述
我正在使用 Cognos SDK 运行报告。我能够传递标准参数,但在某些情况下,我必须在执行报告之前选择数据源连接。我知道有可能将数据源连接保存为 ParameterValue。
在我们的单一数据源环境中,我们有多个 DS 连接。每个 DS 连接只有一个用于登录数据库的登录。因此,我尝试通过以下方式为报表执行设置 ParameterValue:
try {
bc = cognosSDK.getCMservice().query(new SearchPathMultipleObject("CAMID(\":\")/dataSource[@name='DataSourceA']/dataSourceConnection[@name='ConnectionA']/dataSourceSignon[@name='SignonConA']"), props, new Sort[]{}, new QueryOptions());
}catch (RemoteException ex) {
ex.printStackTrace();
}
//set information for Connection and SignOn
SimpleParmValueItem spv = new SimpleParmValueItem();
spv.setDisplay("CAMID(\":\")/dataSource[@name='DataSourceA']/dataSourceConnection[@name='ConnectionA']");
spv.setUse(((DataSourceSignon)bc[0]).getCredentials().getValue());
spv.setInclusive(true);
//Assign DataSource Info
ParmValueItem[] con = new ParmValueItem[]{spv};
ParameterValue ds = new ParameterValue();
ds.setName("credential:DataSourceA");
ds.setValue(con);
不幸的是,我无法通过这种方式运行报告。我想对 SimpleParmValueItem中的定义使用存在误解。您是否有任何想法如何在报表执行之前传递 DS 连接参数来处理数据源连接提示页面?我将不胜感激任何帮助。
谢谢!
解决方案
我终于为我们的用例找到了解决方案。它必须通过以下方式进行更改:
//set information for Connection and SignOn
SimpleParmValueItem spv = new SimpleParmValueItem();
spv.setDisplay("CAMID(\":\")/dataSource[@name='DataSourceA']/dataSourceConnection[@name='ConnectionA']");
spv.setUse("<credential><dataSourceConnection>CAMID(\":\")/dataSource[@name='DataSourceA']/dataSourceConnection[@name='ConnectionA']</dataSourceConnection><dataSourceSignon/><username/><password/></credential>");
spv.setInclusive(true);
//Assign DataSource Info
ParmValueItem[] con = new ParmValueItem[]{spv};
ParameterValue ds = new ParameterValue();
ds.setName("credential:DataSourceA:password");
ds.setValue(con);
推荐阅读
- python - 如何从数据框中删除 NaN 值?
- asp.net-core - 无法让 AddAccessTokenManagement() 使用来自 AddDistributedSqlServerCache() 的缓存服务
- javascript - 在 JavaScript 中获取 Promise 返回的值
- robotframework - 如果使用“或”,如何制作运行关键字?
- sql - 将逻辑应用于行集
- python-3.x - ModuleNotFoundError:没有名为“win32api”的模块
- python - 如何在相对较短的时间内在 OpenCV 中用 python 编辑视频?
- python - 函数返回的元组不可下标
- azure - 无法为连接到现有本地 Vnet 的新 AKS 群集创建 ACI
- kubernetes - 是否有一行 kubectl 命令可以在 pod yaml 中添加 nodeSelector?