目前我在 Cognos v10.1.2 工作。是否有任何 SDK 可以提取 Cognos 网页的内容?
我们正在为最终用户开发一个监控窗口,他们可以在其中查看他们的报告状态,而不是邮件和电话。
存储报表名称及其详细信息的 MDC 表的访问受到限制。因此,我们需要为它创建一个 SDK。提前感谢您的宝贵帮助。
您需要查看 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");
}