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

下載本文檔

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

文檔簡介

A8接口和增值開發(fā)手冊A8接口和增值開發(fā)手冊A8接口和增值開發(fā)手冊A8接口和增值開發(fā)手冊編制僅供參考審核批準(zhǔn)生效日期地址:電話:傳真:郵編:A8平臺接口和增值開發(fā)手冊?2006UFSeeyonCo.,Ltd.Allrightsreserved.ThisdocumentcontainsinformationthatisproprietaryandconfidentialtoUFSeeyon.,whichshallnotbedisclosedoutsidetherecipient'scompanyorduplicated,usedordisclosedinwholeorinpartbytherecipientforanypurposeotherthantoevaluatethisfile.AnyotheruseordisclosureinwholeorinpartofthisinformationwithouttheexpresswrittenpermissionofUFSeeyon.isprohibited.Date: 200Author: 王文友Version: TOC修改記錄 31. 概述 4 編寫目的 4 開發(fā)背景 4 應(yīng)用價值 4 接口范圍 52. 二次開發(fā)接口 6 接口一覽 6 服務(wù)列表 63. Portal集成 7 單點(diǎn)登錄(SSO) 7 外部平臺集成A8 7 實(shí)現(xiàn)說明 7 接口說明 7 代碼示例 8 部署說明 9 A8集成第三方系統(tǒng) 9 實(shí)現(xiàn)方式一:Ticket 9 實(shí)現(xiàn)方式二:關(guān)聯(lián)系統(tǒng)+擴(kuò)展欄目 11 Portlet 12 概述 12 開發(fā)說明 12 確定欄目數(shù)據(jù) 12 確定欄目顯示模板 12 開發(fā)說明 13 注冊到系統(tǒng) 13 代碼示例 14 待辦事項(xiàng)和跟蹤事項(xiàng) 20 新聞和公告 204. 消息集成 21 消息通道 21 概述 21 接口說明 21 方法說明 21 注冊到系統(tǒng) 21 原理說明 22 代碼示例 22 短信接口 23 概述 23 接口說明 23 注冊到系統(tǒng) 25 原理說明 26 代碼示例 275. 組織模型同步 28 初始化同步 28 導(dǎo)出 28 導(dǎo)入 29 實(shí)時同步 29 實(shí)現(xiàn)A8組織模型事件監(jiān)聽接口 29 注冊事件監(jiān)聽 356. BPM集成 35 準(zhǔn)備 36 外部系統(tǒng)發(fā)起A8表單流程 37 輪詢完成的表單流程 37 導(dǎo)出A8表單流程到外部系統(tǒng) 377. 附錄 38 術(shù)語表 38修改記錄日期修改人修改內(nèi)容備注200王文友創(chuàng)建文檔,編寫文檔模板。2008-12-1王文友增加了安裝服務(wù)文檔。2008-12-23王文友增加了文檔導(dǎo)出接口例程。2008-12-29王文友合并劉娜組織模型文檔,加入例程;合并于荒津BPM文檔。2009-王文友合并張勇Portal和消息文檔,拆分API文檔。2009-06-16張勇增加單點(diǎn)登錄不打開頁面方式說明和待辦事項(xiàng)接口說明2009-9-27王文友增加組織模型同步和BPM集成概述編寫目的本手冊主要面向二次開發(fā)人員,內(nèi)容涵蓋A8平臺的二次開發(fā)、第三方應(yīng)用集成。如果需要更詳細(xì)的開發(fā)信息,請參考《平臺API參考手冊》。開發(fā)背景接口的目標(biāo)是與第三方應(yīng)用集成,達(dá)成松散耦合,緊密集成的目標(biāo);與異構(gòu)應(yīng)用集成;降低二次開發(fā)的技術(shù)難度;規(guī)范化二次開發(fā),提升二次開發(fā)的穩(wěn)定性;保證二次開發(fā)的延續(xù)性,降低二次開發(fā)應(yīng)用升級難度。應(yīng)用價值目前平臺開放的接口支持:組織模型同步

