A8接口和增值開發(fā)手冊(cè)_第1頁(yè)
A8接口和增值開發(fā)手冊(cè)_第2頁(yè)
A8接口和增值開發(fā)手冊(cè)_第3頁(yè)
A8接口和增值開發(fā)手冊(cè)_第4頁(yè)
A8接口和增值開發(fā)手冊(cè)_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

A8接口和增值開發(fā)手冊(cè)A8接口和增值開發(fā)手冊(cè)27/27蟻PAGE27蠆芁螈蒄肂薅螁荿肀膁膆蚆肅肇袁罿膇肁袈蚃襖莆羈薈A8接口和增值開發(fā)手冊(cè)

A8平臺(tái)接口和增值開發(fā)手冊(cè)

2006UFSeeyonCo.,Ltd.Allrightsreserved.

Thisdocumentcontainsinformationthatisproprietaryand

confidentialtoUFSeeyon.,whichshallnotbedisclosedoutsidethe

recipient'scompanyorduplicated,usedordisclosedinwholeorin

partbytherecipientforanypurposeotherthantoevaluatethisfile.

Anyotheruseordisclosureinwholeorinpartofthisinformation

withouttheexpresswrittenpermissionofUFSeeyon.isprohibited.

Date:2009-01-04

Author:王文友

Version:更正記錄4

1.歸納5

編寫目的5

開發(fā)背景5

應(yīng)用價(jià)值5

接口范圍6

2.二次開發(fā)接口7

接口一覽7

服務(wù)列表8

3.Portal集成8

單點(diǎn)登錄(SSO)8

外面平臺(tái)集成A88

實(shí)現(xiàn)說明9

接口說明9

代碼示例10

部署說明10

A8集成第三方系統(tǒng)10

實(shí)現(xiàn)方式一:Ticket10

實(shí)現(xiàn)方式二:關(guān)系系統(tǒng)+擴(kuò)展欄目11

Portlet12

歸納12

開發(fā)說明12

確定欄目數(shù)據(jù)12

確定欄目顯示模板12

開發(fā)說明12

注冊(cè)到系統(tǒng)12

代碼示例12待做事項(xiàng)和追蹤事項(xiàng)19

新聞和通知19

4.信息集成19

信息通道19

歸納19

接口說明19

方法說明19

注冊(cè)到系統(tǒng)19

原理說明20

代碼示例20

短信接口20

歸納20

接口說明20

注冊(cè)到系統(tǒng)20

原理說明20

代碼示例21

5.組織模型同步22

初始化同步22

導(dǎo)出22

導(dǎo)入22

實(shí)時(shí)同步22

實(shí)現(xiàn)A8組織模型事件監(jiān)聽接口22

注冊(cè)事件監(jiān)聽23

6.BPM集成23

準(zhǔn)備23

外面系統(tǒng)倡導(dǎo)A8表單流程24

輪詢完成的表單流程24導(dǎo)出A8表單流程到外面系統(tǒng)25

7.附錄25

術(shù)語(yǔ)表25

更正記錄

日期更正人更正內(nèi)容備注2008-12-08王文友創(chuàng)辦文檔,編寫文檔模板。2008-12-15王文友增加了安裝服務(wù)文檔。2008-12-23王文友增加了文檔導(dǎo)出接口例程。2008-12-29王文友合并劉娜組織模型文檔,加入例程;合并于荒津BPM文檔。2009-01-04王文友合并張勇Portal和信息文檔,拆分API文檔。2009-06-16張勇增加單點(diǎn)登錄不打開頁(yè)面方式說明和待做事項(xiàng)接口說明2009-9-27王文友增加組織模型同步和BPM集成

歸納

編寫目的

本手冊(cè)主要面向二次開發(fā)人員,內(nèi)容涵蓋A8平臺(tái)的二次開發(fā)、第三方應(yīng)用集成。若是需要更詳細(xì)的開發(fā)信息,請(qǐng)

參照《平臺(tái)API參照手冊(cè)》。

開發(fā)背景

接口的目標(biāo)是

1、與第三方應(yīng)用集成,完成松弛耦合,親密集成的目標(biāo);

