gpt4 book ai didi

reporting - Cognos 8 查询查找所有报表和列名称

转载 作者:行者123 更新时间:2023-12-02 22:34:48 24 4
gpt4 key购买 nike

我想查询 Cognos 8 中的元数据以查找所有报告和列名称。如果可能的话,我想包含列定义。

我可以使用 Cognos 报告来执行此操作还是需要查询某个存储库?

谢谢。

最佳答案

您可以使用以下查询从内容存储中选择报告列表:

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 中使用它。我相信在 cognos 8 中,CMOBJNAMES_BASE 表实际上命名为“CMOBJNAMES”,没有 _BASE。

更新:已经过测试并可在 Cognos 11r9 中运行。

报告元数据以 XML 形式存储在 CMOBJPROPS7 的“SPEC”列中。您可以解析此 XML 以删除报告中使用的列。这不是一个简单的任务。

如果您有时间但没有钱,您可以编写自己的代码来解析该 XML。如果您有更多的钱和时间,您可以购买第 3 方程序来完成此任务,例如 Motio 或 BSP Metamanager。

上面的查询对于构建干净的列列表不太有用,但对于搜索特定数据项非常有用。例如,您想要更改数据源中的列,但不确定哪个报表使用该列。运行上面的查询,并搜索数据项。它将以 Cognos MDX 格式嵌入 XML 中,即。 [演示文稿 View ].[销售摘要].[销售]

编辑:根据下面的要求,这是一个包含文件夹路径的查询。

-- 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;

关于reporting - Cognos 8 查询查找所有报表和列名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24330772/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com