我正在使用COGNOS,这是一个非常令人沮丧的BI应用程序,它严重依赖于Javascript.基本上,当一个<select>盒子改变时,屏幕上的数据会刷新,大概是通过AJAX函数或类似的东西.我想使用jQuery强制进行此更改,但我不确定如何拦截它正在进行的调用,以便我可以复制它.还有一公吨的JS代码,因此很难手工找到.
有没有办法使用Firebug来显示被调用的不同函数?我的方法是否正确?
请告诉我Cognos中可用的API是什么?
将Cognos报告作为移动应用程序的Web服务公开所需的API是什么?
提前致谢.
我有幸不做任何基于cgi-bin .cgi的web开发.但通常那些似乎没有"错过"那些日子的人.
我最近加入的项目在处理需要与具有基于CGI-BIN的API的遗留系统进行通信的页面时存在性能问题.该系统是COGNOS 7.
我收到的反馈是"COGNOS很慢",但其他人报告COGNOS取得了巨大成功,我认为它更多地与通过CGI-BIN的访问有关,而不是COGNOS本身的性能.
所有这些都说明了基于CGI-BIN的Web开发不具备性能,难度等等的主要问题......
"Cognos TM1"和"Cognos 10 BI"之间有什么区别?哪一个被IBM视为BI工具?
我有一个引用参数'Year_Parameter'的值提示符,以及一个列有一列(数据项表达式)的列表,它以这种方式引用与值提示符相同的参数:
#prompt('Year_Parameter')#
Run Code Online (Sandbox Code Playgroud)
值提示有一些静态选择:2011年,2012年和2013年.因此,当我运行我的报告,并在显示报告页面之前弹出的提示页面中输入2012时,会在值提示中自动选择2012显示报告页面时的选项列表.
此外,如果我将2012放入默认选择列表中,则不会显示任何提示页面,并且现在还会在显示报告时自动选择2012作为值提示.
但是,如果我从默认选择列表中删除2012,并将我的数据项表达式更改为以下任一表达式:
#prompt('Year_Parameter', 'token', '2012')#
#prompt('Year_Parameter', 'token', 2012)#
#prompt('Year_Parameter', 'string', 2012)#
#prompt('Year_Parameter', 'string', '2012')#
Run Code Online (Sandbox Code Playgroud)
...当2012被指定为默认选择时,没有弹出提示页面,但是没有为值提示自动选择值.值提示显示其默认标题文本:参数名称 - Year_Parameter".
记住提示函数定义:
prompt(prompt_name,datatype,defaultText,text,queryItem,trailing_text)
任何人都知道为什么会这样,更重要的是如何通过在数据项表达式中指定它来为如何选择值提示的默认选择的解决方案?
是因为prompt()宏只是尝试获取参数'Year_Parameter'的值,但是它本身不会用值填充参数?该参数必须由某个值提示符给出(在提示页面上或嵌入在报表页面中).
因此,提示函数的defaultText参数将永远不会填充参数本身,但在参数没有(有效)值的情况下由此特定提示函数返回?
非常感谢您的任何输入!
编辑:找到有关如何为参数动态分配默认值的说明.
http://cognosknowhow.blogspot.no/2013/04/how-to-dynamically-set-up-default-value.html
最后:我最终使用以下Javascript来动态选择值提示并更新报告:
<script type="text/javascript">
// This function updates the report dynamically for the current year
// The function is wrapped inside a setTimeout call in order to avoid an error caused by too frequent requests
setTimeout(function updatePrompt() {
var oCR = cognos.Report.getReport("_THIS_");
var yearPrompt = oCR.prompt.getControlByName("YearPrompt");
var selectedValue = yearPrompt.getValues()[0];
if (typeof …Run Code Online (Sandbox Code Playgroud) 我熟悉Excel和SQL,但对Cognos不熟悉.我正在[Total Margin]为每个人做一个有条件的总和[Item Code].此结果应显示在每一行的每一行上.我在Cognos中尝试了两种方法,并在Excel中进行了概念验证.请参阅下面的单个样本数据[Item Code].

总项目保证金A(Cognos)
case
when [free of charge flag] = 'FALSE'
then total([Total Margin] for [Item Code])
else null
end
Run Code Online (Sandbox Code Playgroud)
这里的问题是TOTAL结果不正确,并且无法显示在第2行.
总项目保证金B(Cognos)
total([Total Margin] for [Item Code],[free of charge flag])
Run Code Online (Sandbox Code Playgroud)
这里TOTAL结果在大多数行上是正确的,但在第2行上是不同的.
总项目保证金C(Excel)
=SUMIFS([Total Margin],[Item Code],'10001430',[free of charge flag],FALSE)
Run Code Online (Sandbox Code Playgroud)
所以我可以使用excel SUMIFS公式得到我想要的结果.我需要编写哪些Cognos查询才能直接从Cognos获得相同的结果?
我有一份Cognos报告,我创建了3个页面和1个常用提示页面.根据提示页面中的无线电选择,我在这3页中显示了相应的内容.
在每个页面中,我有一个标题块,我只显示标题,当前日期和提示控件的选定值(参数值).
这个标题在所有页面中是相同的,我想找到一种方法只创建1个标题部分,然后在每个页面的顶部分配它.因此,如果以后我想改变标题中的任何内容,我将在一个地方进行.
有任何想法吗?
这可能是一个愚蠢的问题,因为我还没有完全理解Cognos BI的工作原理.另外,我尝试在Stack Exchange上发布此内容,但是徒劳(使用put标签时出错).
我的问题是 - Apache Hadoop可用于使Cognos BI更快地运行吗?或者Cognos做的是Hadoop做的事情(MapReduce功能)?
我开始工作的地方使用Sybase IQ(内容存储库)之上的Cognos BI套件.Apache Tomcat是Web服务器.有时会发生的事情是,如果数据集很大,Cognos会花费大量时间(几乎死掉)来生成报告.
那么,Apache Hadoop可以通过适应Cognos和Sybase之间的某种方式来帮助Cognos更好地运行吗?或者报告优化是这种情况下唯一的出路?
多谢你们.
我从未使用过 IBM Cognos 产品。我需要的是在自定义系统和 Cognos 之间进行集成。我还不知道要求,但我有一个问题:
Cognos 是否具有可连接并检索数据的 REST/SOAP Web 服务?或者也许是一个 SDK?你们如何与 Cognos 集成?