2、與異構(gòu)應(yīng)用集成;

3、降低二次開發(fā)的技術(shù)難度;

4、規(guī)范化二次開發(fā),提升二次開發(fā)的牢固性;

5、保證二次開發(fā)的連續(xù)性,降低二次開發(fā)應(yīng)用升級(jí)難度。

應(yīng)用價(jià)值

目前平臺(tái)開放的接口支持:1、組織模型同步2、使用組織模型導(dǎo)入接口,實(shí)現(xiàn)外面系統(tǒng)到A8的組織模型初始化同步;3、調(diào)用組織模型管理遠(yuǎn)程接口,在外面系統(tǒng)組織模型發(fā)生變化時(shí)實(shí)時(shí)同步到A8。4、實(shí)現(xiàn)組織模型事件接口,將A8組織模型改正實(shí)時(shí)同步到外面系統(tǒng)。5、表單流程集成6、外面系統(tǒng)經(jīng)過BPM集成遠(yuǎn)程接口倡導(dǎo)A8的表單流程,在A8中審批流轉(zhuǎn)后回到外面系統(tǒng),實(shí)現(xiàn)表單流程的打通。7、文檔導(dǎo)出8、使用文檔導(dǎo)出SDK,將A8的共同、公文、新聞、通知、檢查和談?wù)搶?dǎo)出到外面系統(tǒng),知足數(shù)據(jù)交換和歸檔的需求。9、Portal集成10、A8Portal可以集成外面系統(tǒng)的頁(yè)面,也可以將A8集成到第三方Portal中,并且實(shí)現(xiàn)單點(diǎn)登錄。11、信息集成12、外面經(jīng)過信息通道,實(shí)時(shí)獲取A8中的信息??梢詫8的信息以郵件、IM(如GKE、RTX)信息和短信形式發(fā)送。13、外面系統(tǒng)經(jīng)過信息接口向A8指定用戶發(fā)送信息。14、待做事項(xiàng)集成外面系統(tǒng)經(jīng)過待做事項(xiàng)接口,可以獲取A8待做事項(xiàng)的列表,并且可以辦理待做事項(xiàng)。

接口范圍

A8共同辦公正臺(tái)采用Java開發(fā),支持Oracle、mysql和SqlServer數(shù)據(jù)庫(kù)。

平臺(tái)供應(yīng)了以下接口:

1、二次開發(fā)接口:

2、供應(yīng)當(dāng)?shù)亻_發(fā)的JavaSDK和WebService遠(yuǎn)程接口,涵蓋組織模型同步與導(dǎo)入導(dǎo)出、文檔導(dǎo)出、表單與流程集成、新聞與公揭宣布支持。

3、Portal接口:

4、供應(yīng)頁(yè)面集成和單點(diǎn)登錄接口,實(shí)現(xiàn)外面應(yīng)用在A8-Portal的集中展現(xiàn)。

5、信息(短信)接口:

6、供應(yīng)外面系統(tǒng)獲取A8共同辦公正臺(tái)信息的體系。除標(biāo)準(zhǔn)化產(chǎn)品供應(yīng)的短信集成支持外,A8還供應(yīng)了短信二次

開發(fā)接口,支持與特定的短信運(yùn)營(yíng)平臺(tái)集成。

二次開發(fā)接口

預(yù)備知識(shí):

1、

WebService

2、

XML

3、支持

WebService調(diào)用的編程語(yǔ)言

其中

Java已考據(jù),

C#、Php未經(jīng)考據(jù),請(qǐng)參照

Java例程及

axis2文檔進(jìn)行開發(fā)。

A8平臺(tái)接口供應(yīng)基于axis2實(shí)現(xiàn)的標(biāo)準(zhǔn)Webservice??梢圆捎枚喾N方式進(jìn)行客戶端開發(fā)。

本指南所有遠(yuǎn)程接口例程使用axis2的ADB(Axis2DataBindingFramework)stub方式進(jìn)行開發(fā)。

為便于二次開發(fā),在client/demo目錄中供應(yīng)了一個(gè)示例應(yīng)用,示例包括以下內(nèi)容:

