目前我在Cognos v10.1.2中工作。是否有任何SDK可以提取Cognos网页的内容?
我们正在为最终用户开发一个监控窗口,他们可以在这里查看报告的状态,而不是邮件和电话。
存储的MDC表的访问权限是报告名称及其详细信息。所以,我们需要为它创建一个SDK。提前感谢您的宝贵帮助。
答案 0 :(得分:1)
您需要查看SDK中的可用方法,并将您自己的调用放在一起,以提取作业和相关的状态信息,并将其包装在Web /桌面UI中。这将包括登录/ SSO方法,因为您希望能够安全地过滤到与经过身份验证的用户匹配的作业。
幸运的是,IBM提供了示例代码!以下是拉动计划所有者的示例,完整的代码示例位于http://www-01.ibm.com/support/docview.wss?uid=swg21645622。
这是另一个很好的展示如何从内容存储中提取所有预定作业的内容:http://www-01.ibm.com/support/docview.wss?uid=swg21346334
有用提示: 这需要您首先登录,但您可以避免拜占庭IBM支持网站并在此URL搜索“SDK示例”以获取更多代码示例:https://www-947.ibm.com/support/entry/myportal/product/cognos/cognos_support_(general)?productContext=117510243
public void getOwner(String sPath)
{
try
{
PropEnum props[] = new PropEnum[]{ PropEnum.searchPath, PropEnum.owner};
//Query content store to get the schedule of the report
BaseClass[] bc_sch = cmService.query(new SearchPathMultipleObject(sPath),props,new Sort[]{},new QueryOptions());
if (bc_sch != null && bc_sch.length >0)
{
//Get searchpath of schedule owner
for (int i=0; i<bc_sch.length;i++)
{
Schedule schedule = (Schedule)bc_sch[i];
BaseClass[] bc = schedule.getOwner().getValue();
Account acct = (Account) bc[0];
String searchPath = acct.getSearchPath().getValue();
PropEnum[] props_acct = new PropEnum[]{PropEnum.defaultName, PropEnum.userName, PropEnum.givenName, PropEnum.surname};
// query Account to get account name info
BaseClass[] bc_acct = cmService.query(new SearchPathMultipleObject(searchPath),props_acct,new Sort[]{},new QueryOptions());
Account owner = (Account) bc_acct[0];
String name = owner.getDefaultName().getValue();
String user = owner.getUserName().getValue();
String firstname = owner.getGivenName().getValue();
String lastname = owner.getSurname().getValue();
System.out.println("Owner is");
System.out.println("userName: " + user);
System.out.println("defaultName: " + name);
System.out.println("firstname lastname: " + firstname + " " + lastname);
}
}
else
System.out.println("No schedule is found");
}