首頁>技術>

在開發過程中,經常設計了一個相對完整的功能,希望可以在其他業務處理過程中直接呼叫該功能來執行,而不需要在每個業務場景中重複實現該功能。例如我們可以實現一個產品入庫的功能,該功能可以判斷當前系統是否存在產品的庫存記錄,如果存在就直接update,否則save一條新的庫存記錄。這時候在採購入庫、退貨入庫、盤點入庫、其他入庫等業務場景中,就可以直接呼叫該功能執行入庫操作,這樣做的好處至少有兩個:

1、減少功能的重複實現。

2、當入庫邏輯改變時,可以只改入庫的功能,而無需在每個業務場景中一一調整。

只需要在後臺執行,而無需在前端展示互動的場景這裡稱為功能呼叫;需要將功能互動展示到前端的場景稱為功能跳轉。

依舊在白碼低程式碼開發平臺上實現。

準備工作:

1、產品庫存表

2、產品入庫功能:準備一個可以產品入庫功能,該功能可以判斷當前系統是否存在產品的庫存記錄,如果存在就直接update,否則save一條新的庫存記錄。

3、獲取產品入庫功能的相關id

1) 功能id(flow)

2) 輸入步驟id(procedure,看需要獲取)

3) 步驟裡的屬性id(field,看需要獲取)

功能跳轉

1、增加步驟:程式設計。

2、編寫跳轉“產品入庫”功能程式碼:

async function runProcess($model = model, $plugin = plugin, $params) {    //去除本功能的提交提示    $model.command("tips", {});     //功能跳轉    $model.command("program", {        flow: "6052bfcb4ae8b87062fd348a",//功能id        data: {//根據需要,向跳轉的功能裡傳遞資料            "6052c1a3746bcb706873b91c": {//需要傳遞資料的步驟id                "field_1616036415191": "",//該步驟裡需要傳遞資料的屬性id:傳遞的值            }        }    });}

3、至此,功能跳轉已實現,將功能釋出後,執行效果:

功能呼叫

1、根據業務需求新建一個功能,這裡使用“互動-輸入”步驟假設產品入庫資料錄入

2、新增程式設計步驟。

3、編寫呼叫功能程式碼

async function runProcess($model = model, $plugin = plugin, $params) {    /**獲取到入庫資訊資料步驟完整資料     * getValue(procedure)     * procedure:步驟id    */    let info = await $model.getValue("6052c465018e197061abd401");     //功能呼叫,引數:exec(flow,data)    await $plugin.program.exec("6052bfcb4ae8b87062fd348a", {//功能id        "6052c1a3746bcb706873b91c": {//需要傳遞資料的步驟id            //該步驟裡需要傳遞資料的屬性id:傳遞的值            "field_1616036415191": info["field_1616037011093"],//產品            "field_1616036415397": info["field_1616037011434"],//入庫數量        }    });}

4、至此功能呼叫已實現,將功能釋出後,執行效果:

2
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 傳輸層協議介紹