ofbiz11.04 eca 中 set 操作的BUG

阅读更多

近日又发现了一个ofbiz 11.04  的bug .

在eca 中使用set 如果使用ofbiz 提供的表达式就会出现问题 . eg:

 

这行命令的意思是 是把eca 中上下文context 中的oriTx 这个map 中的key 为oldCpspTxId 对应的value 以newCpspTxId为key put 到上下文context 中。。

 

这行命令在第一次执行是正确的 , 如果第一次从上下文取到的值为 301415 的话,那么下次执行取值仍然还是301415 .

之后再执行的话都是定值,不会根据上下文参数的变化而变化了 。

 

 

 

根据我们使用的需要,通过修改其源码 , 现对eca set 规则调整如下 ::

eca  set 使用规则(env-name , format , value  这三者单独设置的时候,不需要特别留意,配合使用的时候 请参考规则) :

1: 如果不设置 format   参数值来源先从env-name 中获取 , 如果 解析env-name 获得的值为null 那么默认使用 value  .这里的env-name 包括带${} 和 不带${}的,  如果 env-name 和 value 都为null 那么不做任何操作 。env-name 值类型为Object ,其上下文本来是什么类型现在还是什么类型 ,value 是String 类型 。


2:如果format 为 append 则先把env-name 转化成String  然后和 value 拼接起来 , env-value 居左  value 居右 .结果类型为String


3如果format 为其他类型 ,那么以env-name format 之后的值 为主 ,如果env-name 为null 那么 format value .

 

duan.jt(段金涛) 10:53:40

4 如果 field-name 的格式是以后逗号分隔的
 。eg:  field-name 中只支持一个逗号.如果不包含逗号 ,结果是以field-name  为key 直接放到上下文中的 。。。

你可能感兴趣的:(ofbiz,java,eca,set)