统一协同工作平台用户管理、单点登录以及任务集成接口说明
?
1?概述
西北油田分公司信息化經(jīng)過(guò)長(zhǎng)期建設(shè),在各個(gè)業(yè)務(wù)點(diǎn)上,逐步搭建了適應(yīng)業(yè)務(wù)管理的信息化系統(tǒng),為分公司經(jīng)營(yíng)管理提供了強(qiáng)大的信息化輔助管理支撐。 但是,分公司前期建設(shè)的信息化系統(tǒng)都是基于傳統(tǒng)辦公自動(dòng)化OA,目前逐步形成了多個(gè)單獨(dú)業(yè)務(wù)系統(tǒng)組成的OA,如公文、合同、招投標(biāo)、預(yù)結(jié)算等系統(tǒng),這些系統(tǒng)之間沒(méi)有統(tǒng)一的技術(shù)和數(shù)據(jù)標(biāo)準(zhǔn),數(shù)據(jù)不能自動(dòng)傳遞和共享,流程控制和標(biāo)準(zhǔn)多樣化,從而形成了一個(gè)個(gè)彼此隔離的信息孤島。
????在此背景上,西北油田分公司搭建了一套整合分公司各種信息資源庫(kù)的協(xié)同工作平臺(tái),形成統(tǒng)一、綜合、開放的辦公應(yīng)用平臺(tái)。
本文檔為西北油田分公司內(nèi)部應(yīng)用系統(tǒng)接入統(tǒng)一的協(xié)同工作平臺(tái)提供指導(dǎo),提供應(yīng)用系統(tǒng)接入統(tǒng)一用戶管理平臺(tái)、實(shí)現(xiàn)單點(diǎn)登錄和統(tǒng)一任務(wù)集成的接口說(shuō)明。
2?單點(diǎn)登錄實(shí)現(xiàn)
2.1?原理概述
單點(diǎn)登錄系統(tǒng)提供統(tǒng)一的認(rèn)證頁(yè)面、統(tǒng)一的當(dāng)前用戶加密和解密服務(wù)。
用戶通過(guò)統(tǒng)一認(rèn)證頁(yè)面登錄系統(tǒng),當(dāng)用戶需要訪問(wèn)企業(yè)內(nèi)部應(yīng)用系統(tǒng)時(shí),單點(diǎn)登錄加密當(dāng)前用戶身份跳轉(zhuǎn)至指定的應(yīng)用系統(tǒng),指定應(yīng)用系統(tǒng)獲取到當(dāng)前加密身份后,通過(guò)調(diào)用單點(diǎn)登錄服務(wù)進(jìn)行解密,獲取到用戶真實(shí)身份進(jìn)行認(rèn)證。
當(dāng)統(tǒng)一認(rèn)證頁(yè)面采用Windows認(rèn)證模式時(shí),那么同樣采用Windows認(rèn)證模式的應(yīng)用系統(tǒng),必須部署在同一應(yīng)用程序池下,對(duì)于其他非Windows認(rèn)證的系統(tǒng),將采取上述加密跳轉(zhuǎn)的方式。
?
圖:應(yīng)用系統(tǒng)單點(diǎn)登錄實(shí)現(xiàn)過(guò)程
2.2?統(tǒng)一認(rèn)證頁(yè)面
由單點(diǎn)登錄系統(tǒng)提供,使用統(tǒng)一用戶管理平臺(tái)的賬號(hào)和密碼進(jìn)行驗(yàn)證。用戶訪問(wèn)企業(yè)內(nèi)網(wǎng)門戶或應(yīng)用系統(tǒng)時(shí),如果檢測(cè)到未登錄,則跳轉(zhuǎn)至統(tǒng)一認(rèn)證頁(yè)面,用戶登錄后,再跳轉(zhuǎn)至用戶訪問(wèn)的頁(yè)面。
統(tǒng)一認(rèn)證頁(yè)面地址:http://10.16.0.168/Portal/Login.aspx
統(tǒng)一認(rèn)證頁(yè)面輸入輸出參數(shù)如下
應(yīng)用系統(tǒng)未認(rèn)證時(shí),跳轉(zhuǎn)至統(tǒng)一認(rèn)證頁(yè)面,輸入?yún)?shù):
|
編碼 |
輸入方式 |
描述 |
|
SystemCode |
Get/post |
系統(tǒng)編碼,由單點(diǎn)登錄系統(tǒng)提供指定的編碼,每個(gè)應(yīng)用系統(tǒng)唯一,輸入為空時(shí),跳轉(zhuǎn)至默認(rèn)的門戶頁(yè)面 |
|
URL |
Get/post |
登錄成功后,跳轉(zhuǎn)到的應(yīng)用系統(tǒng)URL,輸入為空時(shí),跳轉(zhuǎn)至默認(rèn)的門戶頁(yè)面 |
統(tǒng)一認(rèn)證完成后,跳轉(zhuǎn)至應(yīng)用系統(tǒng)指定URL,輸出參數(shù):
|
編碼 |
輸入方式 |
描述 |
|
Token |
Get |
一次有效的驗(yàn)證Token,調(diào)用單點(diǎn)登錄服務(wù),可以得到當(dāng)前用戶的真實(shí)信息 |
2.3?單點(diǎn)認(rèn)證服務(wù)
單點(diǎn)認(rèn)證服務(wù)是提供給企業(yè)應(yīng)用系統(tǒng)進(jìn)行登錄驗(yàn)證的服務(wù),企業(yè)應(yīng)用系統(tǒng)獲取到Token后,以自己對(duì)應(yīng)單點(diǎn)登錄的SystemCode和Secret值,進(jìn)行調(diào)用單點(diǎn)登錄服務(wù),解析得到統(tǒng)一平臺(tái)的用戶登錄信息。
服務(wù)地址:http://10.16.0.168/SSO.asmx
單點(diǎn)認(rèn)證服務(wù)提供2個(gè)WebService服務(wù)接口:
ü?獲取統(tǒng)一認(rèn)證平臺(tái)用戶賬號(hào)接口
|
接口名稱 |
GetAuthenticationUser |
|
|
接口說(shuō)明 |
獲取已登錄統(tǒng)一認(rèn)證平臺(tái)的用戶賬號(hào) |
|
|
輸入?yún)?shù) |
||
|
參數(shù)編碼 |
類型 |
說(shuō)明 |
|
SystemCode |
String |
傳入系統(tǒng)編碼 |
|
Secret |
String |
傳入系統(tǒng)秘鑰 |
|
Token |
Stirng |
登錄信息 |
|
輸出參數(shù) |
||
|
類型 |
說(shuō)明 |
|
|
String |
返回當(dāng)前已登錄統(tǒng)一認(rèn)證系統(tǒng)的登錄賬號(hào) |
|
ü?更改Secret接口
|
接口名稱 |
UpdateSecret |
|
|
接口說(shuō)明 |
更改統(tǒng)一認(rèn)證Secret信息 |
|
|
輸入?yún)?shù) |
||
|
參數(shù)編碼 |
類型 |
說(shuō)明 |
|
SystemCode |
String |
傳入系統(tǒng)編碼 |
|
Secret |
String |
傳入舊的系統(tǒng)秘鑰 |
|
NewSecret |
Stirng |
傳入新的Secret信息 |
|
輸出參數(shù) |
||
|
類型 |
說(shuō)明 |
|
|
bool |
返回更改Secret值是否成功 |
|
?
3?應(yīng)用系統(tǒng)單點(diǎn)登錄接入
3.1?獲取系統(tǒng)編碼
系統(tǒng)編碼是由單點(diǎn)登錄服務(wù)提供的系統(tǒng)編碼和解密秘鑰。
|
編碼 |
名稱 |
說(shuō)明 |
|
SystemCode |
系統(tǒng)編碼 |
文本類型,系統(tǒng)編碼、企業(yè)內(nèi)部唯一,不可變更 |
|
Secret |
解密秘鑰 |
文本類型,調(diào)用解密服務(wù)需要傳入的參數(shù),可以調(diào)用單點(diǎn)登錄服務(wù)修改 |
以下是各應(yīng)用系統(tǒng)編碼,Secret可調(diào)用接口(參考3.4.4章節(jié))自行修改:
|
系統(tǒng)名稱 |
SystemCode |
Secret |
|
電子考勤系統(tǒng) |
DZKQ |
DZKQ |
|
生產(chǎn)經(jīng)營(yíng)系統(tǒng) |
SCJY |
SCJY |
|
招投標(biāo)系統(tǒng) |
ZTB |
ZTB |
|
無(wú)紙化會(huì)議 |
WZHHY |
WZHHY |
|
領(lǐng)導(dǎo)動(dòng)態(tài) |
LDDT |
LDDT |
3.2?統(tǒng)一登錄頁(yè)面
注:該功能為預(yù)留使用,本期項(xiàng)目可以不實(shí)現(xiàn),應(yīng)用系統(tǒng)只需要做好單點(diǎn)登錄,仍然可保留已有的登錄界面,讓用戶即可從統(tǒng)一平臺(tái)登錄界面進(jìn)行登錄系統(tǒng),也可以從已有的系統(tǒng)登錄界面進(jìn)行登錄系統(tǒng)。
統(tǒng)一單點(diǎn)登錄頁(yè)面URL:http://10.16.0.168/Portal/Login.aspx
當(dāng)用戶請(qǐng)求頁(yè)面,并且未登錄時(shí),統(tǒng)一跳轉(zhuǎn)至單點(diǎn)登錄服務(wù)提供的登錄頁(yè)面地址,
http://10.16.0.168/Portal/Login.aspx?q={URL}&SystemCode={SystemCode}
參數(shù)說(shuō)明
|
編碼 |
名稱 |
說(shuō)明 |
|
URL |
應(yīng)用系統(tǒng)URL |
單點(diǎn)登錄成功后跳轉(zhuǎn)到應(yīng)用系統(tǒng)的URL地址 |
|
SystemCode |
系統(tǒng)編碼 |
單點(diǎn)登錄系統(tǒng)編碼 |
示例:當(dāng)前應(yīng)用系統(tǒng)編碼是SCJY,用戶請(qǐng)求的頁(yè)面URL為:http://192.0.0.1/Default.aspx,
則跳轉(zhuǎn)至:
|
http://10.16.0.168/Portal/Login.aspx?q= http://192.0.0.1/Default.aspx&SystemCode=SCJY |
3.3?系統(tǒng)間單點(diǎn)登錄跳轉(zhuǎn)
系統(tǒng)之家的單點(diǎn)登錄實(shí)現(xiàn),都需要通過(guò)統(tǒng)一登錄頁(yè)面進(jìn)行實(shí)現(xiàn),例如A系統(tǒng)訪問(wèn)B系統(tǒng)的 Default.aspx頁(yè)面,則需要使用:http://10.16.0.168/Portal/Login.aspx?q=http://B/Default.aspx。
3.4?應(yīng)用系統(tǒng)單點(diǎn)登錄實(shí)現(xiàn)過(guò)程
3.4.1?單點(diǎn)登錄過(guò)程
本章節(jié)描述了應(yīng)用系統(tǒng)對(duì)于單點(diǎn)登錄需要做的事情和過(guò)程。
應(yīng)用系統(tǒng)從URL中獲取到Token值,通過(guò)SystemCode和Secret調(diào)用單點(diǎn)登錄服務(wù),解析得到用戶的統(tǒng)一用戶管理平臺(tái)中的賬號(hào),在本系統(tǒng)實(shí)現(xiàn)登錄驗(yàn)證。
單點(diǎn)登錄需要支持的頁(yè)面:所有在統(tǒng)一平臺(tái)中需要加上鏈接的頁(yè)面和表單界面。
以上頁(yè)面中,在判斷當(dāng)前系統(tǒng)用戶登錄認(rèn)證之前,按照以下步驟進(jìn)行:
- 如果URL中有Token值,則進(jìn)入3,否則進(jìn)入2
- 跳轉(zhuǎn)至本系統(tǒng)的登錄界面;
- 調(diào)用單點(diǎn)登錄服務(wù)進(jìn)行解密,得到用戶的真實(shí)賬號(hào);
- 使用解密得到的賬號(hào)自動(dòng)進(jìn)行本系統(tǒng)登錄認(rèn)證,完成單點(diǎn)登錄;
3.4.2?單點(diǎn)登錄界面說(shuō)明
本期項(xiàng)目以下功能需要實(shí)現(xiàn)單點(diǎn)登錄:
|
系統(tǒng)名稱 |
集成功能 |
|
公文管理系統(tǒng) |
公司發(fā)文、公司收文、公司工作聯(lián)系單、公司會(huì)議記要審批件流轉(zhuǎn)、部門發(fā)文、流程審核表單 |
|
合同管理系統(tǒng) |
合同查詢、合同臺(tái)賬、流程審核表單 |
|
招投標(biāo)系統(tǒng) |
招投標(biāo)流程運(yùn)行監(jiān)控、項(xiàng)目運(yùn)行監(jiān)控、招標(biāo)會(huì)議安排招標(biāo)項(xiàng)目臺(tái)賬、評(píng)標(biāo)專家維護(hù)、流程審核表單 |
|
生產(chǎn)經(jīng)營(yíng)管理系統(tǒng) |
業(yè)務(wù)跟蹤查詢、流程審核表單 |
|
電子考勤系統(tǒng) |
考勤管理、特殊考勤申請(qǐng)、考勤記錄查詢、流程審核表單 |
|
無(wú)紙化會(huì)議系統(tǒng) |
會(huì)議室使用情況、無(wú)紙化會(huì)議申請(qǐng)、會(huì)議材料上傳、流程審核表單 |
|
領(lǐng)導(dǎo)動(dòng)態(tài) |
行程動(dòng)態(tài)登記、行程動(dòng)態(tài)查詢 |
|
內(nèi)控管理系統(tǒng) |
部門控制目標(biāo)、內(nèi)控手冊(cè)查詢、內(nèi)控全文索引 |
|
電子郵件系統(tǒng) |
未處理郵件數(shù)提醒 |
注:請(qǐng)各應(yīng)用系統(tǒng)將以上功能的測(cè)試環(huán)境和正式環(huán)境的URL訪問(wèn)地址,提供給信息化管理中心董小詩(shī)。
3.4.3?獲取Token
從統(tǒng)一認(rèn)證平臺(tái)跳轉(zhuǎn)至應(yīng)用系統(tǒng)時(shí),統(tǒng)一認(rèn)證平臺(tái)會(huì)將當(dāng)前的用戶加密信息以Get方式進(jìn)行發(fā)送至應(yīng)用系統(tǒng)。
例如:應(yīng)用系統(tǒng)URL地址http://192.0.0.1/Default.aspx,統(tǒng)一認(rèn)證平臺(tái)返回的URL地址為
http://192.0.0.1/Default.aspx?Token={Token}
參數(shù)說(shuō)明
|
編碼 |
名稱 |
說(shuō)明 |
|
Token |
訪問(wèn)的Token |
一次性使用,可以通過(guò)單點(diǎn)登錄服務(wù)得到真實(shí)賬號(hào) |
注:每次登錄Token值只一次有效。
3.4.4?獲取應(yīng)用系統(tǒng)用戶賬號(hào)
應(yīng)用系統(tǒng)獲取Token后,調(diào)用單點(diǎn)登錄服務(wù)提供的解密服務(wù),得到真實(shí)賬號(hào),單點(diǎn)登錄服務(wù)以WebService方式提供。
|
接口名稱 |
GetAuthenticationUser |
|
|
接口說(shuō)明 |
獲取已登錄統(tǒng)一認(rèn)證平臺(tái)的用戶賬號(hào) |
|
|
輸入?yún)?shù) |
||
|
參數(shù)編碼 |
類型 |
說(shuō)明 |
|
SystemCode |
String |
傳入系統(tǒng)編碼 |
|
Secret |
String |
傳入系統(tǒng)秘鑰 |
|
Token |
Stirng |
登錄信息 |
|
輸出參數(shù) |
||
|
類型 |
說(shuō)明 |
|
|
String |
返回當(dāng)前應(yīng)用系統(tǒng)的用戶賬號(hào) |
|
?應(yīng)用系統(tǒng)獲取到返回當(dāng)前應(yīng)用系統(tǒng)的用戶賬號(hào)后,需要進(jìn)行本系統(tǒng)的登錄操作。
3.4.5?更改Secret信息
為了安全考慮,Secret值可以根據(jù)應(yīng)用系統(tǒng)需要進(jìn)行請(qǐng)求修改。修改過(guò)程調(diào)用統(tǒng)一單點(diǎn)登錄服務(wù)進(jìn)行完成。
單點(diǎn)登錄系統(tǒng)提供接口如下:
|
接口名稱 |
UpdateSecret |
|
|
接口說(shuō)明 |
更改統(tǒng)一認(rèn)證Secret信息 |
|
|
輸入?yún)?shù) |
||
|
參數(shù)編碼 |
類型 |
說(shuō)明 |
|
SystemCode |
String |
傳入系統(tǒng)編碼 |
|
Secret |
String |
傳入舊的系統(tǒng)秘鑰 |
|
NewSecret |
Stirng |
傳入新的Secret信息 |
|
輸出參數(shù) |
||
|
類型 |
說(shuō)明 |
|
|
bool |
返回更改Secret值是否成功 |
|
3.4.6?提供系統(tǒng)用戶表
如果應(yīng)用系統(tǒng)不是使用AD域賬號(hào),并且本系統(tǒng)用戶沒(méi)有與AD用戶對(duì)應(yīng)的用戶關(guān)系映射表,那么需要做2個(gè)事情:
- 對(duì)于已有的系統(tǒng)用戶,導(dǎo)出系統(tǒng)用戶清單提供給統(tǒng)一平臺(tái),導(dǎo)出格式為:
|
所屬組織 |
用戶姓名 |
當(dāng)前系統(tǒng)賬號(hào) |
|
? |
? |
? |
- 對(duì)于新增用戶(不在系統(tǒng)用戶清單的用戶),嚴(yán)格使用AD賬號(hào),否則不能正常單點(diǎn)登錄。
3.5?統(tǒng)一用戶管理集成
注:如果應(yīng)用系統(tǒng)組織和用戶不需要從AD做同步,仍然可以采取已有的方式進(jìn)行維護(hù),可以忽略此章節(jié)。
企業(yè)應(yīng)用系統(tǒng)用戶管理必須以統(tǒng)一用戶管理平臺(tái)提供數(shù)據(jù)為基礎(chǔ),系統(tǒng)定時(shí)或者管理員手動(dòng)從統(tǒng)一用戶管理平臺(tái)進(jìn)行同步。
使用統(tǒng)一用戶管理后,應(yīng)用系統(tǒng)不需要再?gòu)谋鞠到y(tǒng)進(jìn)行維護(hù)組織和系統(tǒng)賬號(hào),所有系統(tǒng)賬號(hào)創(chuàng)建、刪除權(quán)在統(tǒng)一用戶管理平臺(tái),應(yīng)用系統(tǒng)需要實(shí)現(xiàn)從該平臺(tái)進(jìn)行組織同步。
統(tǒng)一用戶管理平臺(tái)提供組織、用戶的數(shù)據(jù)接口,企業(yè)應(yīng)用系統(tǒng)可以通過(guò)接口進(jìn)行同步數(shù)據(jù)。
3.5.1?統(tǒng)一用戶管理數(shù)據(jù)結(jié)構(gòu)
ü?組織數(shù)據(jù)結(jié)構(gòu)(OrganizationUnit)
|
字段名稱 |
類型 |
說(shuō)明 |
|
ObjectID |
字符串 |
組織ID,唯一標(biāo)示 |
|
Code |
字符串 |
組織編碼 |
|
Name |
字符串 |
組織名稱 |
|
ParentID |
字符串 |
上級(jí)組織ID,如果為空,則表示是頂層組織 |
|
ManagerID |
字符串 |
組織經(jīng)理的用戶ID,關(guān)聯(lián)用戶ObjectID |
|
ModifiedTime |
日期 |
組織最后修改日期 |
|
State |
整數(shù)類型 |
啟/禁用,0表示啟用,1表示禁用 |
ü?用戶數(shù)據(jù)結(jié)構(gòu)
|
字段名稱 |
類型 |
說(shuō)明 |
|
ObjectID |
字符串 |
用戶ID,唯一標(biāo)示 |
|
Code |
字符串 |
編碼、AD賬號(hào) |
|
Name |
字符串 |
姓名 |
|
Appellation |
字符串 |
稱謂 |
|
EmployeeNumber |
字符串 |
員工工號(hào) |
|
ParentID |
字符串 |
所屬組織ID,關(guān)聯(lián)組織ObjectID |
|
ManagerID |
字符串 |
上級(jí)經(jīng)理ID,關(guān)聯(lián)用戶表ObjectID |
|
Mobile |
字符串 |
用戶手機(jī)號(hào)碼 |
|
|
字符串 |
用戶郵箱號(hào)碼 |
|
OfficePhone |
字符串 |
辦公電話 |
|
State |
整數(shù)類型 |
啟/禁用,0表示啟用,1表示禁用 |
|
ModifiedTime |
日期 |
修改日期 |
3.5.2?統(tǒng)一用戶管理平臺(tái)接口
ü?GetCompany()
方法說(shuō)明:獲取根目錄的組織架構(gòu)信息
|
輸入?yún)?shù) |
|||
|
參數(shù)名稱 |
類型 |
說(shuō)明 |
|
|
無(wú) |
? |
? |
|
|
返回值 |
|||
|
類型 |
說(shuō)明 |
||
|
OrganizationUnit |
組織機(jī)構(gòu)對(duì)象 |
||
ü?GetAllOrganizationUnit()
方法說(shuō)明:獲取所有組織數(shù)據(jù)
|
輸入?yún)?shù) |
|||
|
參數(shù)名稱 |
類型 |
說(shuō)明 |
|
|
無(wú) |
? |
? |
|
|
返回值 |
|||
|
類型 |
說(shuō)明 |
||
|
OrganizationUnit[] |
組織機(jī)構(gòu)數(shù)組 |
||
ü?GetAllUser()
方法說(shuō)明:獲取所有用戶數(shù)據(jù)
|
輸入?yún)?shù) |
|||
|
參數(shù)名稱 |
類型 |
說(shuō)明 |
|
|
無(wú) |
? |
? |
|
|
返回值 |
|||
|
類型 |
說(shuō)明 |
||
|
User[] |
用戶數(shù)組 |
||
4?統(tǒng)一任務(wù)集成
4.1?集成說(shuō)明
統(tǒng)一任務(wù)集成平臺(tái)是西北油田分公司所有應(yīng)用系統(tǒng)的待辦任務(wù)綜合處理平臺(tái),所有應(yīng)用系統(tǒng)待辦都接入統(tǒng)一任務(wù)集成平臺(tái)處理。用戶可以直接登錄該平臺(tái),處理分散在所有系統(tǒng)中的任務(wù)。
所以我們需要所有應(yīng)用系統(tǒng)將用戶待辦/待閱任務(wù)能即時(shí)推送至統(tǒng)一任務(wù)集成平臺(tái),并且和統(tǒng)一任務(wù)集成平臺(tái)實(shí)現(xiàn)單點(diǎn)登錄,方便用戶進(jìn)行操作。
基于移動(dòng)擴(kuò)展考慮,并且展示統(tǒng)一移動(dòng)模式表單,應(yīng)用系統(tǒng)還需要提供表單數(shù)據(jù)接口和表單操作接口,方便統(tǒng)一任務(wù)集成平臺(tái)實(shí)現(xiàn)移動(dòng)擴(kuò)展。
統(tǒng)一任務(wù)集成過(guò)程如下圖所示:
?
4.2?統(tǒng)一任務(wù)集成接口說(shuō)明
接口服務(wù)地址:http://10.16.0.168/Portal/WorkItemService.asmx
ü?接口名稱:AddUnFinishedWorkItem
方法說(shuō)明:應(yīng)用系統(tǒng)推送待辦任務(wù)至統(tǒng)一任務(wù)集成平臺(tái)
參數(shù)說(shuō)明:
|
輸入?yún)?shù) |
|||
|
參數(shù)名稱 |
類型 |
說(shuō)明 |
|
|
SystemCode |
string |
系統(tǒng)編碼,由SSO服務(wù)提供 |
|
|
Secret |
string |
系統(tǒng)秘鑰,由SSO服務(wù)提供 |
|
|
ID |
string |
應(yīng)用系統(tǒng)工作任務(wù)唯一標(biāo)示 |
|
|
WorkflowName |
string |
流程模板名稱:如請(qǐng)假申請(qǐng)、發(fā)文審批 |
|
|
InstanceName |
string |
流程實(shí)例名稱:例如張三的年假審批 |
|
|
ActivityName |
string |
環(huán)節(jié)名稱:例如領(lǐng)導(dǎo)審批 |
|
|
Originator |
string |
發(fā)起人賬號(hào):流程發(fā)起人的中石化郵箱賬號(hào) |
|
|
Participant |
string |
當(dāng)前任務(wù)處理人的中石化郵箱賬號(hào) |
|
|
ReceiveTime |
Datetime |
任務(wù)接收時(shí)間 |
|
|
PriorityType |
PriorityType |
枚舉類型,待辦的優(yōu)先級(jí) Low = 0, ???// 低 Normal = 1, ?// 中(默認(rèn)值) High = 2 ????// 高 |
|
|
ItemType |
int |
待辦/待閱,0是待辦/1是待閱 |
|
|
AllowReject |
Bool |
是否允許駁回 |
|
|
MobileProcessing |
Bool |
是否允許移動(dòng)辦公審批 業(yè)務(wù)系統(tǒng)自己判定,當(dāng)存在復(fù)雜操作的表單邏輯和操作時(shí),可以設(shè)置不支持在移動(dòng)端操作,例如發(fā)起環(huán)節(jié)的填寫。 |
|
|
Url |
string |
應(yīng)用系統(tǒng)打開當(dāng)前工作任務(wù)的URL |
|
|
返回值 |
|||
|
類型 |
說(shuō)明 |
||
|
bool |
任務(wù)推送是否成功 |
||
|
示例程序 |
|||
|
// 調(diào)用一個(gè)任務(wù)推送,將任務(wù)ID=12345的任務(wù)推送至統(tǒng)一任務(wù)集成平臺(tái) ????????????bool?result = workItemService.AddUnFinishedWorkItem( ?????????????????"系統(tǒng)編碼", ?????????????????"系統(tǒng)秘鑰", ?????????????????"12345", ??????????// 應(yīng)用系統(tǒng)的任務(wù)ID ?????????????????"請(qǐng)假申請(qǐng)", ?????????????????"張三的事假申請(qǐng)", ?????????????????"主管審核", ?????????????????"zhangs.xbsj", ?????????????????"wangw.xbsj", ?????????????????new?DateTime(2015, 10, 31, 12, 21, 05), ?????????????????PriorityType.Normal, ?????????????????0, ?????????????????"http://10.1.0.100/System/Apply.aspx?ID=12345" ????????????); |
|||
ü?接口名稱:FinishWorkItem(string SystemCode,string Secret,string ID)
方法說(shuō)明:應(yīng)用系統(tǒng)任務(wù)完成時(shí),通知統(tǒng)一任務(wù)平臺(tái)
參數(shù)說(shuō)明:
|
輸入?yún)?shù) |
||
|
參數(shù)名稱 |
類型 |
說(shuō)明 |
|
SystemCode |
string |
系統(tǒng)編碼,由SSO服務(wù)提供 |
|
Secret |
string |
系統(tǒng)秘鑰,由SSO服務(wù)提供 |
|
ID |
string |
待辦任務(wù)在應(yīng)用系統(tǒng)中的唯一標(biāo)示 |
|
返回值 |
||
|
類型 |
說(shuō)明 |
|
|
bool |
統(tǒng)一任務(wù)處理平臺(tái)調(diào)用是否成功 |
|
4.3?應(yīng)用系統(tǒng)需要提供接口說(shuō)明
在PC端,統(tǒng)一任務(wù)集成平臺(tái)通過(guò)單點(diǎn)登錄直接打開應(yīng)用系統(tǒng)表單URL,所有操作均由應(yīng)用系統(tǒng)完成。
在移動(dòng)端,統(tǒng)一任務(wù)集成平臺(tái)通過(guò)獲取應(yīng)用系統(tǒng)表單數(shù)據(jù),統(tǒng)一轉(zhuǎn)換成移動(dòng)辦公模式表單進(jìn)行展示,用戶直接使用轉(zhuǎn)換后的移動(dòng)辦公表單進(jìn)行任務(wù)操作,所以應(yīng)用系統(tǒng)需要向統(tǒng)一任務(wù)集成平臺(tái)提供表單數(shù)據(jù)接口和表單操作接口。
4.3.1?移動(dòng)端表單數(shù)據(jù)集成接口
應(yīng)用系統(tǒng)需要構(gòu)造接口返回?cái)?shù)據(jù)結(jié)構(gòu),以WebService形式提供給統(tǒng)一任務(wù)集成平臺(tái)進(jìn)行調(diào)用。也就是說(shuō),以統(tǒng)一任務(wù)集成平臺(tái)的提供數(shù)據(jù)結(jié)構(gòu),構(gòu)造SheetData[]數(shù)組,返回給統(tǒng)一任務(wù)集成平臺(tái)使用。
接口說(shuō)明:統(tǒng)一使用名稱 LoadSheetData
輸入?yún)?shù)
|
字段名稱 |
類型 |
說(shuō)明 |
|
Token |
string |
統(tǒng)一平臺(tái)會(huì)調(diào)用SSO加密服務(wù)將結(jié)果傳遞至應(yīng)用系統(tǒng),應(yīng)用系統(tǒng)再調(diào)用解密服務(wù)驗(yàn)證Token值的真實(shí)有效性,然后進(jìn)行處理。 |
|
ID |
string |
任務(wù)唯一標(biāo)示 |
輸出參數(shù)
|
類型 |
說(shuō)明 |
|
SheetData[] |
表單數(shù)據(jù)數(shù)組,參考統(tǒng)一任務(wù)集成平臺(tái)提供的數(shù)據(jù)結(jié)構(gòu) |
SheetData結(jié)構(gòu)說(shuō)明
|
字段名稱 |
類型 |
說(shuō)明 |
|
DisplayName |
string |
表單數(shù)據(jù)項(xiàng)的顯示標(biāo)題 |
|
DisplayValue |
string |
表單數(shù)據(jù)項(xiàng)的顯示值 |
|
Editable |
bool |
當(dāng)前數(shù)據(jù)項(xiàng)是否允許編輯 |
|
RowIndex |
int |
數(shù)據(jù)項(xiàng)所在的行號(hào)索引,只對(duì)子表有效 |
|
ParentDisplayName |
string |
父數(shù)據(jù)項(xiàng)顯示標(biāo)題,只對(duì)子表數(shù)據(jù)項(xiàng)有效 例如:采購(gòu)明細(xì)表中有一個(gè)字段是商品編碼,那么返回商品編碼字段時(shí),ParentDisplayName的值就是采購(gòu)明細(xì)表 |
SheetData定義示例:
|
public?class?SheetData ????{ ????????public?SheetData() { } ????????///?<summary> ????????///?獲取或設(shè)置數(shù)據(jù)項(xiàng)的顯示標(biāo)題 ????????///?</summary> ????????public?string?DisplayName { get; set; } ????????///?<summary> ????????///?獲取或設(shè)置數(shù)據(jù)項(xiàng)的顯示值 ????????///?</summary> ????????public?string?DisplayValue { get; set; } ????????///?<summary> ????????///?獲取或設(shè)置數(shù)據(jù)項(xiàng)是否可編輯,默認(rèn)值請(qǐng)?jiān)O(shè)置為False ????????///?</summary> ????????public?bool Editable { get; set; } ????????///?<summary> ????????///?獲取或設(shè)置數(shù)據(jù)的行號(hào) ????????///?</summary> ????????public?int?RowIndex { get; set; } ????????///?<summary> ????????///?獲取或設(shè)置父級(jí)數(shù)據(jù)項(xiàng)的顯示名稱 ????????///?</summary> ????????public?string?ParentDisplayName { get; set; } ????} |
返回?cái)?shù)據(jù)示例:
|
????????[WebMethod] ????????public?List<SheetData> LoadSheetData(string?Token, string?ID) ????????{ ????????????// TODO:驗(yàn)證 Token 是否正確 ????????????List<SheetData> sheets = new?List<SheetData>(); ????????????// 添加文本類型數(shù)據(jù) ????????????sheets.Add(new?SheetData() ????????????{ ????????????????DisplayName = "合同編碼", ????????????????DisplayValue = "XB201500015", ????????????????Editable=?false ????????????}); ????????????sheets.Add(new?SheetData() ????????????{ ????????????????DisplayName = "合同名稱", ????????????????DisplayValue = "XXXXXX合同", ????????????????Editable=?false ????????????}); ????????????// 添加數(shù)值類型數(shù)據(jù) ????????????sheets.Add(new?SheetData() ????????????{ ????????????????DisplayName = "合同金額", ????????????????DisplayValue = "200000", ????????????????Editable=?true ????????????}); ????????????// 添加日期類型數(shù)據(jù) ????????????sheets.Add(new?SheetData() ????????????{ ????????????????DisplayName = "簽訂日期", ????????????????DisplayValue = "2015-5-10" ????????????}); ????????????// 添加附件類型數(shù)據(jù) ????????????sheets.Add(new?SheetData() ????????????{ ????????????????DisplayName = "合同附件", ????????????????DisplayValue = "<a href='http://xxxx/xx.doc' target='_blank'>附件一</a>" ????????????}); ????????????// 添加附件類型數(shù)據(jù) ????????????sheets.Add(new?SheetData() ????????????{ ????????????????DisplayName = "采購(gòu)明細(xì)表" ????????????}); ????????????// 明細(xì)表第一行第一個(gè)字段 ????????????sheets.Add(new?SheetData() ????????????{ ????????????????ParentDisplayName = "采購(gòu)明細(xì)表", ?// 子表數(shù)據(jù)項(xiàng)的顯示名稱 ????????????????DisplayName = "商品名稱", ?????????// 子表的字段顯示名稱 ????????????????DisplayValue = "PC電腦", ??????????// 子表的字段值 ????????????????RowIndex = 1 ??????????????????????// 子表的行索引 ????????????}); ????????????// 明細(xì)表第一行第二個(gè)字段 ????????????sheets.Add(new?SheetData() ????????????{ ????????????????ParentDisplayName = "采購(gòu)明細(xì)表", ????????????????DisplayName = "采購(gòu)數(shù)量", ????????????????DisplayValue = "12", ????????????????RowIndex = 1 ????????????}); ????????????// 明細(xì)表第二行第一個(gè)字段 ????????????sheets.Add(new?SheetData() ????????????{ ????????????????ParentDisplayName = "采購(gòu)明細(xì)表", ????????????????DisplayName = "商品名稱", ????????????????DisplayValue = "iPad", ????????????????RowIndex = 2 ????????????}); ????????????// 明細(xì)表第二行第二個(gè)字段 ????????????sheets.Add(new?SheetData() ????????????{ ????????????????ParentDisplayName = "采購(gòu)明細(xì)表", ????????????????DisplayName = "采購(gòu)數(shù)量", ????????????????DisplayValue = "20", ????????????????RowIndex = 2 ????????????}); ? ????????????return?sheets; ????????} |
4.3.2?移動(dòng)端表單操作接口
應(yīng)用系統(tǒng)必須提供2個(gè)接口方法給統(tǒng)一任務(wù)集成平臺(tái)調(diào)用,方便統(tǒng)一平臺(tái)在移動(dòng)端審批時(shí),能實(shí)現(xiàn)應(yīng)用系統(tǒng)的提交、駁回操作,接口提供推薦使用WebServices模式。
接口一:提交任務(wù)接口,統(tǒng)一使用名稱 SubmitItem
接口需要接收3個(gè)參數(shù):
|
字段名稱 |
類型 |
說(shuō)明 |
|
Token |
字符串 |
統(tǒng)一平臺(tái)會(huì)調(diào)用SSO加密服務(wù)將結(jié)果傳遞至應(yīng)用系統(tǒng),應(yīng)用系統(tǒng)再調(diào)用解密服務(wù)驗(yàn)證Token值的真實(shí)有效性,然后進(jìn)行處理。 |
|
ID |
字符串 |
任務(wù)唯一標(biāo)示 |
|
CommentText |
字符串 |
當(dāng)前任務(wù)審核意見 |
|
SheetData |
字符串 |
移動(dòng)審批修改的數(shù)據(jù)項(xiàng)值,以JSON格式傳遞,當(dāng)不修改時(shí)傳遞為空。 例如: {數(shù)據(jù)項(xiàng)名稱1:"數(shù)據(jù)項(xiàng)1的值",數(shù)據(jù)項(xiàng)名稱2:"數(shù)據(jù)項(xiàng)2的值"} |
接口二:駁回任務(wù)接口,統(tǒng)一使用名稱 RejectItem
接口需要接收3個(gè)參數(shù):
|
字段名稱 |
類型 |
說(shuō)明 |
|
Token |
字符串 |
統(tǒng)一平臺(tái)會(huì)調(diào)用SSO加密服務(wù)將結(jié)果傳遞至應(yīng)用系統(tǒng),應(yīng)用系統(tǒng)再調(diào)用解密服務(wù)驗(yàn)證Token值的真實(shí)有效性,然后進(jìn)行處理。 |
|
ID |
字符串 |
任務(wù)唯一標(biāo)示 |
|
CommentText |
字符串 |
當(dāng)前任務(wù)審核意見 |
|
SheetData |
字符串 |
移動(dòng)審批修改的數(shù)據(jù)項(xiàng)值,以JSON格式傳遞,當(dāng)不修改時(shí)傳遞為空。 例如: {數(shù)據(jù)項(xiàng)名稱1:"數(shù)據(jù)項(xiàng)1的值",數(shù)據(jù)項(xiàng)名稱2:"數(shù)據(jù)項(xiàng)2的值"} |
?
轉(zhuǎn)載于:https://www.cnblogs.com/h3bpm/p/7049591.html
總結(jié)
以上是生活随笔為你收集整理的统一协同工作平台用户管理、单点登录以及任务集成接口说明的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Flume知识点全面总结教程
- 下一篇: MP3 文件