單點(diǎn)登錄、組織模型同步、組織模型導(dǎo)出、通知新聞導(dǎo)出、文檔導(dǎo)出、表單流程盤問、BPM集成、信息集成、Portlet

欄目集成

接口一覽

組織模型接口:供應(yīng)組織模型導(dǎo)入和導(dǎo)出接口,可以實(shí)現(xiàn)其他HR與A8的集成,其他系統(tǒng)可以與A8實(shí)現(xiàn)組織模型和人員信息同步。文檔接口:供應(yīng)了A8文檔導(dǎo)出接口,支持共同、公文、新聞、通知等信息導(dǎo)出,經(jīng)過此接口可以實(shí)現(xiàn)與檔案軟件的集成,以及A8信息宣布到外面網(wǎng)站。表單流程接口:供應(yīng)了外面數(shù)據(jù)導(dǎo)入A8進(jìn)行流轉(zhuǎn)審批,以及A8流程審批信息導(dǎo)出到其他系統(tǒng)(如ERP),通過此接口可以實(shí)現(xiàn)政府外網(wǎng)審批信息提交到內(nèi)網(wǎng)進(jìn)行流轉(zhuǎn)審批,ERP數(shù)據(jù)可以轉(zhuǎn)入A8進(jìn)行流轉(zhuǎn),A8流程審批信息也可以轉(zhuǎn)入ERP進(jìn)行結(jié)果管理。新聞和公揭宣布接口:供應(yīng)了單位新聞和通知的宣布。待做事項(xiàng)接口:供應(yīng)A8待做事項(xiàng)列表。

服務(wù)列表A8平臺(tái)供應(yīng)予下服務(wù):服務(wù)說明考據(jù)服務(wù)authorityService用戶身份考據(jù)服務(wù)人員管理服務(wù)personService人員的創(chuàng)辦、更正、刪除和啟用/禁用。部門管理服務(wù)departmentService部門的創(chuàng)辦、更正、刪除和啟用/禁用。崗位管理服務(wù)ocupationService崗位的創(chuàng)辦、更正、刪除和啟用/禁用。職務(wù)級(jí)別管理服務(wù)otypeService職務(wù)級(jí)其他創(chuàng)辦、更正、刪除和啟用/禁用。單位管理服務(wù)accountService組織模型數(shù)據(jù)服務(wù)organizationDataService人員、部門、崗位和職務(wù)級(jí)別數(shù)據(jù)導(dǎo)入導(dǎo)出服務(wù)。文檔導(dǎo)出服務(wù)documentService共同、公文、新聞、通知、談?wù)?、檢查數(shù)據(jù)導(dǎo)出服務(wù)。新聞公揭宣布服務(wù)documentService新聞和公揭宣布宣布服務(wù)。表單服務(wù)formService表單定義與數(shù)據(jù)導(dǎo)出服務(wù)BPM服務(wù)BPMService業(yè)務(wù)單據(jù)流程集成服務(wù)。事項(xiàng)服務(wù)affairService待做事項(xiàng)和追蹤事項(xiàng)集成服務(wù)。信息服務(wù)messageService外面系統(tǒng)發(fā)信息到A8的服務(wù)。文件服務(wù)downloadServiceA8的附件下載和上傳服務(wù)。uploadService

服務(wù)詳情拜會(huì)《平臺(tái)API參照手冊(cè)》。

3.Portal集成

單點(diǎn)登錄(SSO)

外面平臺(tái)集成A8實(shí)現(xiàn)說明

也就是從外面系統(tǒng)登錄到A8,這種認(rèn)證是完好相信外面系統(tǒng)的。

單點(diǎn)登錄有2種收效:1,單點(diǎn)登錄成功后直接打開A8主頁(yè)面2,單點(diǎn)登錄成功后其實(shí)不打開A8主頁(yè)面,A8保護(hù)ticket信息和登錄取戶信息,為今后央求服務(wù)作認(rèn)證使用,比方:央求獲取A8待做事項(xiàng)列表服務(wù)。需要配置中一個(gè)屬性以下:

<propertyname="forward"value="false"/>

登錄過程:

人員登錄外面平臺(tái)

外面平臺(tái)帶著ticket和from跳轉(zhuǎn)到A8-/login/ssofrom=*&ticket=*

