1.概述
本章节我们来一起学习一下主数据发布审批工作流的制作。待制作的工作流程为:有权限的用户发布元数据后由元数据管理员(用户zhangs)审批,审批通过,流程结束,元数据发布成功;审批不通过,退回给发起者,发起者修改提交后,数据管理员再次审批,直至审批通过。
2.制作步骤
2.1新建工作流
在【系统管理】-【工作流】-【流程管理】下点击【新建工作流】,打开工作流设计页面。
平台内置了流程模板,本例可基于内置的流程模板制作。
2.2设置URL活动
1)设置活动对象
选中URL活动,设置【活动对象】为自定义,【URL设置】为web/emeta/mdrecentdata/main.do?rid=@RID&isSameGroup=@IS_SAME_GROUP&groupId=@GROUP_ID&disableAllBtn=@DISABLEALLBTN
此URL地址为待发布的元数据挂载点的最新元数据页面地址。
2)设置办理人
设置办理人为流程启动者,这样只要用户能发布元数据,则能启动流程。
2.3设置审批活动
1)设置办理人
选中审批活动,设置【办理人】为单人办理,【从机构库选择】办理人为zhangs。
2)设置脚本
在审批活动上添加脚本实现审批通过后的发布最新元数据到定版元数据。
选中审批活动,在【脚本】-【执行前脚本】-【JS】中添加如下脚本:
var wnd = leftIframe.contentWindow; var mdId = wnd.mdId; if(!EUI.isStrEmpty(mdId)) { var canPublish = EUI.post({ url: EUI.getContextPath() + "emeta/mdrecentdata/checkMdPublishRight.do", data: { metadataid: mdId }, async: false }).getResponseJSON(); if(!canPublish) { self.canNotCommit = true; EUI.showError("您没有该元数据的发布权限,无法进行发布操作"); } } |
添加【执行后脚本】-【JS】脚本如下:
if(self._Paused_param && self._Paused_param.actCommand == "approvalPassed") { var mdId = self.startParam["@MD_ID"] ; var mdName = self.startParam["@MD_NAME"] ; var isSameGroup = self.startParam["@IS_SAME_GROUP"] ; var groupId = self.startParam["@GROUP_ID"] ; if(!EUI.isStrEmpty(mdId) && !EUI.isStrEmpty(mdName)) { EUI.post({ url: EUI.getContextPath() + "emeta/mdrecentdata/mdpublish.do", data: { metadataid: mdId, mdName: mdName, samegroup: isSameGroup, groupId: groupId }, callback: function (q) { pid = q.getResponseText(); if(!pid) return; var msgdlg = EUI.getRootWindow().EUI.getGlobalDlg("__ESEN$ShowMessage__"); if(msgdlg && msgdlg.hideDialog) { msgdlg.hideDialog(2000); } setTimeout(function () { showProgressDlg(pid); }, 2500); }, waitMessage: { message: "发布中,请稍候", finish: "发布成功!", error: "发布失败!" } }); function showProgressDlg(pid) { require(["emeta/js/utils"], function (utils) { utils.getRootTempDlg({ id: "EMET$MDPublishDialog", objectName: "EMetaProgressDialog", require: "emeta/js/progressdlg", onfinish: function (dlg) { dlg.setOnClose(function () { }); dlg.iframe.height = "0"; if(dlg.iframe.attachEvent) { dlg.iframe.onreadystatechange = function (e) { if(this.readyState == "complete") { dlg.iframe.height = "100%"; dlg.iframe.onreadystatechange = null; } }; } else{ dlg.iframe.onload = function () { dlg.iframe.height = "100%"; dlg.iframe.onload = null; }; } dlg.iframe.src = EUI.getContextPath() + "web/emeta/mdrecentgroup/delprogress.do?id="+ pid; dlg.showModal(); }, initParams: { caption: "元数据发布进度信息" } }); }) } } } |
2.5保存并发布
最后,修改工作流标题后【保存】和【发布】。
注:工作流只有发布后才能生效。
3.工作流绑定
接下来就可以在发布元数据时使用该工作流了,具体操作可以见管理元数据章节。
请先登录