使用組織模型導(dǎo)入接口,實(shí)現(xiàn)外部系統(tǒng)到A8的組織模型初始化同步;

調(diào)用組織模型管理遠(yuǎn)程接口,在外部系統(tǒng)組織模型發(fā)生變化時實(shí)時同步到A8。

實(shí)現(xiàn)組織模型事件接口,將A8組織模型變更實(shí)時同步到外部系統(tǒng)。表單流程集成

外部系統(tǒng)通過BPM集成遠(yuǎn)程接口發(fā)起A8的表單流程,在A8中審批流轉(zhuǎn)后回到外部系統(tǒng),實(shí)現(xiàn)表單流程的打通。文檔導(dǎo)出

使用文檔導(dǎo)出SDK,將A8的協(xié)同、公文、新聞、公告、調(diào)查和討論導(dǎo)出到外部系統(tǒng),滿足數(shù)據(jù)交換和歸檔的需求。Portal集成

A8Portal可以集成外部系統(tǒng)的頁面,也可以將A8集成到第三方Portal中,并且實(shí)現(xiàn)單點(diǎn)登錄。消息集成

外部通過消息通道,實(shí)時獲取A8中的消息??梢詫8的消息以郵件、IM(如GKE、RTX)消息和短信形式發(fā)送。

外部系統(tǒng)通過消息接口向A8指定用戶發(fā)送消息。待辦事項(xiàng)集成外部系統(tǒng)通過待辦事項(xiàng)接口,可以得到A8待辦事項(xiàng)的列表,并且可以處理待辦事項(xiàng)。接口范圍A8協(xié)同辦公平臺采用Java開發(fā),支持Oracle、mysql和SqlServer數(shù)據(jù)庫。平臺提供了以下接口:二次開發(fā)接口:

提供本地開發(fā)的JavaSDK和WebService遠(yuǎn)程接口,涵蓋組織模型同步與導(dǎo)入導(dǎo)出、文檔導(dǎo)出、表單與流程集成、新聞與公告發(fā)布支持。Portal接口:

提供頁面集成和單點(diǎn)登錄接口,實(shí)現(xiàn)外部應(yīng)用在A8-Portal的集中展現(xiàn)。消息(短信)接口:

提供外部系統(tǒng)獲得A8協(xié)同辦公平臺消息的機(jī)制。除標(biāo)準(zhǔn)化產(chǎn)品提供的短信集成支持外,A8還提供了短信二次開發(fā)接口,支持與特定的短信運(yùn)營平臺集成。二次開發(fā)接口預(yù)備知識:WebServiceXML支持WebService調(diào)用的編程語言其中Java已驗(yàn)證,C#、Php未經(jīng)驗(yàn)證,請參照J(rèn)ava例程及axis2文檔進(jìn)行開發(fā)。A8平臺接口提供基于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)用,示例包括以下內(nèi)容:單點(diǎn)登錄、組織模型同步、組織模型導(dǎo)出、公告新聞導(dǎo)出、文檔導(dǎo)出、表單流程查詢、BPM集成、消息集成、Portlet欄目集成接口一覽組織模型接口:提供組織模型導(dǎo)入和導(dǎo)出接口,可以實(shí)現(xiàn)其他HR與A8的集成,其他系統(tǒng)可以與A8實(shí)現(xiàn)組織模型和人員信息同步。文檔接口:提供了A8文檔導(dǎo)出接口,支持協(xié)同、公文、新聞、公告等信息導(dǎo)出,通過此接口可以實(shí)現(xiàn)與檔案軟件的集成,以及A8信息發(fā)布到外部網(wǎ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é)果管理。新聞和公告發(fā)布接口:提供了單位新聞和公告的發(fā)布。待辦事項(xiàng)接口:提供A8待辦事項(xiàng)列表。服務(wù)列表A8平臺提供以下服務(wù):說明驗(yàn)證服務(wù)authorityService用戶身份驗(yàn)證服務(wù)人員管理服務(wù)personService人員的創(chuàng)建、修改、刪除和啟用/禁用。部門管理服務(wù)departmentService部門的創(chuàng)建、修改、刪除和啟用/禁用。崗位管理服務(wù)ocupationService崗位的創(chuàng)建、修改、刪除和啟用/禁用。職務(wù)級別管理服務(wù)otypeService職務(wù)級別的創(chuàng)建、修改、刪除和啟用/禁用。單位管理服務(wù)accountService組織模型數(shù)據(jù)服務(wù)organizationDataService人員、部門、崗位和職務(wù)級別數(shù)據(jù)導(dǎo)入導(dǎo)出服務(wù)。文檔導(dǎo)出服務(wù)documentService協(xié)同、公文、新聞、公告、討論、調(diào)查數(shù)據(jù)導(dǎo)出服務(wù)。新聞公告發(fā)布服務(wù)documentService新聞和公告發(fā)布發(fā)布服務(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ù)downloadService

