• <menu id="mu4wy"></menu>
  • <input id="mu4wy"><acronym id="mu4wy"></acronym></input>
  • <menu id="mu4wy"></menu><nav id="mu4wy"></nav>
  • <input id="mu4wy"><tt id="mu4wy"></tt></input>
    <input id="mu4wy"><u id="mu4wy"></u></input>
  • <menu id="mu4wy"></menu>
  • <input id="mu4wy"><u id="mu4wy"></u></input>
    <input id="mu4wy"><u id="mu4wy"></u></input>
  •   點晴MIS內部交流論壇加入收藏
    新手上路
    論壇搜索
     您的位置:點晴MIS系統問題答疑『 工作流使用交流 』瀏覽當前帖子  
    登 陸注 冊論壇幫助  

      網站搜索
      搜索范圍: 搜索方式: 關鍵詞(可用空格分開)  

      作者及文章信息: 本文熱度:35297 % 
    admin

    積分:71639
    等級:網站管理員
    文數:12912
    注冊:2004-7-20

     信息   留言   主頁   編輯   引用    

    樓 頂 

     工作流數據來源設置及自定義SQL格式說明,實現用戶查詢調用


    先看一個工作流自定義數據源在采購申請單的應用范例:
    注意:視頻中的物料代碼、物料名稱、物料規格三列數據都是自動填充的,這個就是自定義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個)是輔助輸出字段,如果在后續調用時無需使用或需要部分使用的話,就可以留空全部或者保留需要的字段;
       后面的 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: 
     
    四、做好以上設定后,在新增工作流時,就可以自動將相關輔助信息帶過來了,不但提高了填表效率,而且避免了填表人填錯數據: 
    參考資料:
    點晴MIS系統后臺數據庫表字段結構說明:
    附件:點晴MIS系統數據庫表結構說明.xls

    該文章在 2021/12/18 8:47:58 編輯過

      離 線  2015-4-21 10:55:04 

    admin

    積分:71639
    等級:網站管理員
    文數:12912
    注冊:2004-7-20

     信息   留言   主頁   編輯   引用

    A9樓 
     


    SQL數據庫查詢簡單知識點講解教程下載:
    附件:SQL數據庫基礎講解.rar

    select name as main_info, userdept as remark1, userlevel as remark2, post_name as remark3,dept_all_code as order_sort1 from userinf where not (userdept='離職員工組' or userdept='網管')
    上面這句SQL可以調出系統用戶、所在部門、職級、崗位,按照部門內碼排序,不包括部門離職員工組和網管。

    同一個服務器上同一個數據庫中調用某個表的數據:
    select id as main_info, username as remark1, name as remark2, userdept as remark3, post_name as remark4, input_time as remark5, username as order_sort1, id as order_sort2 from userinf where username='$oabusyusername$'
    上面這句SQL可以調出系統用戶信息,調出的信息限定為當前申請人。

    同一個服務器中跨數據庫調用其他數據庫中某個表的數據:
    select id as main_info, username as remark1, name as remark2, userdept as remark3, post_name as remark4, input_time as remark5, username as order_sort1, id as order_sort2 from other_db_name.dbo.userinf where username='$oabusyusername$'
    注意:必須確保點晴OA中所用的數據庫訪問賬號有權限訪問其他數據庫,點晴OA訪問數據庫的用戶信息在根目錄下:global.asa中可以看到,一般建議有跨數據庫查詢的需求時,優選采用數據庫管理員賬號sa,不要使用點晴OA預置賬號clicksun。

    不同服務器中跨服務器調用其他服務器數據庫中某個表的數據:
    需要先在OA服務器中創建一個到其他數據庫的連接,以管理員身份進入點晴OA服務器,打開SQL Server管理器,執行以下存儲過程建立到其他服務器的數據庫連接:
    /*不同服務器數據庫之間的數據操作,創建鏈接服務器 */
    exec sp_addlinkedserver   'OtherDB', ' ', 'SQLOLEDB ', '192.168.*.**,1433';
    exec sp_addlinkedsrvlogin  'OtherDB', 'false ',null, 'sa', 'password';

    以上SQL為在OA服務器上創建一個到其他數據庫的連接:OtherDB,可以使用自定義的其他名稱,用英文(不要用中文),192.168.*.** 可以為其他服務器的IP地址或域名,1433為服務端口,如果是1433則可以直接用IP不用逗號這個端口:“,1433”,如果使用其他端口,則需要改成相應端口號,下面這個為訪問其他數據庫的用戶名及密碼,將password改成相應密碼即可。

    然后就可以正常使用以下SQL來連接到其他服務器了:
    select id as main_info, username as remark1, name as remark2, userdept as remark3, post_name as remark4, input_time as remark5, username as order_sort1, id as order_sort2 from OtherDB.other_db_name.dbo.userinf where username='$oabusyusername$'
    參數解釋:OtherDB (剛剛創建的其他服務器名稱).other_db_name (其他服務器上數據庫名稱).dbo (就是dbo,必須保留).userinf  (要連接的數據表名稱)
    注意:跨服務器調用數據必須要先在SQL Server中對目標SQL服務器進行手工配置連接成功,必須確保點晴OA中所用的數據庫訪問賬號有權限訪問其他數據庫,一般建議有跨服務器查詢的需求時,優選采用數據庫管理員賬號sa,不要使用普通賬號以免權限不足而無法通過檢測。

    以下命令可以查看上述存儲過程是否執行成功:
    select * from sys.servers;


    刪除這個數據庫連接的方法為執行:
    exec sp_dropserver  'OtherDB', 'droplogins';
    沒有特殊原因創建后不要刪除這個連接,否則會導致上述SQL語句無法執行生效。

    該文章在 2019/8/10 18:32:47 編輯過

      離 線  2015-4-21 12:41:01 

    admin

    積分:71639
    等級:網站管理員
    文數:12912
    注冊:2004-7-20

     信息   留言   主頁   編輯   引用

    A8樓 
     


    下面是一個主表綁定自定義SQL的例子:

    1、先在自定義SQL中創建一個自定義數據源“姓名崗位”,可以調出點晴OA中用戶姓名所在崗位,其中姓名會自動綁定到指定的文本控件,崗位會綁定到ID為CS23的文本控件,主字段在工作流模板中是檢查人字段控件,CS23在工作流模板中是所在崗位字段控件:

    2、在相應的工作流模板中設定要綁定自定義SQL的字段,下面為CS22檢查人控件綁定數據來源“姓名崗位”,為防止用戶自行錄入內容,可以將CS22和CS23兩個字段都設置為禁止錄入,必須用自定義SQL數據源來填充:

    3、在相應的工作流申請頁面就可以使用這個自定義SQL數據源效果了:


    注意看上面的檢查人所在崗位字段,都是自定義SQL數據源自動填充的。


    該文章在 2019/5/27 19:21:14 編輯過

      離 線  2015-5-5 17:26:49 

    admin

    積分:71639
    等級:網站管理員
    文數:12912
    注冊:2004-7-20

     信息   留言   主頁   編輯   引用

    A7樓 
     


    【學仙】點晴客服 2015-05-05 17:23:25
    本功能可以實現點晴OA內部不同模塊、甚至點晴OA與其他管理系統的數據自動調用
    這個功能用好了會十分的方便

    【學神】mar 2015-05-05 17:23:24
    在慢慢研究你們的這個功能

    【學神】mar 2015-05-05 17:23:26
    哈哈

    【學仙】點晴客服 2015-05-05 17:24:23
    后面還有那個用戶身份識別的宏變量,也很有用的,對于自動調取數據時自動過濾為當前申請人的相關信息很有幫助

    【學神】mar 2015-05-05 17:24:55
    嗯 ,這個很有用

    【學弱】Fairy     2015-06-09 15:47:58
    怎樣自定義SQL格式?在哪
    工作流模板中 想要在OA中調出客戶名稱

    【學仙】點晴客服 2015-06-09 15:52:25
    http://workflow.cn22.net
    工作流數據來源設置及自定義SQL格式說明
    /mis/bbs/showbbs.asp?id=8368

    【學弱】Fairy     2015-06-09 15:55:02
    這2個網頁我都看了
    不是怎么編,我想問在哪編
    我現在做了一個模板,客戶名稱想要調取OA客戶關系管理中的,,我現在在這個模板的那個位置定義這個SQL呢,,初學者,麻煩了
    哪個位置?

    【學仙】點晴客服 2015-06-09 16:01:20
     

    該文章在 2019/5/27 19:07:11 編輯過

      離 線  2015-6-9 16:21:08 
      本文章共有 1 頁, 3 張回文,每頁有 10 張回文 >> [ 1 ]
    頁碼:

    Copyright 2003-2022 ClickSun All Rights Reserved

    第1彩票