工作流自定義SQL數據源設置說明,實現用戶查詢調用
當前位置:點晴教程→點晴OA辦公管理信息系統
→『 工作流使用交流 』
先看一個工作流自定義數據源在采購申請單的應用范例:
注意:視頻中的物料代碼、物料名稱、物料規格三列數據都是自動填充的,這個就是自定義SQL數據源的典型應用場景。
點晴OA中工作流申請表單模板中的字段支持自定義數據源,數據源可以是由網管一次性手工輸入的,也可以是自定義SQL語句查詢而來的。具體使用方法如下:
一、定義數據源類別: 點擊“模板管理”或“流程管理”,找到“數據源維護”,增加數據源類別:
二、對數據源類別增加數據有兩種方法,可以是由網管一次性手工輸入的、也可以是自定義SQL語句查詢而來的:
方法1、數據源由網管一次性手工輸入后供用戶調用:
說明:手工創建數據時,最多支持5個輔助屬性,并且需要將屬性綁定到申請模板中對應字段。
方法2、自定義SQL語句查詢后供用戶調用:
點晴MIS系統工作流模塊支持添加的字段自定義數據來源,數據可以來源于手工新增加的批量數據,也可以來源于點晴MIS系統現有數據庫數據,為了確保正確調用到需要的數據,自定義的SQL語句輸出時必須嚴格按照以下格式生成:
select *** as main_info, *** as remark1, *** as remark2, *** as remark3, *** as remark4, *** as remark5, *** as order_sort1, *** as order_sort2 from *** where **** and id='$oabusyuserid$' and product_name='$CS4$' and price>$SON01合計$ and **** 上面紅色部分是必須有的,并且主字段必須重命名為:main_info; 后面的 remark1, remark2, remark3, remark4, remark5, remark6, remark7, remark8, remark9, remark10, remark11, remark12, remark13, remark14, remark15, remark16, remark17, remark18, remark19, remark20 (最多支持導出20個)是輔助輸出字段,如果在后續調用時無需使用或需要部分使用的話,就可以留空全部或者保留需要的字段,注意,如果使用了嵌套查詢/子查詢,嵌套中出現的remark1~20字段也要加在最外層的select中;
后面的 order_sort1, order_sort2 用于排序,默認是asc(升序),如果需要降序輸出,可以直接在上面的SQL中追加該字段的降序排序:order by *** desc(降序),這兩個不是必須要有的,可以保留一個或都不提供。
上面這個SQL是被當成視圖在點晴OA中進行處理的,具體后臺處理方法為:select main_info, remark1, remark2, remark3, remark4, remark5 from (select *** as main_info, *** as remark1, *** as remark2, *** as remark3, *** as remark4, *** as remark5, *** as order_sort1, *** as order_sort2 from *** where **** and id='$oabusyuserid$' and product_name='$CS4$' and price>$SON01合計$ and ****) derive where main_info like '%***%' order by order_sort1, order_sort2
如果判斷上面自定義SQL中有order by,就不會追加后面這個“order by order_sort1, order_sort2”了,而是采用自定義SQL中的排序輸出:select main_info, remark1, remark2, remark3, remark4, remark5 from (select top (100) percent *** as main_info, *** as remark1, *** as remark2, *** as remark3, *** as remark4, *** as remark5 from *** where **** and id='$oabusyuserid$' and product_name='$CS4$' and price>$SON01合計$ and **** order by *** desc, *** desc) derive where main_info like '%***%'
如果自定義SQL中需要采用order by自定義排序,注意一定要在select后面加上約束 top (100) percent ,否則一定會報錯,詳情請參考以下教程:
請問工作流和萬能魔表兩個管理模塊的自定義SQL如何實現排序效果?現在總是報錯80040e14,除非另外還指定了TOP或FOR XML,否則ORDER BY子句在視圖、內聯函數、派生表、子查詢和公用表表達式中無效。[5] http://13585.oa22.cn 另外,為了方便更精確的控制查詢結果,SQL語句中也支持以下幾個宏變量:
$oabusyname$ :當前用戶中文姓名;
$oabusyusername$ :當前用戶英文登錄名(Email前綴);
$oabusyuserid$ :當前用戶內部ID;
$oabusyuserdept$ :當前用戶所在部門;
$oabusydept_inner_id$ :當前用戶所在部門內碼;
$oabusyuserlevel$ :當前用戶所在職級;
$oabusypost_name$ :當前用戶崗位名稱;
$oabusypost_inner_id$ :當前用戶崗位內碼;
$oabusymenber_id$ :當前用戶工號;
也支持直接將申請表中表單字段作為SQL中變量:
主表字段:
$CS1$、$CS2$、......、$CS9$、$CS10$、$CS11$、......、$CS98$、$CS99$ 明細表字段:
不支持作為SQL查詢條件 明細表合計字段: $SON01合計$、$SON02合計$、$SON03合計$、......、$SON19合計$、$SON20合計$ 注意: 1、以上主表和明細表合計字段都必須大寫,不允許用小寫; 2、主表字段小于10時前面無0、明細表字段小于10時前面有0; 3、主表字段和明細表合計字段才支持作為自定義SQL中的變量,明細表字段不支持作為自定義SQL中的變量; 以示例說明:$CS1$是正確的,$CS01$、$cs1$是錯誤的;$SON01合計$是正確的,$son01合計$、$SON1合計$、$SON01$、$SON1$是錯誤的。 4、以上主表和明細表字段只支持在申請時的自定義SQL中調用,不支持在審核和歸檔時的自定義SQL調用。
測試無誤后,還需要在下面 屬性1、屬性2、屬性3、屬性4、屬性5......、屬性19、屬性20 中勾選工作流設計表單中對應的字段ID,以后申請新的工作流時,就可以實現自動取數效果了,如果啟用了上述屬性信息,那么還可以實現輔助字段的自動錄入效果。
三、設置只有一個查詢結果時是否自動填充并綁定表單模板字段
采用以上兩種方法添加數據源時,需要注意如果查詢結果只有一個的話,系統默認會自動完成填充反寫到申請表對應的字段,無須用戶再次點擊。如果覺得不方便,管理員也可以不勾選該項目:
另外,務必對數據源帶出的信息綁定到表單模板中的對應字段上,綁定方法如下:
上面的SON02、SON03就對應著自定義表單中的SON02、SON03:
四、做好以上設定后,在新增工作流時,就可以自動將相關輔助信息帶過來了,不但提高了填表效率,而且避免了填表人填錯數據:
參考資料:
該文章在 2023/7/10 9:11:41 編輯過
|
關鍵字查詢
相關文章
正在查詢... |