uploadServiceA8的附件下載和上傳服務(wù)。服務(wù)詳情參見《平臺API參考手冊》。Portal集成單點(diǎn)登錄(SSO)外部平臺集成A8實(shí)現(xiàn)說明也就是從外部系統(tǒng)登錄到A8,這種認(rèn)證是完全信任外部系統(tǒng)的。單點(diǎn)登錄有2種效果:單點(diǎn)登錄成功后直接打開A8主頁面單點(diǎn)登錄成功后并不打開A8主頁面,A8維護(hù)ticket信息和登錄用戶信息,為以后請求服務(wù)作認(rèn)證使用,比如:請求獲得A8待辦事項(xiàng)列表服務(wù)。需要配置中一個屬性如下:<propertyname="forward"value="false"/>登錄過程:人員登錄外部平臺外部平臺帶著ticket和from跳轉(zhuǎn)到A8-/login/ssofrom=*&ticket=*如果A8登錄正常,會在responseheader中增加SSOOK,否則增加SSOError例如:"/login/ssoticket="+encodeURIComponent("<%=("ticket")%>")+"&from=gke";A8根據(jù)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í)行一個servletA8JAAS的取得用戶身份信息A8退出時,會通過SSOLoginHandshakeInterface的logoutNotify()通知到外部系統(tǒng)外部系統(tǒng)退出時,訪問A8/login/ssologoutfrom=*&ticket=*通知A8接口說明外部平臺需要有A8登錄名的映射表或者使用相同的登錄名JAAS的DefaultLoginModule驗(yàn)證用戶名(不驗(yàn)證密碼)SSOLoginHandshakeInterface與from映射,需要配置或二次開發(fā),系統(tǒng)提供通用的SSOLoginHandshakeServletImplA8的驗(yàn)證系統(tǒng)完全依賴和信任外部系統(tǒng)(存在風(fēng)險)配置文件:ApacheJetspeed2\webapps\ROOT\WEB-INF\classes\(如無可自己創(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; } }只在啟用了移動應(yīng)用的前提下加載wap短信網(wǎng)關(guān) Map<String,AdapterMobileWapPushManager>aWapMsgM=; if(!()){ if for(Iterator<AdapterMobileWapPushManager>iter=().iterator();();){ AdapterMobileWapPushManageram=(); if()){ adapterMobileWapPushManager=am; break; } } } else{ ("沒有移動應(yīng)用插件,將不啟用Wappush"); } }從代碼中可以看出短信插件只會加載一個短信接口 if(booleanWappush&&isCanUseWapPush(),())){et("success"); if(success)){ returnfalse; } String[]str=(","); booleansuccessSend=false; for(inti=0;i<;i++){ if(str[i].e

溫馨提示

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

評論

0/150

提交評論