用于提取Cognos Web页面内容的SDK

时间:2013-11-26 04:30:54

标签: sdk cognos cognos-8 cognos-bi cognos-10

目前我在Cognos v10.1.2中工作。是否有任何SDK可以提取Cognos网页的内容?

我们正在为最终用户开发一个监控窗口,他们可以在这里查看报告的状态,而不是邮件和电话。

存储的MDC表的访问权限是报告名称及其详细信息。所以,我们需要为它创建一个SDK。提前感谢您的宝贵帮助。

1 个答案:

答案 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");

    }