读书人

扩充jPDLP中的动作元素

发布时间: 2012-08-21 13:00:22 作者: rapoo

扩展jPDLP中的动作元素

1. 动作使用于:

??? (1) 向另一个系统一步的发送消息;

??? (2) 以同步的方式调用外部的Web服务;

??? (3) 用于回调场景,向远程的系统发送请求,完成以后发起一次方法调用。

2. jPDL中action元素使用的位置

??? (1)Node节点类型:用动作处理器实现节点定制的功能并将信标前移到合适的转换路径;

??? (2)转换路径:作为transition元素的子元素(或属性),当转换路径被触发时,可以调用一个动作;

??? (3)事件

??? (4)异常

??? (5)定时器:当定时器到期时可以触发动作。

3. 实例化动作类的属性

??? 默认情况下采用字段值的方式,也可以配置属性@config-type来指定,config-type的值包括:

??? bean,constructor,constructor-property.当采用字段值的风格的类实例化方式时,jBPM会尝试自动将XMl中

??? action元素的子元素值按照其名称填充到匹配的类成员变量中。当要传递跟更复杂的数据时,可采用下面几种方式:

??? (1)使用任意复杂的XMl数据

??? (2)转换成dom4j的Element

??? (3)使用一种<map><entry><key>的XML格式将数据以一个Java Map对象传入

??? <action name="action">
??? <message>Going to the field state!</message>
??? <xml>
?????????? <value1>Value 1</value1>
?????????? <value2>Value 2</value2>
?????????? <value3 value="Value 3"/>
???? </xml>
???? <map>
?????????? <entry><key>key1</key> <value>Value 1</value></entry>
?????????? <entry><key>key2</key> <value>Value 2</value></entry>
???? </map>
???? </action>

???? 用于接收注入数据的MessageActionHandlerField类:

???? public class MessageActionHandlerField implements ActionHandler {
????????? String message;
????????? Element xml; //org.dom4j.Element;
????????? Map<String, String> map;
????????? public void execute(ExecutionContext context) throws Exception {
??????????????? context.getContextInstance().setVariable("message", message);
??????????????? System.out.println("map is: " + map.size());
??????????????? System.out.println("xml is: " + xml.asXML());
????????? }
???? }

读书人网 >PowerDesigner

热点推荐