隨筆-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服務死機啊  回復  更多評論
            
          主站蜘蛛池模板: 平潭县| 龙山县| 商洛市| 日照市| 沁源县| 凤城市| 鹤岗市| 新绛县| 呼伦贝尔市| 平果县| 那曲县| 防城港市| 景洪市| 合阳县| 贵港市| 榆树市| 和田县| 新蔡县| 油尖旺区| 大厂| 祁东县| 乌什县| 金山区| 防城港市| 曲麻莱县| 兴化市| 罗平县| 申扎县| 慈溪市| 万载县| 盐边县| 安平县| 原平市| 肃南| 汉源县| 宜宾市| 确山县| 依兰县| 扬州市| 伊春市| 南华县|