LFW框架技术红皮书Word下载.docx
- 文档编号:812382
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:47
- 大小:371.88KB
LFW框架技术红皮书Word下载.docx
《LFW框架技术红皮书Word下载.docx》由会员分享,可在线阅读,更多相关《LFW框架技术红皮书Word下载.docx(47页珍藏版)》请在冰点文库上搜索。
nc.uap.wfm.itf.IWfmFlwTypeQry
nc.uap.wfm.itf.IWfmFlwTypeBill
工具类
nc.uap.wfm.utils.WfmFlwTypeUti
扩展类(流程类型服务类):
可设置流程类型服务类,提供编辑流程定义相关扩展以及流程引擎相关扩展。
需要实现接口nc.uap.wfm.engine.IWfmFormOper,建议继承nc.uap.wfm.dftimpl.DefaultFormOper,主要方法:
WfmFormInfoCtxgetWfmFormInfoCtx(Stringpk_frmins,Stringpk_flwtype)
获取表单信息
voidsaveFormInfoCtx(WfmFormInfoCtxwfmFormInfoCtx)
保存单据(流程监控终止流程后,需要修改对应的单据状态,该方法实现不同业务逻辑单据的保存)
VoidsaveFormInfoCtx(WfmFormInfoCtxwfmFormInfoCtx)
单据保存(调用流程引擎内核前的单据保存操作)
update(WfmFormInfoCtxfrmInfoCtx,WfmFlowInfoCtxflwInfoCtx)
单据更新(调用流程引擎后的单据更新方法,此时的单据上下文中已经回写了流程信息)
TaskProcessUIgetHanlderUrlByTask(Tasktask)
获取审批URL
ProDefgetProDefByFlowTypeAndOrg(Stringpk_flwtype,Stringpk_user,Stringpk_org,Stringpk_group)
获取可发起流程定义
ProDefgetProDefByFlowTypeAndOrg(Stringpk_flwtype,Stringpk_user,Stringpk_org,Stringpk_group,WfmFormInfoCtxfrmInfoCtx)
TaskProcessUIgetExtAttrSettingUrl(ProDefproDef,HumActhumAct)
获取流程定义上的扩张属性URL
voidafterInsertProDef(ProDefproDef,booleannewversion)
新增流程定义后扩展操作
voidafterUpdateProDef(ProDefproDef)
更新流程定义后扩展操作
voidbeforeShowDesigner(Stringpk_prodef)
打开流程设计器前扩展操作
voidafterDeleteProDef(ProDefproDef)
删除流程定义后扩展操作
Class<
WfmFormInfoCtx>
[]getBizMetaDataDesc(WfmFlwTypeVOflowTypeVo)
获取业务元数据
Map<
String,String>
getFormFields(SuperVOformvo,Stringpk_prodef)
获取单据字段
StringgetFormTitle(WfmFormInfoCtxformInfoCtx,WfmFlowInfoCtxflwInfoCtx)
获取单据标题
StringgetTemplatePK(StringuserId,StringdeviceType,Tasktask)
获取单据模板
LfwFileVO[]getMessageAttachmentList(Tasktask)
获取附件
String[]getRelationFields(Stringpk_flwtype)
获取映射字段
voidsetWriteBackOpinion(Stringopinion,UFDateTimeauditDate,Stringpk_owner,StringwriteFields,WfmFormInfoCtxformInoCtx)
设置回写意见
IBeangetBean(StringflowTypePk,WfmFormInfoCtxwfmFormInfoCtx)
获取元数据
String,Object>
uploadFile(Stringuserid,Tasktask,Stringid,Stringtype,Stringname,Stringcontent)throwsBusinessException
上传附件
voidafterAddSign(StringoldProdefPk,ProDefnewProdef)
后加签处理扩展
1.2.3业务子流程
业务子类型:
业务类型中针对某一特性的具体业务类型。
通过实现业务子类型业务接口(uap.lfw.wfm.busitype.ISubBusiType),指定业务子类型字段(字段类型必须为枚举)。
工具类:
uap.lfw.busitype.subbusi.utils.SubBusiTypeUtil
1.2.4编码规则
编码规则:
提供生成供单据编号的规则。
包含流水号,字符串常量,当前日期三种编码规则元素。
1)编码规则:
编码规则VO
nc.uap.wfm.vo.WfmFrmNumRuleVO
wfm_frmnumrule
nc.uap.wfm.itf.IWfmFrmNumRuleQry
nc.uap.wfm.itf.IWfmFrmNumRuleBill
2)编码规则元素:
nc.uap.wfm.vo.WfmFrmNumElemVO
wfm_frmnumelem
nc.uap.wfm.itf.IWfmFrmNumElemQry
nc.uap.wfm.itf.IWfmFrmNumElemBill
3)单据编号:
共4种获取方式:
1)从单据上获取
WfmFormInfoCtxformInoCtx=PwfmContext.getCurrentBpmnSession().getFormVo();
if(formInoCtx!
=null){
StringfrmNumBillField=formInoCtx.getBillMakeNumbField();
StringfrmNumBillValue=(String)
formInoCtx.getAttributeValue(frmNumBillField);
2)根据自定义生成类获取
自定义类实现接口:
nc.uap.wfm.engine.IFrmNumBillGen,
建议继承nc.uap.wfm.dftimpl.DefaultFrmBillNumGen重写方法
Stringnc.uap.wfm.engine.IFrmNumBillGen.getValue(StringflowTypePk,StringtaskPk)。
3)根据流程类型对应的编码规则获取
Stringnc.uap.wfm.utils.WfmFrmNumUtil.genFrmNum(Stringpk_flwtype)
自动生成单据编号
4)默认以当前时间为单据编号。
frmNumBillValue=newUFDateTime().toLocalString();
nc.uap.wfm.utils.WfmFrmNumUtil
1.2.5流程查找
根据流程类型、组织条件查找当前人可使用的流程定义,查找规则如下。
如果流程类型允许下级替换,下级组织可优先查找本组织下的流程定义(多条满足取流程定义管理界面中第一条),若此流程类型具有业务子类型,则优先查找具体业务子类型中的流程定义,业务子类型中找不到流程定义则查找本类型中的流程定义,本流程类型中找不到流程定义则查找父类型中的流程定义。
1.3流程定义
流程定义:
描述一个完整的业务过程,有若干个活动组成。
可通过流程设计器进行可视化设计,也可通过代码生成。
实体VO
nc.uap.wfm.vo.WfmProdefVO
wfm_prodef
nc.uap.wfm.itf.IWfmProDefQry
nc.uap.wfm.itf.IWfmProDefBill
nc.uap.wfm.utils.WfmProDefUtil
StringgetFrmNumBillServerClass()
获取单据编号自定义生成类
String,String>
getExtAttr(ProDefproDef,StringfrmDefPk)
获取扩展属性
getExtAttrName(ProDefproDef,StringfrmDefPk)
获取扩展属性名称
getQryTaskAttr(ProDefproDef,StringfrmDefPk);
获取任务查询扩展配置:
StringgetMyPrtptPageModel(StringfrmDefPk)
获取待办任务扩展pageModel:
;
voidafterCreateProIns(ProInsproIns)
流程实例创建后扩展:
voidafterCompleteProIns(ProInsproIns)
流程实例完成后扩展
扩展:
实现接口nc.uap.wfm.engine.IProDefExtHandler,建议继承nc.uap.wfm.dftimpl.DefaultProDefExt重写相关方法,主要方法:
1.4流程设计器
流程设计器:
对业务过程进程可视化描述,以便用XML表示业务过程,提供流程定义(设计态,运行态)
的工具。
流程设计器3-1-1
1.4.1流程设计器组成
流程设计器主要构件:
功能菜单,元素按钮,画布,属性展示界面。
1.4.1.1功能菜单
✧导入:
将本地的流程定义XML文件导入流程设计器。
✧导出:
将流程设计器中的流程定义XML文件导出至本地存储。
✧保存:
将流程定义XML文件上传至服务器保存。
✧清空:
将流程设计器中的XML文件清空。
✧删除:
将画布中被选中的元素以及与元素相关的路由元素删除。
✧撤销:
将流程定义恢复至上一步。
✧重做:
将上一次撤销的动作恢复。
✧导出图片:
将流程设计器中画布以图片的形式保存到本地。
✧查看XML文件:
查看流程设计器中的XML文件。
1.4.1.2画布
可视化展示流程设计的界面,可以自由拖动元素以设定其位置和大小。
1.4.1.3元素按钮
✧顺序流:
连接费路由活动,以画布上已选定元素为起点,若无已选定元素可自行选定起点。
✧开始环节:
拖动至画布中,代表流程的开始。
✧人工活动:
拖动至画布中,代表活动环节。
✧脚本活动:
拖动至画布中,代表脚本活动。
✧子流程:
拖动至画布中,代表子流程,可以在其内部设计流程。
✧网关:
拖动至画布中,代表决策网关。
✧结束环节:
拖动至画布中,代表流程的结束。
1.4.1.4属性界面
展示画布中选定元素的相关属性,公共属性:
编号(不可编辑),名称(可多语)。
Ø
主流程
(注意:
点击画布即可查看主流程信息)
流程描述:
详细描述流程信息。
允许收回:
设置当流程结束后是否允许收回
开始环节
单据处理类:
设置处理该单据的类。
需要实现接口nc.uap.wfm.engine.IHumActHandler,建议继承nc.uap.wfm.dftimpl.DefaultHumActHandler后重写相关方法;
此接口中有任务扩展处理类,需要实现接口nc.uap.wfm.engine.ITaskExtHandler,建议继承nc.uap.wfm.dftimpl.DefaultTaskExtHandler后重写相关方法
人工活动
◆活动类型:
审批、传阅、承办、逐级审批,根据业务需求选择以灵活配置其它属性。
审批:
默认活动类型,审批单据。
传阅:
只能查看单据。
承办:
既能配置主办人,又能配置协办人。
逐级审批:
以普通参与者为起点,逐级审批参与者为依据,进行查找下一步参与者。
现在默认配置逐级审批参与者可以为:
部门负责人、汇报关系。
◆活动处理类:
加载实现活动处理接口的类;
◆关联表单:
设置人工环节所要处理的表单
◆子流程:
设置本活动所包含的子流程
◆审批状态:
个性化设定审批类型的显示名称。
◆主办参与者:
默认配置,组织机构,角色,角色组,用户,用户组,汇报关系,虚拟角色,职务,岗位,同其他活动节点。
注册实现接口nc.uap.wfm.participant.IParticipantTypeConfig(建议继承nc.uap.wfm.participantdefault.DefaultParticipantType后重写相关方法)的插件,插件扩展点为WFM_PARTICIPANT(流程参与者),所属模块为webimp
◆协办参与者:
同主办参与者。
◆逐级审批参与组合:
当活动类型“逐级审批”时,设置逐级审批以便自动寻找下一步参与者。
◆权限控制:
加签,转发,抄送,由上一步指派,可编辑意见,同部门限定,催办,收回,附件上传,附件下载,附件删除,附件修改,附件查看。
◆任务完成策略:
普通:
任意完成一个,必须所有完成(并行,串行),完成多个(要求完成数,要求完成百分比)
当活动类型为“逐级审批”时,可设置审批次数、自定义条件等结束逐级审批,进入下一活动。
◆回退权限(允许回退,禁止回退),回退范围(上一步,全部活动,指定活动,驳回制单人),回退活动
◆任务创建提醒:
设定是否给任务接收人发送消息。
注册实现接口nc.uap.wfm.message.TaskCreatedMessageSender的插件,插件扩展点为tasknewcreated(消息接收人为制单人)或者tasknewcreatedtoapprover(消息接搜人为下一步审批人),所属模块为webimp
◆任务完成提醒:
同上。
注册实现接口nc.uap.wfm.message.TaskCompletedMessageSender
的插件,插件扩展点为taskcompleted,所属模块为webimp
◆时间估算:
提醒时间用于控制发送超时消息的时间。
工作时间用于控制超时动作的时间。
◆超时消息提醒:
设置任务超时提醒方式。
注册实现接口nc.uap.wfm.message.TaskOverTimeMessageSender
的插件,插件扩展点为taskovertime或者taskovertimetoapprover,所属模块为webimp
◆超时控制:
设置超时后的处理方式。
◆意见回写:
设置流程意见回写到单据的哪个字段。
脚本活动
活动处理类:
加载实现活动处理接口的类。
子流程
注入子流程,引入其他流程作为流程的一部分。
网关
类型
内嵌网关:
可以有多个出口
唯一网关:
只能有一个出口
聚合逻辑(与操作,或操作,按数量进行操作)
路由
✧排序号:
✧描述:
详细描述路由信息(显示在路由旁)。
✧自定义处理类:
自定义处理路由条件的类:
需要实现接口nc.uap.wfm.engine.ILogicDecision,建议继承nc.uap.wfm.dftimpl.DefaultLogicDecision后重写相关方法;
✧单据实体:
查询流程上的单据实体。
✧单据字段:
根据单据实体查询相关字段列表,选择条件判定所需要的字段。
✧判断条件:
对选定的单据字段添加判断条件。
✧表达式:
显示已添加断的判断条件,也可手工编辑判断条件。
条件单元:
${uap.lfw.dbl.vo.MetaDataBaseVO@enablestate}=='
1'
,
多条件关系${uap.lfw.dbl.vo.MetaDataBaseVO@enablestate}=='
&
&
${uap.lfw.dbl.vo.MetaDataBaseVO@pk_doc}like'
test001'
操作符:
,||,not
in,in(包含于),left
like(左包含),right
like(右包含),
not
like,like(包含),>
=,>
=,!
=,<
=,==,>
,<
1.5流程开发指南
1.5.1设置业务类型
设置业务分类,设置业务类型,设置编码规则,作为发起流程的入口。
实现业务分类服务类和业务类型服务类:
例如:
2实现业务分类服务类:
publicclassOAWfmFlowCateOperImplextendsDefaultWfmFlowCateOper{
//返回上级必须包括当前组织
@Override
publicString[]getAllParentOrgs(Stringpk_org){
IOAOrgQryServiceodorgsrv=NCLocator.getInstance().lookup(
IOAOrgQryService.class);
StringgroupId=InvocationInfoProxy.getInstance().getGroupId();
//集团没有上级
if(groupId.equals(pk_org))
returnnewString[]{groupId};
AdminOrgVO[]orgs=odorgsrv.getAdminOrgVOs(String.format(
"
pk_adminorg='
%s'
and%s"
pk_org,getOrgFilter(pk_org)));
//非行政组织返回上级为集团
if(orgs==null||orgs.length==0)
returnnewString[]{groupId,pk_org};
AdminOrgVOcurrentorg=orgs[0];
AdminOrgVO[]parents=odorgsrv.getAdminOrgVOs(getOrgFilter(pk_org));
ArrayList<
String>
parentPkOrgs=newArrayList<
();
parentPkOrgs.add(groupId);
if(parents!
for(AdminOrgVOorg:
parents){
if(currentorg.getInnercode().startsWith(org.getInnercode()))
parentPkOrgs.add(org.getPk_adminorg());
}
}
returnparentPkOrgs.toArray(newString[0]);
}
//返回下级不需要包括当前组织
publicString[]getAllChildOrgs(Stringpk_org){
IOAOrgQryServiceodorgsrv=NCLocator.getInstance().lookup(
childpks=newArrayList<
//集团返回全部下级组织
if(groupId.equals(pk_org)){
AdminOrgVO[]childs=odorgsrv.getAdminOrgVOs(getOrgFilter(pk_org));
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LFW 框架 技术 红皮书
![提示](https://static.bingdoc.com/images/bang_tan.gif)