客戶的工作流中有這樣一個(gè)需求,使用者在提交流程的時(shí)候需要自動(dòng)根據(jù)提交流程的計(jì)算機(jī)的登錄用戶來(lái)填充InfoPath表單中的UserName字段和Department(所在部門)字段,下面簡(jiǎn)單描述下我們的做法和思路:
自己寫了一個(gè)webService這個(gè)webservice輸入?yún)?shù)為accountId(代表當(dāng)前登錄的域用戶),webservice執(zhí)行在AD中的查詢返回一個(gè)UserInfo的類,這個(gè)類包含兩個(gè)字段:UserName和Department,部署webservice。下面說(shuō)明如何在InfoPath中調(diào)用這個(gè)webService,在infoPath表單中新建數(shù)據(jù)連接

點(diǎn)擊添加按鈕,選擇接受數(shù)據(jù)

選擇SOAP Web 服務(wù)

指定webservice的地址

這里顯示webservice里的方法

參數(shù)中顯示的是webservice里接受的參數(shù),在這里通過(guò)點(diǎn)擊設(shè)置值可以設(shè)置這個(gè)等參數(shù)的值,這里我們不手動(dòng)指定

輸入一個(gè)數(shù)據(jù)連接的名稱,去掉在打開表單時(shí)自動(dòng)檢索數(shù)據(jù),點(diǎn)擊完成。這樣就創(chuàng)建了一個(gè)數(shù)據(jù)連接。

下面我們來(lái)完成參數(shù)的輸入和表單中字段值的綁定,在表單中點(diǎn)擊數(shù)據(jù)選項(xiàng)卡然后點(diǎn)擊表單加載,看到如下規(guī)則添加畫面

點(diǎn)擊新建操作,如下圖

創(chuàng)建一個(gè)表單加載時(shí)的規(guī)則,我這里起名叫GetUserInfo

我這里指定一個(gè)規(guī)則觸發(fā)的條件,如下圖

條件添加完成以后的界面如下圖

在這個(gè)規(guī)則里按照如下順序創(chuàng)建操作:第一步 給webservice傳值,第二步 根據(jù)傳入的值查詢數(shù)據(jù) 第三步 將查詢結(jié)果和表單中的值綁定
選擇設(shè)置域值

在域中選擇要傳入的參數(shù)對(duì)應(yīng)的域


設(shè)置這個(gè)參數(shù)對(duì)應(yīng)的值

點(diǎn)擊插入函數(shù)

選擇用戶中的userName函數(shù)

添加查詢數(shù)據(jù)操作

操作類型選擇查詢數(shù)據(jù),選擇剛才建立的數(shù)據(jù)連接,點(diǎn)擊確定

以下綁定webservice返回值和InfoPath表單中的數(shù)據(jù),添加設(shè)置域值操作

在主域中選擇申請(qǐng)人的域點(diǎn)擊確定

在值中選擇插入域或組,如下圖

選擇GetUserInfo輔助域

獲取Name字段的值

如下圖

部門的綁定操作和名稱一樣

部門綁定完成以后規(guī)則如下圖所示

表單中的數(shù)據(jù)和webservice中的數(shù)據(jù)就綁定好了,發(fā)布表單到SharePoint 2010 庫(kù)中,新建表單,就可以獲取到當(dāng)前登錄的域用戶和所在的部門了。如下圖

到這里整個(gè)過(guò)程就完了