如何在已存在的流程记录上发起流程?

目前在思泉软件开发平台上发起流程,会在与流程关联表单的实体表中新建一条记录,保存提交后流转审批。若是记录已经存在了,就不能在该记录上发起流程了。换个思路吧,从新建一个实体表关联到该存在的实体表,而后再新建一个流程,难点就在新的表单中要嵌套显示原表单。ide

案例分析:开票表单,走开票流程,完成以后调用远程接口开具电子发票。而后发现发票开错了,要冲正,就要再发起一个冲红流程。工具

开票管理实体:
image
url

开票冲红实体:(很简单,只须要有个关联字段就能够了)
image
spa

再看下表单设计,开票管理的表单ID为1200188,详细内容就不介绍了:
image
设计

开票冲红表单设计,要先自动生成,而后再改成自定义设计:
image
3d

取消选择右侧的“重构表单”,在源码视图下面加一些代码。一条分隔线,一个iframe用于内嵌显示开票表单(注意要设置高度),而后有一个遮罩,让内嵌的表单不能编辑。我还有写一个隐藏的input控件,若是你的应用中不须要能够删除。注意修改后切换出源码视图,再保存。orm

还须要设计开票冲红表单的脚本以及事件触发:
image
image
blog

下面来细看一下脚本:接口

//选择开票管理后触发事件事件

function afterChooseKP(id, textValue, ctl) {

if (id == null || id <= 0) {

return;

}

//formID为开票表单ID, listid和rm为开票列表ID

var url = "../FormDesign/BaseInfoForm.aspx?formId=1200188&listid=1200136&rm=1200136&bizId=" + id;

// frameKP为自定义的iframeID

$("#frameKP").attr("src", url);

//加载内嵌表单1秒后,隐藏工具栏按钮

setTimeout(function () {

$("#frameKP").contents().find("#vista_toolbar").hide();

}, 1000);

}

而后再为开票冲红表单创建一个工做流:image

而后就能够运行了,运行效果以下(红色区域为内嵌的表单):
image

相关文章
相关标签/搜索