Siebel中关于Search Specification 配置超长问题

来源:互联网 发布:跑跑卡丁车卡队标软件 编辑:程序博客网 时间:2024/05/29 14:18
Applet 和 Buscomp的Search Specification 最大长度为255,如果创建的Sql比较复杂,可能超出这个限制。

1. 其中一种解决方式为编写脚本实现,这种方式我就不进行介绍了,想来大家都比较清楚。(BusComp_PreQuery实现)

2. 还有一种方式,通过计算字段(Field 中的Calculate,Calculate Value属性),将比较复杂的Sql 条件,分解为几个计算字段,而后在Search Specification中使用计算字段查询。


Example:([Class2]='0101'and[BMCC Filter Sign]='Y')or([Class2]='0103'and[Class Reason]='06'and[BMCC Filter Sign]='Y')or([Class2]='0104'and[Class Reason]='06'and[BMCC Filter Sign]='Y')or([Class2]='0106'and[Class Reason]='06'and[BMCC Filter Sign]='Y')or([Class2]='0109' and [Class Reason]='06' and [BMCC Filter Sign]='Y')

上面的是一个Search Specification的条件,但因为超长,不能直接应用。

可以将它分解为:

BMCC Filter Flag1:IIf(([Class2]='0101' and [BMCC Filter Sign]='Y'),'Y','N')

BMCC Filter Flag2:IIf(([Class2]='0103' and [Class Reason]='06' and [BMCC Filter Sign]='Y'),'Y','N')

BMCC Filter Flag3:IIf(([Class2]='0104' and [Class Reason]='06' and [BMCC Filter Sign]='Y'),'Y','N')

BMCC Filter Flag4:IIf(([Class2]='0106' and [Class Reason]='06' and [BMCC Filter Sign]='Y'),'Y','N')

BMCC Filter Flag5:IIf(([Class2]='0109' and [Class Reason]='06' and [BMCC Filter Sign]='Y'),'Y','N')

在Applet的Search Specification中,直接使用:([BMCC Filter Flag1]='Y' or [BMCC Filter Flag2]='Y' or [BMCC Filter Flag3]='Y' or [BMCC Filter Flag4]='Y' or [BMCC Filter Flag5]='Y')

这样就可以了.

不过我通过查看SQL日志,查询数据库时并没有直接使用到,这些查询条件,可能数据是在内存中过滤的,性能是否存在问题有待考察。

原创粉丝点击