如何在已存在的流程記錄上發起流程?

leiwencheng發表於2020-11-26

 目前在思泉軟體開發平臺上發起流程,會在與流程關聯表單的實體表中新建一條記錄,儲存提交後流轉審批。如果記錄已經存在了,就不能在該記錄上發起流程了。換個思路吧,重新建一個實體表關聯到該存在的實體表,然後再新建一個流程,難點就在新的表單中要巢狀顯示原表單。

  案例分析:開票表單,走開票流程,完成之後呼叫遠端介面開具電子發票。然後發現發票開錯了,要衝正,就要再發起一個衝紅流程。

開票管理實體:

開票衝紅實體:(很簡單,只需要有個關聯欄位就可以了)

再看下錶單設計,開票管理的表單ID為1200188,詳細內容就不介紹了:

開票衝紅表單設計,要先自動生成,然後再改為自定義設計:

取消選擇右側的“重構表單”,在原始碼檢視下面加一些程式碼。一條分隔線,一個iframe用於內嵌顯示開票表單(注意要設定高度),然後有一個遮罩,讓內嵌的表單不能編輯。我還有寫一個隱藏的input控制元件,如果你的應用中不需要可以刪除。注意修改後切換出原始碼檢視,再儲存。

還需要設計開票衝紅表單的指令碼以及事件觸發:

下面來細看一下指令碼:

//選擇開票管理後觸發事件

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);

}

然後再為開票衝紅表單建立一個工作流:

然後就可以執行了,執行效果如下(紅色區域為內嵌的表單):

!

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章