資料拋轉動作按鈕的標準功能並不具備防止重複拋轉的機制。這是因為某些情境確實需要多次拋轉,例如一筆訂單分批出貨。此外,系統不會自動新增拋轉執行狀態的欄位,因此無法直接作為避免重複執行的依據。
若要避免重複拋轉,可以參考以下兩種方法:
可以先將來源表單的獨特值欄位拋轉到目的表單(該欄位需設為獨立欄位),再將此欄位設定為不可重複來達成。
以模組中「請購單」拋轉「採購單」為例,目前設有「轉採購」的拋轉動作按鈕如下:
若希望每一筆「請購單」資料只能夠被拋轉一次,可以參考以下步驟:
你必須要在所有列在資料拋轉動作按鈕的欄位中,找出適合當獨特值的欄位,例如:「編號」。若目前沒有合適的欄位,會需要調整動作按鈕的設計並加入可以當作獨特值的欄位。以上圖為例,執行拋轉的表單為「請購單」,而「請購單」可當作獨特值欄位的是「請購單號」欄位。
依據上圖,「請購單號」欄位的對應拋轉欄位為「來自請購單號」欄位,則在該欄位設定不可重複屬性。
未來當其他使用者再次點擊該動作按鈕時,系統即會因為不可重複的屬性阻擋,並提示已經有重複的資料而拋轉失敗。
新增一個紀錄是否已執行過拋轉的欄位,再建立一個更新這張表單欄位值的按鈕,用來更新該狀態欄位,並將此按鈕與原本的拋轉按鈕合併。最後,再透過條件式格式設定當狀態欄位顯示為已執行時將資料拋轉按鈕上鎖或隱藏。
以「請購單」拋轉「採購單」為例:
在「請購單」上新增一個打勾選項欄位,命名為「是否拋轉」,並將預設值設為「No」。
建立更新這張表單欄位值的動作按鈕,將「是否拋轉」欄位值改為「Yes」。
接著將「是否拋轉」和「轉採購單」的動作按鈕合併,命名為「轉採購並確認拋轉」。未來執行此合併按鈕,就可以產生「採購單」後,同時將「是否拋轉」改為「Yes」。
在條件式格式設定中,設定條件當「是否拋轉」為「Yes」時,將「轉採購並確認拋轉」按鈕上鎖(或設定為隱藏),以避免重複執行拋轉。也可以自訂點擊被上鎖按鈕時的提醒訊息。
設定完成後,建議將合併後不再需要單獨使用的動作按鈕設為隱藏;同時,將「是否拋轉」欄位隱藏或設為唯讀,避免使用者手動修改。
若考慮到拋轉資料可能輸入錯誤,在刪除錯誤資料後需要重新執行拋轉時,可依第二步驟新增另一個動作按鈕,將「是否拋轉」更新為「No」,以解鎖被上鎖的按鈕。