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