起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8130|回复: 11

[结贴] 流程监听配置

  [复制链接]

71

主题

257

帖子

719

积分

高级会员

Rank: 4

积分
719
QQ
发表于 2016-8-3 17:27:33 | 显示全部楼层 |阅读模式
现在的需求是需要监控所有流程的流转对话框,流转成功后需要把在流转对话框上填加的扩展字段存到待办任务中。
所以需要用到流程监听。
我的配置步骤:
1.在sa根目录下建文件myListener.m 内容如下:
<?xml version="1.0" encoding="utf-8"?>
<model xmlns="http://www.justep.com/model">
        <procedue name="afterAdvanceProcedure" code="CustomProcess2.customAfterAdvence" />
        <listener action="advanceProcessAction" event="after"
                handler="afterAdvanceProcedure" />
</model>
2.在myListener.m同级目录下建文件model.config.xml,在这个文件中引用/system/logic/action
3.在myListener.m同级目录下建dsrc,在dsrc下建CustomProcess2 java类
4.在CustomProcess2 java类中建customAfterAdvence方法


运行程序后报错如下:
2016-08-03 17:26:58 编码: JUSTEP150009; 提示: 业务服务器初始化出错
com.justep.exception.BusinessException: 编码: JUSTEP150009; 提示: 业务服务器初始化出错
        at com.justep.exception.BusinessException.create(Unknown Source)
        at com.justep.business.server.BusinessServerServlet.init(Unknown Source)
        at com.justep.x.bs.BusinessServerServlet.init(Unknown Source)
        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1213)
        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1026)
        at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4425)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4738)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:583)
        at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:675)
        at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:601)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)
        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:822)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
        at org.apache.catalina.core.StandardService.start(StandardService.java:525)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: com.justep.model.exception.ModelException: 编码: JUSTEP151018; 提示: 定义Listener "/SA/advanceProcessAction"出错, handler属性"afterAdvanceProcedure"引用的Procedure不存在
        at com.justep.model.exception.ModelException.create(Unknown Source)
        at com.justep.model.impl.ListenerImpl.init(Unknown Source)
        at com.justep.model.impl.ModelImpl.initial(Unknown Source)
        at com.justep.model.impl.ModelLoader.loadModelObjects(Unknown Source)
        at com.justep.model.impl.ModelLoader.loadModel(Unknown Source)
        at com.justep.model.impl.ModelLoader.loadModel(Unknown Source)
        at com.justep.model.impl.ModelLoader.loadModel(Unknown Source)
        at com.justep.model.impl.ModelLoader.loadModel(Unknown Source)
        at com.justep.model.impl.ModelLoader.loadModel(Unknown Source)
        at com.justep.model.impl.ModelImpl.getModel(Unknown Source)
        at com.justep.model.impl.UtilImplementInstance.getModel(Unknown Source)
        at com.justep.model.ModelUtils.getModel(Unknown Source)
        at com.justep.model.ModelUtils.getModelObjectByFullName(Unknown Source)
        at com.justep.model.ModelUtils.getProcess(Unknown Source)
        at com.justep.business.server.BusinessServer.createRequestContext(Unknown Source)
        at com.justep.business.server.BusinessServer.init(Unknown Source)
        ... 28 more
Java HotSpot(TM) Client VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36044
发表于 2016-8-3 17:54:30 | 显示全部楼层
<listener action="advanceProcessAction" event="after" handler="afterAdvanceTestProcedure"/>  
  <procedure name="afterAdvanceTestProcedure" code="CustomProcess.customAfterAdvance"/>
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

71

主题

257

帖子

719

积分

高级会员

Rank: 4

积分
719
QQ
 楼主| 发表于 2016-8-4 10:02:09 | 显示全部楼层

可以了,非常感谢。能说下原因吗?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36044
发表于 2016-8-4 11:18:32 | 显示全部楼层
你定义的<procedue name="afterAdvanceProcedure" 跟平台的一样是会被冲掉,要自己定义一个名字
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

71

主题

257

帖子

719

积分

高级会员

Rank: 4

积分
719
QQ
 楼主| 发表于 2016-8-4 11:36:10 | 显示全部楼层
本帖最后由 好好学习 于 2016-8-4 11:56 编辑

能获取到了,但是我想把数据存到任务表中,存不进去,代码如下:
两个扩展字段的值在前段已经赋值上去了,并且在通过flowControl.getExt("sESField01")、flowControl.getExt("sESField02")能获取到.但是我想把值放到任务中,怎么弄?
ProcessControl flowControl =  (ProcessControl)ContextHelper.getActionContext().getParameter("control");
                flowControl.addExt("sESField07", flowControl.getExt("sESField01"));
                flowControl.addExt("sESField08", flowControl.getExt("sESField02"));

回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36044
发表于 2016-8-4 14:03:29 | 显示全部楼层
流转后数据已经生成了,不能这样修改
可以在流转前或者流转查询后中
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

71

主题

257

帖子

719

积分

高级会员

Rank: 4

积分
719
QQ
 楼主| 发表于 2016-8-4 14:21:01 | 显示全部楼层
jishuang 发表于 2016-8-4 14:03
流转后数据已经生成了,不能这样修改
可以在流转前或者流转查询后中

意思是我配置监听的时候应该配置流转前或者流转查询中?这应该怎么配置?麻烦提供一下
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36044
发表于 2016-8-4 15:15:40 | 显示全部楼层
<listener action="advanceProcessAction" event="after" handler="afterAdvanceTestProcedure"/>
after改为before
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

71

主题

257

帖子

719

积分

高级会员

Rank: 4

积分
719
QQ
 楼主| 发表于 2016-8-5 11:26:16 | 显示全部楼层
本帖最后由 好好学习 于 2016-8-5 11:28 编辑

改完之后,把after改成了before。
配置修改如下:
<?xml version="1.0" encoding="utf-8"?>
<model xmlns="http://www.justep.com/model">
        <listener action="advanceProcessAction" event="before" handler="beforeAdvanceTestProcedure"/>  
  <procedure name="beforeAdvanceTestProcedure" code="ProcessControlJingBo.customBeforeAdvance"/>
</model>
java代码如下:
ProcessControl flowControl =  (ProcessControl)ContextHelper.getActionContext().getParameter("control");
                System.out.println("监听到了"+flowControl.getExt("sESField01"));
                System.out.println("监听到了"+flowControl.getExt("sESField02"));
                flowControl.addExt("sESField02", flowControl.getExt("sESField01"));
                flowControl.addExt("sESField03", flowControl.getExt("sESField02"));
可以输出出来数据,但是任务中扩展字段还是没有值。
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36044
发表于 2016-8-5 13:18:01 | 显示全部楼层
通过task设置值
ProcessControl control  = (ProcessControl)ContextHelper.getActionContext().getParameter("control");
       for (ProcessControlItem item : control.getFlowTos()){
             item.getTask().setRelationValue("sESField01", "aaaaaaaaa");
       }
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-9-27 05:53 , Processed in 0.060461 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表