Files
Omni_bpm.db/zen_bpm_define.txt
T
2026-03-16 00:38:53 +08:00

204 lines
9.3 KiB
Plaintext

DELIMITER //
CREATE OR REPLACE FUNCTION zen_bpm_define(
p_FunctionTag VARCHAR(100),
p_FunctionTag_org VARCHAR(100),
p_pk VARCHAR(100),
p_ip VARCHAR(100),
p_db VARCHAR(100)
)
RETURNS TEXT
BEGIN
/*
function : 子程序, 回傳 bpm 表單所需的設定 json 內容, call by zen_create_json
description: 呼叫範例 select dbo.zen_bpm_define()
build date : 2022/11/14
modify history
item who date modify docs
==== ========== ========== ================================================
1 michael 2022/11/14 新增
2 Michael 2023-02-01 為了更加彈性, @ip 及 @db 這2個欄位改傳入 ${ls:xxxx}, 測試可行(程式要調整前端呼叫的程式)
3 Michael 2024-02-04 將 hard code 的 ip 及 db 改為 local store, 版本也改為 v2
4 Michael 2024-03-02 amis 之前改版, 命名時不能使用 bpm-xxx 否則會無法識別, 一次修正
5 Michael 2026-03-14 建議所有 sp 都統一加入 token, 先從上呈開始
*/
DECLARE v_rets TEXT;
DECLARE v_crlf CHAR(2);
DECLARE v_type CHAR(1); -- 是否為簽核用 view
SET v_crlf = CONCAT(CHAR(13), CHAR(10));
IF LOCATE('_', p_FunctionTag_org) > 0 THEN
SET v_type = 'Y';
ELSE
SET v_type = 'N';
END IF;
SET v_rets = CONCAT(
' {', v_crlf,
' "type": "button-toolbar",', v_crlf,
' "buttons": [', v_crlf,
CASE WHEN v_type = 'N' THEN
CONCAT(
' {', v_crlf,
' "type": "button",', v_crlf,
' "label": "上呈",', v_crlf,
' "actionType": "ajax",', v_crlf,
' "confirmText": "確定要上呈表單?",', v_crlf, -- 如果要手動修改, 連續輸入2個單引號即可存檔
' "disabledOn": "${flow_status != ''N''}",', v_crlf,
' "api": {', v_crlf,
' "method": "post",', v_crlf,
' "url": "${ls:base_ip}/xapi/v2/${ls:base_db}/bpmm02_spread/1/",', v_crlf,
' "data": {', v_crlf,
-- 新版統一加入 token 2026/03/14
' "token": "${ls:token}",', v_crlf,
' "para01": "', p_FunctionTag, '",', v_crlf,
-- 上呈人暫時先 hard code(慢慢想辦法), 目前是定義在 bpm_list.source_applicant (跨 db)
' "para02": "${personid}",', v_crlf,
' "para03": "${', p_pk, '}"', v_crlf,
' },', v_crlf,
' "dataType": "form"', v_crlf,
' },', v_crlf,
' "level": "primary"', v_crlf,
' },', v_crlf
)
ELSE
-- 同意
CONCAT(
' {', v_crlf,
' "type": "button",', v_crlf,
' "label": "同意",', v_crlf,
' "actionType": "dialog",', v_crlf,
' "level": "success",', v_crlf,
' "disabledOn": "${ls:bpm_signable == 0}",', v_crlf,
' "dialog": {', v_crlf,
' "title": "同意",', v_crlf,
' "size": "lg",', v_crlf,
' "body": {', v_crlf,
' "type": "service",', v_crlf,
' "schemaApi": {', v_crlf,
' "method": "post",', v_crlf,
' "url": "${ls:base_ip}/xapi/v2/${ls:wizard_db}/zen_showsource/0/",', v_crlf,
' "data": {', v_crlf,
' "para01": "bpmm11_i",', v_crlf,
' "para02": "beta@${', p_pk, '}"', v_crlf,
' },', v_crlf,
' "dataType": "form"', v_crlf,
' }', v_crlf,
' }', v_crlf,
' }', v_crlf,
' },', v_crlf,
-- 駁回
' {', v_crlf,
' "type": "button",', v_crlf,
' "label": "駁回",', v_crlf,
' "actionType": "dialog",', v_crlf,
' "level": "danger",', v_crlf,
' "disabledOn": "${ls:bpm_signable == 0}",', v_crlf,
' "dialog": {', v_crlf,
' "title": "駁回",', v_crlf,
' "size": "lg",', v_crlf,
' "body": {', v_crlf,
' "type": "service",', v_crlf,
' "schemaApi": {', v_crlf,
' "method": "post",', v_crlf,
' "url": "${ls:base_ip}/xapi/v2/${ls:wizard_db}/zen_showsource/0/",', v_crlf,
' "data": {', v_crlf,
' "para01": "bpmm12_i",', v_crlf,
' "para02": "beta@${', p_pk, '}"', v_crlf,
' },', v_crlf,
' "dataType": "form"', v_crlf,
' }', v_crlf,
' }', v_crlf,
' }', v_crlf,
' },', v_crlf,
-- 作廢
' {', v_crlf,
' "type": "button",', v_crlf,
' "label": "作廢",', v_crlf,
' "actionType": "dialog",', v_crlf,
' "level": "dark",', v_crlf,
' "disabledOn": "${ls:bpm_cancelable > 0}",', v_crlf,
' "dialog": {', v_crlf,
' "title": "作廢",', v_crlf,
' "size": "lg",', v_crlf,
' "body": {', v_crlf,
' "type": "service",', v_crlf,
' "schemaApi": {', v_crlf,
' "method": "post",', v_crlf,
' "url": "${ls:base_ip}/xapi/v2/${ls:wizard_db}/zen_showsource/0/",', v_crlf,
' "data": {', v_crlf,
' "para01": "bpmm13_i",', v_crlf,
' "para02": "beta@${', p_pk, '}"', v_crlf,
' },', v_crlf,
' "dataType": "form"', v_crlf,
' }', v_crlf,
' }', v_crlf,
' }', v_crlf,
' },', v_crlf
)
END,
-- 簽核歷程
CONCAT(
' {', v_crlf,
' "type": "button",', v_crlf,
' "label": "簽核歷程",', v_crlf,
' "actionType": "dialog",', v_crlf,
' "level": "warning",', v_crlf,
' "dialog": {', v_crlf,
' "title": "簽核歷程",', v_crlf,
' "size": "lg",', v_crlf,
' "body": {', v_crlf,
' "type": "service",', v_crlf,
' "schemaApi": {', v_crlf,
' "method": "post",', v_crlf,
' "url": "${ls:base_ip}/xapi/v2/${ls:wizard_db}/zen_showsource/0/",', v_crlf,
' "data": {', v_crlf,
' "para01": "bpmq11",', v_crlf,
' "para02": "beta@${', p_pk, '}",', v_crlf,
' "_tag": "', p_FunctionTag, '"', v_crlf,
' },', v_crlf,
' "dataType": "form",', v_crlf,
' "requestAdaptor": "local_set_params(51, api.data._tag); return { ...api, data: { ...api.data }};"', v_crlf,
' }', v_crlf,
' }', v_crlf,
' }', v_crlf,
' },', v_crlf,
-- 檢視後續簽核人
' {', v_crlf,
' "type": "button",', v_crlf,
' "label": "檢視流程簽核人",', v_crlf,
' "actionType": "dialog",', v_crlf,
' "level": "secondary",', v_crlf,
' "dialog": {', v_crlf,
' "title": "檢視流程簽核人",', v_crlf,
' "size": "lg",', v_crlf,
' "body": {', v_crlf,
' "type": "service",', v_crlf,
' "schemaApi": {', v_crlf,
' "method": "post",', v_crlf,
' "url": "${ls:base_ip}/xapi/v2/${ls:wizard_db}/zen_showsource/0/",', v_crlf,
' "data": {', v_crlf,
' "para01": "bpmq12",', v_crlf,
' "para02": "beta@${', p_pk, '}",', v_crlf,
' "_tag": "', p_FunctionTag, '"', v_crlf,
' },', v_crlf,
' "dataType": "form",', v_crlf,
' "requestAdaptor": "local_set_params(51, api.data._tag); return { ...api, data: { ...api.data }};"', v_crlf,
' }', v_crlf,
' }', v_crlf,
' }', v_crlf,
' }', v_crlf,
' ]', v_crlf,
' },', v_crlf,
' {', v_crlf,
' "type": "divider"', v_crlf,
' },', v_crlf
)
);
RETURN v_rets;
END //
DELIMITER ;