1.若是A8登錄正常,會(huì)在responseheader中增加SSOOK,否則增加SSOError

比方:

"/login/ssoticket="+encodeURIComponent("<%=("ticket")%>")+"&from=gke";

A8依照from獲取握手bean,也就是springBeanid

比方:

<beanid="gke"class="">

調(diào)用握手bean由外面系統(tǒng)認(rèn)證ticket并返回A8的登錄名

把ticket和username保護(hù)在內(nèi)存

A8帶著ticket跳轉(zhuǎn)到/login/proxy,也就是執(zhí)行一個(gè)servlet

A8JAAS的獲取用戶身份信息

A8退出時(shí),會(huì)經(jīng)過SSOLoginHandshakeInterface的logoutNotify()通知到外面系統(tǒng)

外面系統(tǒng)退出時(shí),接見A8/login/ssologoutfrom=*&ticket=*通知A8

接口說明

外面平臺(tái)需要有A8登錄名的照射表也許使用相同的登錄名

JAAS的DefaultLoginModule考據(jù)用戶名(不考據(jù)密碼)

SSOLoginHandshakeInterface與from照射,需要配置或二次開發(fā),系統(tǒng)供應(yīng)通用的

SSOLoginHandshakeServletImpl

A8的考據(jù)系統(tǒng)完好依賴和相信外面系統(tǒng)(存在風(fēng)險(xiǎn))1、配置文件:

(如無(wú)可自己創(chuàng)辦)

<xmlversion=""encoding="UTF-8">

<!DOCTYPEbeansPUBLIC"-

etAgentModelList(memberId);

List<AgentModel>_agentModelToList=()

.getAgentModelToList(memberId);

List<AgentModel>agentModelList=null;

booleanagentToFlag=false;

booleanisPloxy=false;

if(_agentModelList!=null&&!()){

isPloxy=true;

agentModelList=_agentModelList;

}elseif(_agentModelToList!=null&&!()){isPloxy=true;agentModelList=_agentModelToList;agentToFlag=true;

}else{

isPloxy=false;}

Map<Integer,AgentModel>agentModelMap=newHashMap<Integer,AgentModel>();

if(isPloxy){

for(AgentModelagentModel:agentModelList){

StringagentOptionStr=();

String[]agentOptions=("&");

for(StringagentOption:agentOptions){

int_agentOption=(agentOption);

if(_agentOption==

.key()){

.key(),agentModel);

}elseif(_agentOption==

.key()){

agentModel);

}elseif(_agentOption==

.key()){

(

agentModel);

}

}

}

}

return(memberId,agentModelMap,null,null,

null,agentToFlag);

}

publicBaseSectionTempleteprojection(Map<String,String>preference){

MultiRowFourColumnTempletec=newMultiRowFourColumnTemplete();Useruser=();

LongmemberId=();

LongproxyId=();

(false);etAgentModelList(memberId);

List<AgentModel>_agentModelToList=()

.getAgentModelToList(memberId);

List<AgentModel>agentModelList=null;

booleanagentToFlag=false;

booleanisPloxy=false;

if(_agentModelList!=null&&!()){

isPloxy=true;

agentModelList=_agentModelList;

}elseif(_agentModelToList!=null&&!()){

isPloxy=true;

agentModelList=_agentModelToList;

agentToFlag=true;

}else{

isPloxy=false;

}

Map<Integer,AgentModel>agentModelMap=newHashMap<Integer,AgentModel>();

if(isPloxy){

for(AgentModelagentModel:agentModelList){

StringagentOptionStr=();

String[]agentOptions=("&");

for(StringagentOption:agentOptions){

int_agentOption=(agentOption);

if(_agentOption==

.key()){.key(),agentModel);

}elseif(_agentOption==

.key()){

agentModel);

}elseif(_agentOption==

.key()){

(

agentModel);

}

}

}

}

List<Affair>affairs=(memberId,

agentModelMap,null,null,null,agentToFlag);

if(affairs==null){

returnnull;

}

