打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
一个用OFBiz2.0 beta1 Workflow Engine开发的文档传签系统代码片...


流程上基本是单一的往下跑的,reject的话user可以modify后重新跑, 由于ofbiz2.0beta1没有实现loop的方式,在Transition定义里用一个小技巧实现了loop(具体请看trans1_9_1,在module_owner_approve这个Activity是parallel sign off的.

每个Activity里用Service调用一些send email, assign performer的方法, example:

   public static Map assignSectionManager(DispatchContext ctx, Map context) {

       Map result = null;
       String workEffortId = context.get("workEffortId").toString();
       GenericValue gv = getApplicationData(ctx, context);
       String partyId = gv.getString("sectionManager");
       String proxyId = ProxyFactory.getCurrentProxyId(partyId,
                                                       "XXX Sign Off");

       if (proxyId != null && proxyId.length() > 0)
           partyId = proxyId;

       //get a dispacther and set up the context
       LocalDispatcher dispatcher = ctx.getDispatcher();
       context = UtilMisc.toMap("workEffortId", workEffortId, "partyId",
                                partyId, "roleTypeId", "sectionManagers",
                                "removeOldAssignments", "true");

       //run workflow assignment service
       try {
           result = dispatcher.runSync("wfAssignActivity", context);
       } catch (GenericServiceException gse) {
           Debug.logError(gse);
       }

       //update the gv state
       try {
           gv.setString("currentState", "Section Manager: " + partyId);
           gv.store();
       } catch (GenericEntityException gee) {
           Debug.logError(gee);
       }

       //send email to section manager
       MiscUtil.sendEmail(partyId, "EMPLOYEE", gv, ctx);

       return result;
   }

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
用 Go 跑的更快:使用 Golang 为机器学习服务
Fire Workflow .net (java)企业级开源 1.0 beta
对鸡眼等几种常见脚病的诊治意见_张国钦
数据库连接池
GIF动画1
gv
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服