首页 > BO > BO 4.0报表输入参数的一个bug!
2014
05-05

BO 4.0报表输入参数的一个bug!

原始情况是这样的:有一张BO报表调用了一个存储过程,在universe中,最开始设计如图所示,值允许用户输入IN_TIME_FRAME, IN_STAT_DATE, IN_END_DATE, 而IN_RPT_TYPE和IN_RPT_FREQ作为固定的参数参入到存储过程,然后报表侧直接引用这个universe,报表作为新创建的报表,我们这里定义报表的版本为1,开始随便怎么输入都不存在问题,即使IN_START_DATE输入一个错误的值,比如111,因为在存储过程中有判断输入值的合法性,所以报表侧会抛出一个错误,目前看来是没有任何问题的,重新刷新报表还是提示输入,因为报表版本是1

Before change;

BO 4.0报表输入参数的一个bug! - 第1张  | Jerry大数据之路

After change:

BO 4.0报表输入参数的一个bug! - 第2张  | Jerry大数据之路

错误情况:现在客户提了一个需求,允许用户输入IN_RPT_FREQ值,universe端就变成了如图所示,报表侧无需修改,但这里就有问题了,因为报表输入条件的时候就变成了4个条件,相当于是一个新版本,我们定义为版本2,我们输入合法值的时候,没有任何问题,但就在输入一个错误值的时候,比如IN_START_DATE,我们输入111,报表抛出一个错误,这是正常的。当就在我们再次刷新的时候,大家可以从提示中看到,输入参数怎么重复了,而且重复的是版本一中的条件,此时关闭报表,重新打开,刷新,又变成版本2的情况,当然这是正确的情况,如果输入的参数在存储过程中校验失败,返回错误,一旦再次重新刷新,那报表提示的输入参数就会出现错误,参数会把以前的版本也显示出来,这很明显是不应该的,目前还没有找到一个补丁解决这个问题。

Input error value:

BO 4.0报表输入参数的一个bug! - 第3张  | Jerry大数据之路

BO 4.0报表输入参数的一个bug! - 第4张  | Jerry大数据之路

 

Refresh again:

BO 4.0报表输入参数的一个bug! - 第5张  | Jerry大数据之路

不过解决的办法到是有一个,那就是重新创建一个报表,这样报表的版本始终是1.

最后编辑:
作者:Jerry
一个积极向上的小青年,热衷于分享--Focus on DB,BI,ETL