昨天在项目上突然发现之前可以用的BPC10系统无法正常新建、刷新报表,报错显示是MDX相关错误。但是没有显示出详细的MDX语句;
登录到BW后台,查看SLG1,可以看到刚刚报出的错误,但是这里也无法看到出错的MDX语句;
由于无法判断是MDX语句本身问题,还是BW解析器的问题,所以只能继续想办法看到报错的MDX语句;
参考note899572,通过rstt来追踪BW MDX解析器的过程。首先激活当前的用户追踪,重现报错的过程,然后在跟踪中,就能看到程序运行到MDX解析的过程。虽然没有明细的MDX语句,但是已经有了报错的程序行数;
找到这个程序,在执行的地方添加断点,重现报错的过程,停下断点,获取MDX语句;
之后,进入MDXTEST,执行我们截取的MDX语句,会看到系统提示Syntax error。至此,可以判断出BW端解析并不识别这个BPC产生的MDX语句;
查找note,由1572695得知,BW从730版本开始有两种MDX解析器,而BPC10是基于BW730版本之上的,在BPC10的安装文件中,也有说明BPC10一定需要基于老的BW MDX解析器。如果在MDXTEST中就有语法错误,首选用这个Note来调整MDX解析器的设置;
调整完毕后,重新在MDXTEST中执行之前的MDX语句,没有语法错误报错了。
重新进入BPC系统去刷新表单,系统恢复正常了。
通过结合rstt和MDXTEST,可以对我们分析BW查询语句和错误大有帮助。我们原先的系统使用是没有问题的,之后进行过BI Content的升级,昨天遇到的这个问题就是由于这个MDX解析器设置改变引起的。