回答
您可以選擇使用以下查詢從內容存儲庫報告的列表:
SELECT CMOBJNAMES_BASE.NAME AS ObjName, CMOBJECTS.PCMID, CMCLASSES.NAME AS ClassName, CMOBJPROPS7.spec
FROM CMOBJECTS
JOIN CMOBJNAMES_BASE ON CMOBJECTS.CMID = CMOBJNAMES_BASE.CMID
JOIN CMCLASSES ON CMOBJECTS.CLASSID = CMCLASSES.CLASSID
LEFT JOIN CMOBJPROPS7 ON CMOBJECTS.CMID = CMOBJPROPS7.CMID
WHERE CMOBJECTS.CLASSID IN (10, 37)
ORDER BY CMOBJECTS.PCMID;
我使用在Cognos 10,我相信在IBM Cognos 8 CMOBJNAMES_BASE表實際上是一個名爲「CMOBJNAMES」,不_基礎。
報表元數據作爲XML存儲在CMOBJPROPS7的'SPEC'列中。您可以解析此XML,以便刪除報告中使用的列。這不是一個簡單的任務。
如果您有時間而不是金錢,您可以編寫自己的代碼來解析該XML。如果你有更多的錢比時間,你可以購買第三方程序來完成這一點,如Motio或BSP Metamanager。
上面的查詢對於構建一個乾淨的列列表不太有用,但對搜索特定的數據項很有用。例如,您想要在數據源中更改列,但不確定哪個報表使用該列。運行上面的查詢,並搜索數據項。它將嵌入在Cognos MDX格式的XML中,即。 [Presentation View]。[Sales Summary]。[Sales]
編輯:如下所示,這是一個包含文件夾路徑的查詢。
-- List of Reports, the folder they are in, and the package they are using
select distinct temp2.name as package,temp1.folder,temp1.name from
(SELECT temp.PARENTNAME AS FOLDER,CMOBJECTS.PCMID,CMOBJNAMES.CMID, CMOBJNAMES.LOCALEID, CMOBJNAMES.MAPDLOCALEID, CMOBJNAMES.ISDEFAULT, CMOBJNAMES.NAME,
CMOBJECTS.CLASSID
FROM CMOBJNAMES INNER JOIN
CMOBJECTS ON CMOBJNAMES.CMID = CMOBJECTS.CMID
INNER JOIN
(SELECT P.CMID AS PARENT,P.NAME AS PARENTNAME FROM CMOBJNAMES P where P.LOCALEID between 24 and 52) temp
ON CMOBJECTS.PCMID = TEMP.PARENT
WHERE (CMOBJECTS.CLASSID = 10)
AND SUBSTR(TEMP.PARENTNAME,1,1) NOT IN ('1','2','3','4','5','6','7','8','9') AND
TEMP.PARENTNAME NOT LIKE 'Backup%') temp1
inner join
(SELECT CMREFNOORD1.CMID AS PID, CMREFNOORD1.REFCMID, CMOBJNAMES.NAME
FROM CMREFNOORD1 INNER JOIN
CMOBJECTS ON CMREFNOORD1.REFCMID = CMOBJECTS.CMID INNER JOIN
CMOBJNAMES ON CMOBJECTS.CMID = CMOBJNAMES.CMID
WHERE (CMREFNOORD1.PROPID = 31 AND CMOBJNAMES.LOCALEID between 24 and 52)) temp2
on temp1.cmid = temp2.pid and LOCALEID between 24 and 52;
我一直在尋找專門的列(標籤),所以這個查詢沒有完全捕獲它 - 此外,我被告知我們沒有SDK,我明白這是訪問內容存儲所必需的。不管怎麼說,還是要謝謝你。查詢+1。 – jabs
SDK不需要查詢內容存儲。內容存儲庫是Cognos自己創建的DB2數據庫(eek,適用於演示,並非真正用於生產),或者更可能是您自己創建並指定Cognos的數據庫。使用Cognos使用的登錄到達內容存儲庫,您將擁有所有您需要的訪問權限。檢查返回的元數據,它具有用於構建最終網頁的數據,因此它可能包含您正在查找的標籤。 – Damienknight
感謝Damienknight,查詢已幫助。但是,我想知道是否有添加報表名稱所在文件夾的方法? 例如,一些用戶已經創建了一個文件夾,然後是一個子文件夾,然後保存報告。我們有一些營業額,事情沒有記錄,他們應該是。我需要根據報告中生成的以前保存的Excel文件中的列標題查找報告。 謝謝... – CWinKY
- 1. 將Cognos 7報告轉換爲Cognos 8
- 2. 使用cognos report studio爲SQL查詢生成Cognos報告
- 3. 查詢在ReportServer實例上查找所有* SSRS數據集列表*所有* SSRS數據集所有* SSRS報告
- 4. 如何在報告中製作一列所有已檢查列的名稱?
- 5. 使用Cognos查看器與Cognos查詢工作室和報表工作室
- 6. 慢Cognos報告
- 7. COGNOS報告爲一個簡單的子查詢並加入查詢
- 8. Cognos報告中的條件查詢或模型
- 9. 查詢獲取模式中的所有表名稱和列名稱
- 10. 在Microsoft報告中查找排名
- 11. 名稱列在查詢
- 12. SQL查找表中所有列的SUM大於零的所有列的名稱
- 13. (貨款)報告: 「查詢列是無效的,使用列別名」
- 14. Linq查詢報告EF4.2中計算列上的'無效列名'
- 15. IBM Cognos報告在連接到TM1時需要用戶名稱
- 16. 查找名稱和擴展
- 17. nhibernate命名查詢,找不到名稱
- 18. 查找名稱
- 19. 「查找名稱」
- 20. DataGridView和SQL查詢名稱
- 21. 查詢名稱
- 22. 如何查找包含名稱列的所有表
- 23. 查找Excel列中的所有唯一名稱
- 24. postgres查詢列出所有表名
- 25. 查詢結果缺少所有列名稱
- 26. 查找與查詢匹配的所有名稱:如何使用後綴樹?
- 27. 直到所有查詢都執行完爲止,SQL查詢不是「報告」
- 28. 用於在表中查找最長名稱和最短名稱的SQL查詢
- 29. 建議查找和報告CSV
- 30. c#和RDLC的示例查詢報告
我不敢相信有人在那裏甚至知道Cognos是什麼!我認爲我的公司是唯一使用它的公司。無論如何...你可以看看「分析」。這應該給你一個結果樣本以及你正在尋找的數據類型。 – durbnpoisn
你在詢問很多不同的信息。報告元數據被隱藏在內容存儲庫中,並且不容易出去,儘管一些Google搜索可能會給您一些疑問。列定義,您可能不得不退出各個FM模型。 – Andrew
@durbnpoisn - 是的,它在這裏,我被我的部門分享了(暫時)。感謝分析技巧。 – jabs