1 / 37

用 XBPM 开发工单

XBPM 基础培训系列. 用 XBPM 开发工单. 余红明. 大纲. 引例 认识开发环境 相关知识点介绍 案例实现 高级应用介绍 参考文档. 引例. 例子:出差借款申请. 员工出差前,可以申请出差补贴及住宿等费用。 申请流程需经 主管 , 经理 , 财务 审核,如借款金额大于 5000 ,需要经理审批。 申请成功,系统打款,并邮件通知相关人 申请失败,邮件通知申请人. 需求分析 UC. 明确业务数据 申请人,联系方式,出差地点,日期范围,借款金额,出差事务详情。 申请页面 审批页面 查看页面 处理记录列表. 流程图.

urania
Download Presentation

用 XBPM 开发工单

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. XBPM基础培训系列 用XBPM开发工单 余红明

  2. 大纲 • 引例 • 认识开发环境 • 相关知识点介绍 • 案例实现 • 高级应用介绍 • 参考文档

  3. 引例

  4. 例子:出差借款申请 • 员工出差前,可以申请出差补贴及住宿等费用。 • 申请流程需经主管,经理,财务审核,如借款金额大于5000,需要经理审批。 • 申请成功,系统打款,并邮件通知相关人 • 申请失败,邮件通知申请人

  5. 需求分析UC • 明确业务数据 • 申请人,联系方式,出差地点,日期范围,借款金额,出差事务详情。 • 申请页面 • 审批页面 • 查看页面 • 处理记录列表

  6. 流程图

  7. 认识开发环境(以vodka为例)

  8. 相关插件 • XBPM插件 • http://core-sys-dept.alibaba-inc.com:9999/eclipse_plugin/xbpm • Jtester插件 • http://beust.com/eclipse/ • XBPM插件使用 • 如图 2. 流程图设计 1.新建流程定义

  9. 相关Jar包 • alibaba\crm\bpm\bpmprocess • 流程相关 • alibaba\crm\bpm\bpmplugin-core • 规则引擎相关 • 依赖 • baza产品 • JBPM4

  10. Spring配置 • bpm-plugin-bean.xml • 定义了xbpm相关service、bo的bean • biz-data-source.xml • 定义了bpmDao、jarurl • sqlmap-config.xml • xbpm相关sqlmap

  11. 数据库表介绍 1 0…* 0…* 1 0…* 新 0…1

  12. 相关知识点介绍

  13. 回顾 • 节点 • 连接 • 事件 • 上下文 • 常用API 似乎还缺少点什么? 表单!

  14. 相关属性/上下文 • path • 开始节点、任务 • 用于指定页面路径 • alias • 用于在展示时查找页面路径 • $BIZ_SYSTEM_TYPE • approve.srv_customize

  15. 申请页面 • url格式 • vodka/…/xxx.xul?PROC_NAME=XBpm_LeaveDemo&SYSTEM_TYPE=approve.srv_customize • 2个参数必填!其余可选 • Prepare • 预定义CustomizeNewAction • 也可自己实现 • 负责models初始化、提供创建流程接口 • models • PROCINST • BUSIDATA • 若自己实现prepare,可自定义其他models

  16. 申请页面xul编写 • 业务数据表单绑定到BUSIDATA这个model • 编写save函数,如 <form name='BusiDataForm' binding='BUSIDATA' sceneId='${#request:bpmSceneId}'></form> function save(){ varprocInstObj = PROCINST.getRow();//流程数据 varBusiDataObj = BusiDataForm.getRow();//业务数据 varparamsList=[BusiDataObj]; shy.confirm('${#msg:xbpm_committask}', function(val){ if( val ){//创建流程 vardatainfo = shy.rpc.createProcess(procInstObj,BusiDataObj,paramsList); shy.alert(datainfo.message,function(){ if(datainfo.flag=='true'){window.close();} }); }}) };

  17. 创建流程规范 • 朱磊 - 通用创建流程接口设计及使用 • http://b2b-doc.alibaba-inc.com/pages/viewpage.action?pageId=42934289 • 提供统一接口 • 提供业务数据到xbpm业务数据的管理与转换功能

  18. 审批页面 • url格式(统一) • vodka/…/busidata.xbpmpage?INSTS=123,customize,456,XBpm_LeaveDemo.XBpm_LeaveDemo_Director • Prepare • 预定义CustomizeBaseAction • 预扩展CustomizeDataExtAction、CustomizeDataAllAction • 可自扩展 • 负责审批页面models的初始化,提供审批接口

  19. 审批页面的models • CustomizeBaseAction • XBpmJsonData: BUSIDATA_、 ACTINST_ • XBpmPvgInfo • CustomizeDataExtAction • XBpmOutTrans • XBpmJsonData: BUSIDATA_、 ACTINST_ 、PROCINST_ • CustomizeDataAllAction • XBpmJsonData: BUSIDATA_、ACTINST_ 、PROCINST_、ACTINSTEXT_

  20. 审批页面如何操作数据 • 在prepare中构造models • 绑定XBpmJsonData到xul页面的form • 绑定model中的字段到页面元素 • 注意字段遵循的命名规范 • 调用审批接口 • 将model还原成流程对象 //将Bean转换到对应的Map中 com.alibaba.xbpm.util.BpmConvertDataUtil.getXBpmMap(Object, HashMap, String) //从Map中获取对应的Bean com.alibaba.xbpm.util.BpmConvertDataUtil.getXBpmBean(Map<String, Object>, Object, String)

  21. sceneId场景模式 • 在展示审批/详情页面时指定某个模块的显示方式 • 当无权限处理任务时起作用 • bpmSceneId:用于面板的显示控制 • btSceneId:用于按钮的显示控制 • view_readonly只读 • view_text纯文本 • view_hidden隐藏 • view_not_render不渲染

  22. 其他 • 查看详情页面 • 复用审批页面 • 使用senseId控制面板显示状态,btSceneId=view_hidden,bpmSceneId=view_readonly • 查看历史流程 • 复用审批页面,查询历史表 • url参数xdatatype=his • 处理记录列表 • 参考现有页面

  23. 别忘Spirng注册 • <bean name='/bpm/leave_new.xul.do' class='com.alibaba.xbpm.web.xbpmaction.CustomizeNewAction' scope='singleton'/> • <bean name='/bpm/leave_approve.xul.do' class='com.alibaba.xbpm.web.xbpmaction.CustomizeDataExtAction' scope='singleton'/>

  24. 案例实现 分支:http://svn.alibaba-inc.com/repos/crm/vodka/branches/20100915_15263_1

  25. 确定业务字段

  26. 步骤 • 设计流程图 • 设置path、alias属性 • process\XBpm_LeaveDemo • 编写页面 • 申请(xul\bpm\leave_new.xul) • 审批(xul\bpm\leave_approve.xul)

  27. 打包、部署 • 打包 • 将流程定义的3个文件打包成zip格式的包,后缀改成parx • 部署 • 页面:vodka/admin/deployProcess.htm • 查看部署结果 • select * from bpm_lob l where l.procdef_name=?

  28. 测试、执行 • 提交申请 • vodka/bpm/leave_new.xul?PROC_NAME=XBpm_LeaveDemo&SYSTEM_TYPE=approve.srv_customize • 审批 • vodka/approve/xbpm_task.jsp

  29. 高级应用介绍

  30. 高级API • ProcessService • getContextValue(String, Long, String),根据流程实例和key名查询上下文表,这个方法只查bpm_variable表 • ActivityService • processJump(BpmActInst, String, Map<String, Object>),会在内存生成连接 • nodeEnter(BpmActInst, String, Map<String, Object>, boolean),直接进入目标节点 • changeContextByProcInstId(Long, Map<String, Object>),修改上下文

  31. BPM_ACTINST_EXT表 • 存在procinst,actinst和扩展字段,可以用来表明某个节点相关的数据,可以在不同业务中同一字段不同含义。 • 可用作业务数据表(当actinst=0)

  32. CustomizeBaseAction • Prepare • doApprove • doRead • 审阅工单 • addSubActInst • 转移工单

  33. 更复杂的AclmServiceDataAction • Prepare • doApproveOperation • doReadOperation • doProcessManualTask • doSaveSrvNote2Survey • 还有很多…… 仅供参考!遇到复杂业务时可自行扩展

  34. 任务类型 • BPM_TRANSFER • 转交任务taskType • BPM_BETRANSFER • 被转交的任务taskType • BPM_TIMER • 定时钟任务taskType • BPM_BACK • 退回任务taskType • BPM_BEENTERNODE • 被重新进入节点结束的任务taskType

  35. 工单状态 • STATE_NEW = "new“ • 已创建 • STATE_ASSIGN = "assign“ • 已分发 • STATE_TAKEOVER = "takeover“ • 已接手 • STATE_TEMPSAVE = "tempsave“ • 已暂存 • STATE_FINISH = "finish“ • 已完成 • STATE_CANCEL = "cancel“ • 已取消

  36. 参考文献 • 张惠华 - 个性化工单开发总结 • http://b2b-doc.alibaba-inc.com/pages/viewpage.action?pageId=42056794 • 章向明 - VODKA中XBPM动态表单customize模式配置说明 • http://b2b-doc.alibaba-inc.com/pages/viewpage.action?pageId=41910750 • 朱磊 - 通用创建流程接口设计及使用 • http://b2b-doc.alibaba-inc.com/pages/viewpage.action?pageId=42934289 • 文档中心-BPM(X-BPM开发使用手册.doc) • http://b2b-doc.alibaba-inc.com/pages/viewpage.action?pageId=13942923 • 工单开发手册 • http://b2b-doc.alibaba-inc.com/pages/viewpage.action?pageId=40564883

  37. Q&A

More Related