隨筆-15  評論-79  文章-0  trackbacks-0
             最近進了新公司的數據挖掘與分析組,因公司需求開始學習Cognos,前幾個星期看了下Cognos的主要設計器,沒想到經理馬上就要我搞Cognos的sdk,這個東西國內用的人很少,網上的資料也相當少,只能硬著頭皮自己看官方的文檔和例子。
             這里就把東西都記錄下來。
            
             首先,根據看的一些資料,所謂sdk其實是Cognos公布了一些自己在設計產品時候留下的接口,可以讓客戶從程序端靈活的調用。但是Cognos本身具有的設計功能已經灰常強大了,一般會用到sdk的公司基本上都是遇到很J8的甲方。不過這次也給了我很大的學習機會。
             那么我這里寫了一個用java訪問Cognos建立的維度和量度,來生成報表。
             一、準備工作
                1.建立一個叫 zj_cognos_interjavaweb項目, 我這里比較熟悉用struts于是自己把struts的框架也導進來了
                2.找到Cognos自帶的例子, 示例位置在cognos安裝目錄"c8"webapps"samples"WEB-INF"src"com"cognos"jspSample.
                在這里可以看到一些工具類
               

          我們把這些類考到項目中來

          這些類是非常重要的,很多類如API.JAVA,LogonException等都是封裝的方法類,一般不需要用,不過里面有很多的方法,可供我們學習。
          在這里我們用的比較多的是CognosConnection和ReportBuilder這兩個類。
          這里我用了一個配置文件來保存一些靜態參數
          <?xml version="1.0" encoding="gb2312"?>
          <cognos version="8.3">
              
          <url_home>
                  
          <![CDATA[
                          http://localhost/cognos8
                      
          ]]>
              
          </url_home>
              
          <url_report_prefix>
                  
          <![CDATA[
                          /cgi-bin/cognos.cgi?b_action=cognosViewer&ui.action=run&ui.object=
                      
          ]]>
              
          </url_report_prefix>
              
          <url_report_suffix>
                  
          <![CDATA[
                          &run.outputFormat=&run.prompt=true&cv.header=false&cv.toolbar=false
                      
          ]]>
              
          </url_report_suffix>
              
          <url_logoff>
                  
          <![CDATA[
                          /cgi-bin/cognos.cgi?b_action=xts.run&m=portal/logoff.xts&h_CAM_action=logoff
                      
          ]]>
              
          </url_logoff>
              
          <url_cm>http://localhost:9300/p2pd/servlet/dispatch</url_cm>
              
          <namespace>my cognos</namespace>
          </cognos>

          ServletContext application = getServlet().getServletContext();
              HttpSession session 
          = request.getSession();
              String cfgPath 
          = application.getRealPath("/WEB-INF/cfg.xml");
              String cmUrl 
          = ConfigUtil.parseXml(cfgPath,"url_cm");
              
          //連接cognos服務
              CognosConnection conn = new CognosConnection(cmUrl,application,session);
              
          //-----如果是用匿名認證登陸就不需要這句話,如果是用的自己的認證就需要登陸一下
              
          //bb是我的表空間,zhangyuan是我本機用戶名,123是我本機的密碼
              conn.logon("bb""zhangyuan""123");
              
          //創建一個報表生成器的實力類
              ReportBuilder rb = new ReportBuilder(conn);
              
          //指定生成報表的包
              String packageSp =     "/content/package[@defaultName='mbase']";
              rb.createReport(packageSp);
              
          //用Cognos sql來指定生成的列
              String[] colRef =  {"[business layer].[date].[mdate].[year]","[business layer].[date].[mdate].[day]","[business layer].[measures].[psend]"};
              String[] titles 
          = {"year","day","psend"};
              rb.addColumns(titles, colRef);
              
          //指定生成的報表名
              String name  = "ReportWizardReport ";
              
          //增加報表
              rb.saveReport(name);
          posted on 2010-05-25 12:02 張元Won 閱讀(5015) 評論(8)  編輯  收藏 所屬分類: Cognos

          評論:
          # re: Cognos SDK 研究學習手冊(一) 2010-05-31 23:07 | zzz
          你的COGNOS是哪個版本的,我的是8.4的,裝了sample安裝包,咱沒你那個jspSample包  回復  更多評論
            
          # re: Cognos SDK 研究學習手冊(一) 2010-06-01 10:47 | え經理え
          @zzz
          那個sample包是一個安裝包,需要安裝才有。  回復  更多評論
            
          # re: Cognos SDK 研究學習手冊(一) 2010-06-01 10:47 | え經理え
          @zzz
          那個sample包是一個安裝包,需要安裝才有。  回復  更多評論
            
          # re: Cognos SDK 研究學習手冊(一) 2010-06-02 15:48 | zzzz
          我安裝了,沒看到如你那的SAMPLE包下的jspSample內容,不知你的版本號是多少  回復  更多評論
            
          # re: Cognos SDK 研究學習手冊(一) 2010-07-29 17:35 | え經理え
          這個包是要安裝的sdk包的~@zzzz
            回復  更多評論
            
          # re: Cognos SDK 研究學習手冊(一) 2010-08-23 21:10 | 某某學習者
          第一張和第二張截圖看不到,博主能不能把你說的那些類寫出來看看啊  回復  更多評論
            
          # re: Cognos SDK 研究學習手冊(一)[未登錄] 2010-08-23 21:20 | Hope
          能否把你說的sample里面的項目類貼出來,第一張和第二張圖都看不到啊,拜托了  回復  更多評論
            
          # re: Cognos SDK 研究學習手冊(一)[未登錄] 2013-05-15 15:24 |
          請教一下 生成報表后,是否要把conn logoff啊,如果不關閉連接,不停的執行這個操作,會不會引起COGNOS服務死機啊  回復  更多評論
            
          主站蜘蛛池模板: 常宁市| 育儿| 辽宁省| 娄底市| 盘锦市| 桐城市| 滕州市| 丰顺县| 江安县| 靖边县| 化州市| 大庆市| 新乐市| 龙陵县| 开江县| 伊金霍洛旗| 兰考县| 平阳县| 察雅县| 东至县| 涟源市| 普洱| 吉林省| 平顶山市| 北川| 鸡西市| 新余市| 漳州市| 三亚市| 潮安县| 中江县| 合水县| 忻州市| 深州市| 南投县| 固原市| 正宁县| 荥阳市| 故城县| 咸阳市| 石城县|