碰到了估计不会再碰第二次的问题,记录一下。测试环境上载新的工作流时,系统报如下错误:
1406: Workflow definition contains unsupported feature, cannot be uploaded to this database. 1603: Unsupported type EVENT in attribute XMLTRANSFORM/NEWDOCUMENT 1603: Unsupported type EVENT in attribute XMLTRANSFORM/EVENT 1603: Unsupported type EXTJAVA in function WFSTD/XMLTRANSFORM 1603: Unsupported type EVENT in attribute XMLGETTAGVALUE/EVENT 1603: Unsupported type EXTJAVA in function WFSTD/XMLGETTAGVALUE 1603: Unsupported type EVENT in attribute XMLCOMPARETEXT/EVENT 1603: Unsupported type EXTJAVA in function WFSTD/XMLCOMPARETEXT 1603: Unsupported type EVENT in attribute XMLCOMPARENUMBER/EVENT 1603: Unsupported type EXTJAVA in function WFSTD/XMLCOMPARENUMBER 1603: Unsupported type EVENT in attribute XMLCOMPAREDATE/EVENT 1603: Unsupported type EXTJAVA in function WFSTD/XMLCOMPAREDATE 1603: Unsupported type EVENT in attribute SETEVENTPROPERTY/EVENT 1603: Unsupported type EVENT in attribute GETEVENTPROPERTY/EVENT 1603: Unsupported type EVENT in attribute COMPAREEVENTPROPERTY/EVENT
这些Function和Attribute都来自于WFSTD,也就是不应该发生的错误。因为之前出现过配置问题,所以第一反应还是检查配置,无果。
于是想到了检查一下标准Definition清单,看看究竟是否支持EVENT和EXTJAVA。进入Diagnostics Tools,执行Workflow Definition Details检查,提示系统Workflow版本为2.5.0,不支持此操作,怪哉。
SELECT * FROM wf_resources wr WHERE wr.NAME LIKE 'WF_VERSION'
显示果然是2.5.0,而实际的版本应当是2.6.0。手工修改之(为什么变成2.5.0,原因未知,但是应该不是正常情况下所能产生的,所以放心修改)。重新检查Diagnostics报告,发现上述错误信息中的Function都是被支持的。于是重新上载工作流定义,正常,问题解决。
看来Oracle仅仅是通过版本号来检查某特性是否被支持,而不是根据单独的特性来判断。
一点经验:Diagnostics Tools是个好东西啊,如果我早点用这个,能节省好多时间