名易系統(tǒng)的流程數(shù)據(jù)由表單組成,表單有字段組成,這些字段的數(shù)據(jù)可以來自于名易OA辦公軟件名易OA系統(tǒng)系統(tǒng),也可以通過該接口直接獲取異構(gòu)系統(tǒng)的結(jié)構(gòu)型數(shù)據(jù)。 二.應(yīng)用效果 獲取異構(gòu)系統(tǒng)人員列表:如圖中表單中的瀏覽框直接顯示了異構(gòu)系統(tǒng)的人員數(shù)據(jù):
三.實(shí)現(xiàn)方法步驟
1.配置接口文件 文件browser.xml(該文件位于名易OA辦公軟件名易OA系統(tǒng)的WEB-INFervice目錄下) ?xmlversion=1.0encoding=GBK? moduleid=browserversion=1.0.0 dependencymodule-id=datasourceversion=1.0.0 service-pointid=resourceBrowserinterface=OA.interfaces.workflow.browser.Browser invoke-factory constructclass=OA.interfaces.workflow.browser.BaseBrowser set-serviceproperty=dsservice-id=datasource.dt1 setproperty=searchvalue=selectid,lastname,emailfromhrmresource setproperty=searchByIdvalue=selectlastname,emailfromhrmresourcewhereid=? setproperty=searchByNamevalue=selectid,lastname,emailfromhrmresourcewherelastnamelike? setproperty=nameHeadervalue=姓名 setproperty=descriptionHeadervalue=郵件 construct invoke-factory ervice-point service-pointid=bd_corpinterface=OA.interfaces.workflow.browser.Browser invoke-factory constructclass=OA.interfaces.workflow.browser.BaseBrowser set-serviceproperty=dsservice-id=datasource.dt2 setproperty=searchvalue=selectunitcode,unitcode,unitnamefrombd_corpbwhereisseal='N'orderbyb.unitcode setproperty=searchByIdvalue=selectunitcode,unitnamefrombd_corpwhereisseal='N'andunitcode=? setproperty=searchByNamevalue=selectunitcode,unitcode,unitnamefrombd_corpbwhereisseal='N'andunitcodelike?orderbyb.unitcode setproperty=nameHeadervalue=公司編碼 setproperty=descriptionHeadervalue=公司名稱 construct invoke-factory ervice-point module 以上配置文件中,實(shí)現(xiàn)了兩個(gè)自定義數(shù)據(jù)瀏覽頁面,黑體部分對(duì)于每個(gè)配置service-poinervice-poin必須根據(jù)需要個(gè)性化定義。每個(gè)配置文件中可以有多個(gè)service-pointervice-pointt。 注意:每次配置后需要重啟OA服務(wù)生效;
2.屬性說明 ◦service-pointid:每個(gè)異構(gòu)系統(tǒng)瀏覽數(shù)據(jù)的標(biāo)識(shí),在系統(tǒng)界面設(shè)置見根據(jù)該ID引用數(shù)據(jù) ◦service-id:設(shè)置前文配置的數(shù)據(jù)源,通過該數(shù)據(jù)源獲取異構(gòu)系統(tǒng)的數(shù)據(jù) ◦search:這里配置獲取數(shù)據(jù)的SQL語句,注意要保證獲取三個(gè)字段,如果字段不足則以常量表示如:selectid,1,2fromtable,該sql的作用指的是點(diǎn)開瀏覽按鈕的時(shí)候可選數(shù)據(jù)的范圍,注意該sql第一個(gè)返回值必須為唯一標(biāo)識(shí):一般是id之類,第二個(gè)返回值為顯示在瀏覽按鈕第一列的數(shù)據(jù),第三個(gè)返回值為顯示在瀏覽按鈕第二列的數(shù)據(jù),只要符合上面幾個(gè)要求的select語句都可以。 ◦searchById:這里配置獲取數(shù)據(jù)的SQL語句,注意要保證獲取兩個(gè)個(gè)字段,如果字段不足則以常量表示如:selectname,2fromtablewhereid=?,該sql的作用指的是,當(dāng)選中一個(gè)值之后,顯示什么數(shù)據(jù)在表單中(包括提交后,后續(xù)節(jié)點(diǎn)的的顯示),注意該sql第一個(gè)返回值,就是顯示在表單中的內(nèi)容,第二個(gè)返回值暫無具體作用,where后面的帶變量的條件就是第一條一句中的唯一標(biāo)識(shí)。只要符合上面幾個(gè)要求的select語句都可以。 ◦searchByName:這里定義在瀏覽按鈕選擇數(shù)據(jù)頁面可供查詢的關(guān)鍵字,注意要保證獲取三個(gè)字段,如果字段不足則以常量表示如:selectid,1,2fromtable,該sql的作用指的是點(diǎn)開瀏覽按鈕的時(shí)候?qū)g覽按鈕中的數(shù)據(jù)進(jìn)行查詢使用的,注意該sql(where前面的內(nèi)容需要和search中的sql保持一致),where后面的變量為第二列。只要符合上面幾個(gè)要求的select語句都可以。 ◦nameHeader:這里定義選擇數(shù)據(jù)頁面數(shù)據(jù)列的列名稱 ◦descriptionHeader:這里定義選擇數(shù)據(jù)頁面數(shù)據(jù)列的列名稱 ◦對(duì)于6.0以上版本的,search中的select語句中的條件還可以變量$userid$傳入當(dāng)前登錄賬號(hào)的id,來進(jìn)一步篩選可選數(shù)據(jù),作為控制權(quán)限的一種發(fā)放,如要實(shí)現(xiàn),每個(gè)人只能選擇自己創(chuàng)建的流程就可以通過這個(gè)sql實(shí)現(xiàn):SELECTa.requestid,a.requestname,b.lastnameFROMworkflow_requestbaseaINNERJOINHrmResourcebONa.creater=b.idwherecreater=$userid$orderbyrequestiddesc 3.在5.0及以上版本可以直接在進(jìn)行可視化的配置 通過頂部菜單【設(shè)置中心】à【外部接口設(shè)置】à【配置自定義瀏覽按鈕】即可進(jìn)入配置界面
點(diǎn)擊右鍵【新建】即可創(chuàng)建一個(gè)新的【自定義瀏覽按鈕】
注意:該配置,不需要重啟OA服務(wù)即可生效
4.可視化配置屬性說明 ◦自定義瀏覽按鈕標(biāo)識(shí),即xml配置中的service-pointid:每個(gè)異構(gòu)系統(tǒng)瀏覽數(shù)據(jù)的標(biāo)識(shí),在系統(tǒng)界面設(shè)置見根據(jù)該ID引用數(shù)據(jù) ◦數(shù)據(jù)源,即xml配置中的service-id:設(shè)置前文配置的數(shù)據(jù)源,通過該數(shù)據(jù)源獲取異構(gòu)系統(tǒng)的數(shù)據(jù) ◦無條件查詢,即xml配置中的search:這里配置獲取數(shù)據(jù)的SQL語句,注意要保證獲取三個(gè)字段,如果字段不足則以常量表示如:selectid,1,2fromtable,該sql的作用指的是點(diǎn)開瀏覽按鈕的時(shí)候可選數(shù)據(jù)的范圍,注意該sql第一個(gè)返回值必須為唯一標(biāo)識(shí):一般是id之類,第二個(gè)返回值為顯示在瀏覽按鈕第一列的數(shù)據(jù),第三個(gè)返回值為顯示在瀏覽按鈕第二列的數(shù)據(jù),只要符合上面幾個(gè)要求的select語句都可以。 ◦條件1查詢,即xml配置中的searchById:這里配置獲取數(shù)據(jù)的SQL語句,注意要保證獲取兩個(gè)個(gè)字段,如果字段不足則以常量表示如:selectname,2fromtablewhereid=?,該sql的作用指的是,當(dāng)選中一個(gè)值之后,顯示什么數(shù)據(jù)在表單中(包括提交后,后續(xù)節(jié)點(diǎn)的的顯示),注意該sql第一個(gè)返回值,就是顯示在表單中的內(nèi)容,第二個(gè)返回值暫無具體作用,where后面的帶變量的條件就是第一條一句中的唯一標(biāo)識(shí)。只要符合上面幾個(gè)要求的select語句都可以。 ◦條件2查詢,即xml配置中的searchByName:這里定義在瀏覽按鈕選擇數(shù)據(jù)頁面可供查詢的關(guān)鍵字,注意要保證獲取三個(gè)字段,如果字段不足則以常量表示如:selectid,1,2fromtable,該sql的作用指的是點(diǎn)開瀏覽按鈕的時(shí)候?qū)g覽按鈕中的數(shù)據(jù)進(jìn)行查詢使用的,注意該sql(where前面的內(nèi)容需要和search中的sql保持一致),where后面的變量為第二列。只要符合上面幾個(gè)要求的select語句都可以。 ◦列1顯示名,即xml配置中的nameHeader:這里定義選擇數(shù)據(jù)頁面數(shù)據(jù)列的列名稱 ◦列2顯示名,即xml配置中的descriptionHeader:這里定義選擇數(shù)據(jù)頁面數(shù)據(jù)列的列名稱 ◦對(duì)于6.0以上版本的,search中的select語句中的條件還可以變量$userid$傳入當(dāng)前登錄賬號(hào)的id,來進(jìn)一步篩選可選數(shù)據(jù),作為控制權(quán)限的一種發(fā)放,如要實(shí)現(xiàn),每個(gè)人只能選擇自己創(chuàng)建的流程就可以通過這個(gè)sql實(shí)現(xiàn):SELECTa.requestid,a.requestname,b.lastnameFROMworkflow_requestbaseaINNERJOINHrmResourcebONa.creater=b.idwherecreater=$userid$orderbyrequestiddesc
5.獲取異構(gòu)系統(tǒng)的數(shù)據(jù)作為流程字段的系統(tǒng)設(shè)置 聲明完上述XML文件可以在名易OA辦公軟件名易OA系統(tǒng)表單字段管理中進(jìn)行配置如何調(diào)用異構(gòu)系統(tǒng)的數(shù)據(jù),調(diào)用上述配置的方式為browser.service-pointid,上述配置將形成browser.resourceBrowser,browser.bd_corp兩個(gè)選項(xiàng) 設(shè)置完成,就可以實(shí)現(xiàn)在上文所示的流程界面某字段直接獲取配置好的異構(gòu)數(shù)據(jù)中的數(shù)據(jù)。
配置到流程中之后就可以直接使用了