for(Affairaffair:affairs){

url="";

row=();

StringforwardMember=();

IntegerresentTime=();

Stringsubject=(affair

.getSubject(),forwardMember,resentTime,orgManager,null);

intapp=();

LongobjectId=();

(subject);

ApplicationCategoryEnumappEnum=ApplicationCategoryEnum

.valueOf(app);

switch(appEnum){

casecollaboration:

row

.setLink("/method=detail&from=Pending&affairId="

+());

row

.setCategory(app,

"/method=collaborationFrame&from=Pending");

break;

casemeeting:

row

.setLink("/method=myDetailFrame&id="

objectId);

(app,"/method=listHome");break;caseedocSend:

caseedocRec:

caseedocSign:

row

.setLink("/method=detail&from=Pending&affairId="

+());

(app,EdocUtil

.getEdocCategroryPendingUrl()));

break;

caseexSend:row

.setLink("/method=sendDetail&modelType=toSend&id="

+());

if(appEnum

.getKey()))){

url="/method=listMainEntry&modelType=toSend";

}

(app,url);

break;

caseexSign:

row

.setLink("/method=receiveDetail&modelType=toReceive&id="

+());

if(appEnum

.getKey()))){

url="/method=listMainEntry&modelType=toReceive";

}

(app,url);

break;

caseedocRegister:

(

"/method=entryManager&entry=newEdoc&comm=register&edocType="

++"&exchangeId="+()

+"&edocId="+(),

if(appEnum

.getKey()))){

url="/method=entryManager&entry=edocFrame&from=listRegisterPending"

;

}

(app,url);break;

casebulletin:

("/method=audit&id="

+(),;

booleanisGroup=().intValue()==.ordinal());

(app,

"/method=auditListMain&spaceType="

+(isGroup0:1)+"&bulTypeId=&type=&from="

+(isGroup"Group":""));

break;

casenews:

("/method=audit&id="

+(),;

booleanisGroupNews=().intValue()==.ordinal());

(app,

"/method=auditListMain&spaceType="

(isGroupNews0:1)

"&newsTypeId=&type=&from="

(isGroupNews"Group":""));

break;

caseinquiry:

("/method=survey_check&bid="

+objectId,;

(app,"/method=recent_or_check");

break;

casemeetingroom:{

("/method=createPerm&openWin=1&id="

objectId,;

(app,"/method=index");}

}

V3xOrgMembermember=null;

try{

member=());

}catch(BusinessExceptione){("",e);}

());

(member));

());

if())){

(true);

etLoginName();

RTXNotifyValueBeanvalue=newRTXNotifyValueBean();

Stringcontent=();

=().getName();

.

(value);

}catch(Throwablee){("",e);}

}

}

terator();();){

AdapterMobileMessageMangeram=();

if()){adapterMobileMessageManger=am;

break;

}

}

只在啟用了搬動(dòng)應(yīng)用的前提下加載wap短信網(wǎng)關(guān)

Map<String,AdapterMobileWapPushManager>aWapMsgM=;

if(!()){

if

for(Iterator<AdapterMobileWapPushManager>iter=().iterator();();){

AdapterMobileWapPushManageram=();

if()){

adapterMobileWapPushManager=am;

break;

}

}

}

else{

("沒有搬動(dòng)應(yīng)用插件,將不啟用Wappush");

}

}

從代碼中可以看出短信插件只會(huì)加載一個(gè)短信接口

if(booleanWappush&&isCanUseWapPush(),())){et("success");

if(success)){

returnfalse;

}

String[]str=(",");

booleansuccessSend=false;

for(inti=0;i<;i++){

if(str[i].equals(destPhone)){

successSend=true;

}

}

returnsuccessSend;

}

xportData(req);

Stringxml=();

導(dǎo)入

在目標(biāo)系統(tǒng)建立一個(gè)新的單位,編寫代碼,剖析A8組織模型XML,建立部門、崗位、職務(wù)級(jí)別和人員。

實(shí)時(shí)同步

使用A8組織模型事件接口,實(shí)時(shí)將A8組織模型的改正同步到目標(biāo)系統(tǒng)。

實(shí)現(xiàn)A8組織模型事件監(jiān)聽接口

實(shí)現(xiàn)A8的OrganizationEventListener接口(接

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論