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

下載本文檔

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

文檔簡介

1、A8平臺(tái)接口和增值開發(fā)手冊(cè)2006UFSeeyonCo.,Ltd.Allrightsreserved.ThisdocumentcontainsinformationthatisproprietaryandconfidentialtoUFSeeyon.,whichshallnotbedisclosedoutsidetherecipientscompanyorduplicated,usedordisclosedinwholeorinpartbytherecipientforanypurposeotherthantoevaluatethisfile.Anyotheruseordisclosurein

2、wholeorinpartofthisinformationwithouttheexpresswrittenpermissionofUFSeeyon.isprohibited.Date:2009-01-04Author:王文友Version:V1.0UFIDA用反致遠(yuǎn)UFIDA用反致遠(yuǎn)用友致遠(yuǎn)協(xié)同辦公系統(tǒng)一開發(fā)手冊(cè)UFIDA用UFIDA用KScis用友致遠(yuǎn)協(xié)同辦公系統(tǒng)一開發(fā)手冊(cè)TOC o 1-5 h z HYPERLINK l bookmark2 o Current Document 修改記錄3概述41.1編寫目的41.2開發(fā)背景41.3應(yīng)用價(jià)值41.4接口范圍5 HYPERLINK l bo

3、okmark14 o Current Document 二次開發(fā)接口6接口一覽62.2服務(wù)列表6 HYPERLINK l bookmark24 o Current Document 3Portal集成7單點(diǎn)登錄(SS0)7外部平臺(tái)集成A87 HYPERLINK l bookmark26 o Current Document 實(shí)現(xiàn)說明7 HYPERLINK l bookmark44 o Current Document 接口說明7 HYPERLINK l bookmark54 o Current Document 代碼示例8 HYPERLINK l bookmark56 o Current Do

4、cument 部署說明9A8集成第三方系統(tǒng)9實(shí)現(xiàn)方式一:Ticket9實(shí)現(xiàn)方式二:關(guān)聯(lián)系統(tǒng)+擴(kuò)展欄目11Portlet13概述13開發(fā)說明13確定欄目數(shù)據(jù)13確定欄目顯示模板13開發(fā)說明14注冊(cè)到系統(tǒng)14代碼示例15待辦事項(xiàng)和跟蹤事項(xiàng)21新聞和公告21消息集成224.1消息通道22概述22接口說明22 HYPERLINK l bookmark72 o Current Document 方法說明22注冊(cè)到系統(tǒng)22原理說明23代碼示例234.2短信接口24概述24接口說明24注冊(cè)到系統(tǒng)26原理說明27代碼示例28 HYPERLINK l bookmark80 o Current Document

5、組織模型同步295.1初始化同步29導(dǎo)出29導(dǎo)入305.2實(shí)時(shí)同步5.2.1實(shí)現(xiàn)5.2實(shí)時(shí)同步5.2.1實(shí)現(xiàn)A8組織模型事件監(jiān)聽接口305.2.2注冊(cè)事件監(jiān)聽3036 HYPERLINK l bookmark84 o Current Document 6BPM集成36準(zhǔn)備37外部系統(tǒng)發(fā)起A8表單流程38輪詢完成的表單流程38導(dǎo)出A8表單流程到外部系統(tǒng)387.附錄387.1術(shù)語表38修改記錄日期修改人修改內(nèi)容備注2008-12-08王文友創(chuàng)建文檔,編寫文檔模板。2008-12-15王文友增加了安裝服務(wù)文檔。2008-12-23王文友增加了文檔導(dǎo)出接口例程。2008-12-29王文友合并劉娜組織模

6、型文檔,加入例程;合并于荒津BPM文檔。2009-01-04王文友合并張勇Portai和消息文檔,拆分API文檔。2009-06-16張勇增加單點(diǎn)登錄不打開頁面方式說明和待辦事項(xiàng)接口說明2009-9-27王文友增加組織模型同步和BPM集成1.概述ii編寫目的本手冊(cè)主要面向二次開發(fā)人員,內(nèi)容涵蓋A8平臺(tái)的二次開發(fā)、第三方應(yīng)用集成。如果需要更詳細(xì)的開發(fā)信息,請(qǐng)參考平臺(tái)API參考手冊(cè)12開發(fā)背景接口的目標(biāo)是1、與第三方應(yīng)用集成,達(dá)成松散耦合,緊密集成的目標(biāo);2、與異構(gòu)應(yīng)用集成;3、降低二次開發(fā)的技術(shù)難度;4、規(guī)范化二次開發(fā),提升二次開發(fā)的穩(wěn)定性;5、保證二次開發(fā)的延續(xù)性,降低二次開發(fā)應(yīng)用升級(jí)難度。1

7、3應(yīng)用價(jià)值目前平臺(tái)開放的接口支持:1、組織模型同步使用組織模型導(dǎo)入接口,實(shí)現(xiàn)外部系統(tǒng)到A8的組織模型初始化同步;調(diào)用組織模型管理遠(yuǎn)程接口,在外部系統(tǒng)組織模型發(fā)生變化時(shí)實(shí)時(shí)同步到A8。實(shí)現(xiàn)組織模型事件接口,將A8組織模型變更實(shí)時(shí)同步到外部系統(tǒng)。2、表單流程集成外部系統(tǒng)通過BPM集成遠(yuǎn)程接口發(fā)起A8的表單流程,在A8中審批流轉(zhuǎn)后回到外部系統(tǒng),實(shí)現(xiàn)表單流程的打通。3、文檔導(dǎo)出使用文檔導(dǎo)出SDK,將A8的協(xié)同、公文、新聞、公告、調(diào)查和討論導(dǎo)出到外部系統(tǒng),滿足數(shù)據(jù)交換和歸檔的需求。4、Portai集成A8Portai可以集成外部系統(tǒng)的頁面,也可以將A8集成到第三方Portai中,并且實(shí)現(xiàn)單點(diǎn)登錄。5、消

8、息集成外部通過消息通道,實(shí)時(shí)獲取A8中的消息??梢詫8的消息以郵件、IM(如GKE、RTX)消息和短信形式發(fā)送。外部系統(tǒng)通過消息接口向A8指定用戶發(fā)送消息。6、待辦事項(xiàng)集成外部系統(tǒng)通過待辦事項(xiàng)接口,可以得到A8待辦事項(xiàng)的列表,并且可以處理待辦事項(xiàng)。UFIDA用方致遠(yuǎn)UFIDA用方致遠(yuǎn)用友致遠(yuǎn)協(xié)同辦公系統(tǒng)一開發(fā)手冊(cè)UFIDA用方致遠(yuǎn)UFIDA用方致遠(yuǎn)用友致遠(yuǎn)協(xié)同辦公系統(tǒng)一開發(fā)手冊(cè)接口九靈售理攻檔導(dǎo)出詛門営珪崗悅曾理接口九靈售理攻檔導(dǎo)出詛門営珪崗悅曾理刪接口枳位級(jí)別管理表單接J址師a型事頂擾rottal規(guī)竝消懇接口消蠱通迺 HYPERLINK l bookmark6 o Current Docu

9、ment 組織魁接口(口QBPMjgg) HYPERLINK l bookmark8 o Current Document c事項(xiàng)和牆息接廠(口(插件規(guī)范JQWebSarviCfeJ(JAVA地接口.航平臺(tái)Portal消息工慟魁織模型智饒表單1.4接口范圍A8協(xié)同辦公平臺(tái)采用Java開發(fā),支持Oracle、mysql和SqlServer數(shù)據(jù)庫。平臺(tái)提供了以下接口:1、二次開發(fā)接口:提供本地開發(fā)的JavaSDK和WebService遠(yuǎn)程接口,涵蓋組織模型同步與導(dǎo)入導(dǎo)出、文檔導(dǎo)出、表單與流程集成、新聞與公告發(fā)布支持。2、Portal接口:提供頁面集成和單點(diǎn)登錄接口,實(shí)現(xiàn)外部應(yīng)用在A8-P0rtal

10、的集中展現(xiàn)。3、消息(短信)接口:提供外部系統(tǒng)獲得A8協(xié)同辦公平臺(tái)消息的機(jī)制。除標(biāo)準(zhǔn)化產(chǎn)品提供的短信集成支持外,A8還提供了短信二次開發(fā)接口,支持與特定的短信運(yùn)營平臺(tái)集成。UFIDA用反致遠(yuǎn)UFIDA用反致遠(yuǎn)用友致遠(yuǎn)協(xié)同辦公系統(tǒng)一開發(fā)手冊(cè)UFIDA用反致遠(yuǎn)UFIDA用反致遠(yuǎn)用友致遠(yuǎn)協(xié)同辦公系統(tǒng)一開發(fā)手冊(cè)2.二次開發(fā)接口預(yù)備知識(shí):1、WebService2、XML3、支持WebService調(diào)用的編程語言其中Java已驗(yàn)證,C#、Php未經(jīng)驗(yàn)證,請(qǐng)參照J(rèn)ava例程及axis2文檔進(jìn)行開發(fā)。A8平臺(tái)接口提供基于axis21.4實(shí)現(xiàn)的標(biāo)準(zhǔn)Webservice??梢圆扇《喾N方式進(jìn)行客戶端開發(fā)。本指南所

11、有遠(yuǎn)程接口例程使用axis2的ADB(Axis2DataBindingFramework)stub方式進(jìn)行開發(fā)。為便于二次開發(fā),在client/demo目錄中提供了一個(gè)示例應(yīng)用,示例包括以下內(nèi)容:單點(diǎn)登錄、組織模型同步、組織模型導(dǎo)出、公告新聞導(dǎo)出、文檔導(dǎo)出、表單流程查詢、BPM集成、消息集成、Portlet欄目集成21接口一覽組織模型接口:提供組織模型導(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)站。表單流程接口:提供

12、了外部數(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)列表。22服務(wù)列表A8平臺(tái)提供以下服務(wù):名稱服務(wù)說明驗(yàn)證服務(wù)authorityService用戶身份驗(yàn)證服務(wù)人員管理服務(wù)personService人員的創(chuàng)建、修改、刪除和啟用/禁用。部門管理服務(wù)departmentService部門的創(chuàng)建、修改、刪除和啟用/禁用。崗位管理服務(wù)ocupationServic

13、e崗位的創(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協(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ù)m

14、essageService外部系統(tǒng)發(fā)消息到A8的服務(wù)。文件服務(wù)downloadServiceuploadServiceA8的附件下載和上傳服務(wù)。服務(wù)詳情參見平臺(tái)API參考手冊(cè)3.Portal集成31單點(diǎn)登錄(SSO)311外部平臺(tái)集成A實(shí)現(xiàn)說明也就是從外部系統(tǒng)登錄到A8,這種認(rèn)證是完全信任外部系統(tǒng)的。單點(diǎn)登錄有2種效果:1,單點(diǎn)登錄成功后直接打開A8主頁面2,單點(diǎn)登錄成功后并不打開A8主頁面,A8維護(hù)ticket信息和登錄用戶信息,為以后請(qǐng)求服務(wù)作認(rèn)證使用,比如:請(qǐng)求獲得A8待辦事項(xiàng)列表服務(wù)。需要配置SSOLoginContext.xml中一個(gè)屬性如下:vpropertyname=forwar

15、dvalue=false/登錄過程:人員登錄外部平臺(tái)外部平臺(tái)帶著ticket和from跳轉(zhuǎn)到A8-/login/sso?from=*&ticket=*1.如果A8登錄正常,會(huì)在responseheader中增加SSOOK,否貝V增力口SSOError例如:/login/sso?ticket=+encodeURIComponent()+&from=gkeA8根據(jù)from取得握手bean,也就是springBeanid例如:調(diào)用握手bean由外部系統(tǒng)認(rèn)證ticket并返回A8的登錄名把ticket和username維護(hù)在內(nèi)存A8帶著ticket跳轉(zhuǎn)至到/login/proxy,也就是執(zhí)行一個(gè)ser

16、vletA8JAAS的取得用戶身份信息A8退出時(shí),會(huì)通過SSOLoginHandshakeInterface的logoutNotify()通知到外部系統(tǒng)外部系統(tǒng)退出時(shí),訪問A8/login/ssologout?from=*&ticket=*通知A接口說明外部平臺(tái)需要有A8登錄名的映射表或者使用相同的登錄名UFIDA用方致遠(yuǎn)用友致遠(yuǎn)協(xié)同辦公系統(tǒng)一開發(fā)手冊(cè)JAAS的DefaultLoginModule驗(yàn)證用戶名(不驗(yàn)證密碼)SSOLoginHandshakelnterface與from映射,需要配置或二次開發(fā),系統(tǒng)提供通用的SSOLoginHandshakeServletlmplA8的驗(yàn)證系統(tǒng)完全

17、依賴和信任外部系統(tǒng)(存在風(fēng)險(xiǎn))1、配置文件:ApacheJetspeed2webappsROOTWEB-INFclassesSSOLoginContext.xml(如無可自己創(chuàng)建)vbeansdefault-autowire=byNamepropertyname=namevalue=gke/propertyname=ticketNamevalue=ticket/propertyname=handshake2、實(shí)現(xiàn)接口SSOLoginHandshakeInterface的handshake方法/*通過握手獲取平臺(tái)的認(rèn)證信息paramtoken平臺(tái)傳過來的令牌信息return返回當(dāng)前登錄者的登錄名

18、*/publicStringhandshake(Stringtoken);代碼示例從GKE登錄到A8:publicclassGKEA8SSOLoginImpimplementsSSOLoginHandshakeInterfaceprivatestaticfinalLoglog=LogFactory.getLog(GKEA8SSOLoginImp.class);privatestaticfinalintgkeTimeOut=60000;/token”就是ticket取得的參數(shù)值publicStringhandshake(Stringtoken)if(token=nulltoken.equals(

19、)returnnull;StringuserName=;UFIDA用反致遠(yuǎn)UFIDA用反致遠(yuǎn)用友致遠(yuǎn)協(xié)同辦公系統(tǒng)一開發(fā)手冊(cè)UFIDA用反致遠(yuǎn)UFIDA用反致遠(yuǎn)用友致遠(yuǎn)協(xié)同辦公系統(tǒng)一開發(fā)手冊(cè)Stringr=token.split(,);if(r=nullrength!=2)returnnull;userName=this.checkPassport(r0,r1);returnuserName;privateStringcheckPassport(StringGID,StringpassPort)StringBuffersb=newStringBuffer();sb.append();sb.app

20、end();sb.append();sb.append();sb.append();sb.append(passPort);sb.append();sb.append();sb.append();sb.append();returngetGKEResponse(postGKERequest(sb.toString();部署說明單點(diǎn)登錄的開發(fā)建立的java文件放在org.apache.jetspeed.login包下例如:packagecom.seeyon.v3x.login.gke;注意事項(xiàng):Java的編譯class文件,SSOLoginContext.xml文件,jsp文件copy至USee

21、yonA8/webapps/R00T下312A8集成第三方系統(tǒng)實(shí)現(xiàn)方式一:Ticket實(shí)現(xiàn)步驟:1.添加頁簽按下面的定義,在A8的webapps/seeyon/WEB-INF/classes目錄下新建一個(gè)XML文件,如myspace.xmlpropertyname=idvalue=sinaNews/propertyname=namevalue=SinaNews/propertyname=pluginIdvalue=news/propertyname=loginURLvalue=/propertyname=pageURLvalue=/propertyname=openTypevalue=open

22、/!-排序號(hào)-/bean/beans修改webapps/seeyon/WEB-INF/web.xml,增加對(duì)新增的myspace.xml的引用:dasEi-ath*:kiti5rrL:it_fi:.rrri.cfg.wrTil_.;olnsspath:+;m口td1已M已呂5包巨匕.:i:lassjiath:+:lcig亡OTLtrcillt=r.3-:rTil_.clazzpath:+:1ueorilog.xnil,.ffclasspath:+:ee:11otl.kftiI.,iiclazzp且th:+:prjpertymajper.xml,.!classpath:+:in-legratio

23、tl.Kml,:claz-path:+:curTini:m.hriI,.:classpath:+:or刃丄三apper.xnl,clasEpath:+::gent.Jimi,.classpath:+:applc廠rii:itlager.Hml,:idasejiath*:fcirrribi工cc-tlfi1:ontToil*.kfiI,.::1=lsspath:+;fornbizc:tlfi寸汕aimger.i匚1旦呂呂工|注th:*::pF:i|二色呂兮10丁E:;il.3-EfTil1clazzpath:+:myzpac已|Kml,.Xi1p:=LT:dJTl-V:L11ez(/c0ntex

24、t_par:iin?注意事項(xiàng):集成第三方系統(tǒng),要以A8系統(tǒng)插件定義在webappsseeyonWEB-INFclassesconfplugin下新建一個(gè)內(nèi)容如下的XML,即可定義一個(gè)id為news,名稱為“新聞插件”的新的插件UFIDA用方致遠(yuǎn)UFIDA用方致遠(yuǎn)用友致遠(yuǎn)協(xié)同辦公系統(tǒng)一開發(fā)手冊(cè)UFIDA用反致遠(yuǎn)UFIDA用反致遠(yuǎn)用友致遠(yuǎn)協(xié)同辦公系統(tǒng)一開發(fā)手冊(cè)vbeansdefault-autowire=byNamepropertyname=idvalue=news/propertyname=namevalue=新聞插件/propertyname=contextConfigLocationclas

25、spath*:a.xml/property配置第三方系統(tǒng)ThirdpartySpace:名稱、登錄地址、頁面地址、打開方式、訪問權(quán)限、能訪問的系統(tǒng)角色登錄過程在A8中點(diǎn)擊空間頁簽oA8產(chǎn)生Ticket,并維護(hù)在內(nèi)存中oA8帶著Ticket訪問第三方系統(tǒng)的登錄地址(loginURL)進(jìn)行握手第三方系統(tǒng)根據(jù)Ticket回調(diào)獲取A8身份信息,進(jìn)行單點(diǎn)登錄,并注冊(cè)Ticket和登錄用戶的映射A8帶著Ticket跳轉(zhuǎn)到第三方系統(tǒng)的頁面地址(pageURL)4.說明o第三方系統(tǒng)完全依賴和信任A8的身份驗(yàn)證,Ticket由A8發(fā)放o第三方系統(tǒng)使用與A8完全相同的登錄名或者進(jìn)行二次開發(fā),自己維護(hù)A8登錄名與第

26、三方系統(tǒng)用戶的映射表。o如果當(dāng)前用戶已經(jīng)登錄第三方系統(tǒng),將跳過,直接到第4步,使用相同的Ticket認(rèn)證ticket/獲取身份信息的接口系統(tǒng)提供Servlet: HYPERLINK http:/a8:80/seeyon/thirdparty.do?ticket=* http:/a8:80/seeyon/thirdparty.do?ticket=*;A8將通過responseheader的LoginName返回登錄名;如果第三方回調(diào)后認(rèn)為有異常,請(qǐng)?jiān)趓esponseheader增加名稱為SSOLogoutError的信息。o第三方系統(tǒng)退出時(shí),要通知A8,地址是 HYPERLINK http:/a

27、8:80/seey_on/thi_rdpa_rty.do?method_=_logoutNotify&ticket=* http:/a8:80/seeyon/thirdparty.do?method=logoutNotify&ticket=*o根據(jù)情況可將步合并(省略loginURL)實(shí)現(xiàn)方式二:關(guān)聯(lián)系統(tǒng)+擴(kuò)展欄目無需開發(fā),使用關(guān)聯(lián)系統(tǒng)管理登錄信息,集成外部系統(tǒng)頁面。1、配置關(guān)聯(lián)系統(tǒng)以系統(tǒng)管理員system登錄A8,使用“關(guān)聯(lián)系統(tǒng)管理”建立一個(gè)新的關(guān)聯(lián)系統(tǒng)。關(guān)聯(lián)系統(tǒng)的url為被集成系統(tǒng)的登錄鏈接,將登錄需要的信息如用戶名和密碼定義為關(guān)聯(lián)系統(tǒng)參數(shù)。3=rCaoglsEmilhtipATnjil.

28、GCCGlE.LOm亟m3=rCaoglsEmilhtipATnjil.GCCGlE.LOm亟m|H:沖*URLGET宀POSTh廠券如記S?碼廠用戶名useiTlame1n廠passwordl;2、建立擴(kuò)展欄目由外部系統(tǒng)管理驗(yàn)證信息的欄目有兩種:數(shù)據(jù)集成型欄目(SSOWebContentSection)和功能操作型欄目(SSOIframeSection)。類型:數(shù)據(jù)集成型欄目宙SOWebContEntSection名稱:=點(diǎn)擊此處埴寫名祜授權(quán):=點(diǎn)擊此處選擇人員=欄目設(shè)置頁面地址.|關(guān)聯(lián)系統(tǒng)名稱:|Session超時(shí)盯間分鐘;:30數(shù)據(jù)集成型欄目是通過用戶配置的關(guān)聯(lián)丟統(tǒng)到服務(wù)器諦認(rèn)證后直接顯

29、示抽取到的數(shù)據(jù)還類型欄目安全皺別高,但可操作性不如功能按作型欄目=諸類型欄目認(rèn)征需要結(jié)合關(guān)貶丟統(tǒng),且需要猩供數(shù)據(jù)抽取的頁面地址欄目定義類型:|功能操作型欄目(SSOIframeSectionj三名稱:卜點(diǎn)擊此處埴寫名稱=接權(quán):卜點(diǎn)擊Jtt;處選擇人員=欄目設(shè)置關(guān)聯(lián)系統(tǒng)名稱:|功能操作型欄目是用lfmmE嵌入需要登錄認(rèn)證的丟統(tǒng)中的頁面需結(jié)合關(guān)聯(lián)丟統(tǒng)實(shí)現(xiàn)單點(diǎn)登錄功能操作型欄目直接嵌入外部系統(tǒng)頁面可操作性強(qiáng)f旦安全級(jí)別不如數(shù)據(jù)集成型欄目3、用戶登錄后,在個(gè)人空間中配置關(guān)聯(lián)系統(tǒng)參數(shù),填寫集成系統(tǒng)的登錄信息(用戶名和密碼)。由關(guān)聯(lián)系統(tǒng)維護(hù)被集成系統(tǒng)的用戶名、密碼以及Session。關(guān)聯(lián)人員關(guān)聯(lián)項(xiàng)目關(guān)聯(lián)系

30、竦內(nèi)都系統(tǒng)外部系統(tǒng)置丟統(tǒng)便窯4、說明被集成系統(tǒng)的修改:登錄不成功,需要在登錄請(qǐng)求的response中增加header項(xiàng):LoginError=*,否則A8無法判斷是否成功登錄。32Portlet321概述Portlet在A8中的概念是首頁空間中的一個(gè)區(qū)域,它包含多個(gè)Tab(欄目)。Portlet的開發(fā)也就是對(duì)Tab欄目的開發(fā)特亦事項(xiàng)涉2項(xiàng))跟蹤事項(xiàng)洪2項(xiàng))持辦事項(xiàng)L07/05/2303:18暉敏縫協(xié)同持辦爭項(xiàng)207/05/2213:55譚敏鋒協(xié)同322開發(fā)說明確定欄目數(shù)據(jù)欄目中的數(shù)據(jù)由首頁應(yīng)用來確定需要提供的接口:在應(yīng)用中專為首頁提供數(shù)據(jù)抽取的接口或方法,一般有2個(gè):數(shù)據(jù)列表抽取,需要做好按量

31、抽取數(shù)據(jù)總數(shù)統(tǒng)計(jì)確定欄目顯示模板現(xiàn)在欄目顯示模板提供了以下幾種(不斷擴(kuò)充中)MultiRowFourColumnTemplete重復(fù)行、4列4列依次是subject、createDate、createMemberName、categoryUFIDA用礙遠(yuǎn)用友致遠(yuǎn)協(xié)同辦公系統(tǒng)一開發(fā)手冊(cè)鏈接:subject、category分別都有鏈接擴(kuò)展屬性:importantLevel、hasAttachments、bodyType、extIconsMultiRowThreeColumnTemplete重復(fù)行、3列3列依次是subject、createDate、category鏈接:subject、categ

32、ory分別都有鏈接擴(kuò)展屬性:importantLevel、hasAttachments、bodyType、extIconsChessboardTemplete棋盤式每個(gè)項(xiàng)目的屬性有:icon、name、linksetLayout(row,colum)設(shè)置行數(shù)跟列數(shù)HTMLTempletehtml的輸出模式Model屬性:直接輸出,采用innerHTML方式采用內(nèi)嵌模式Html屬性:htmI代碼開發(fā)說明包名:com.seeyon.v3x.main.section命名規(guī)范:*Section其它:必須繼承BaseSection需要實(shí)現(xiàn)的方法1、getld()欄目的唯一標(biāo)識(shí),同時(shí)也是SpringBea

33、n定義的Id,在ajax.xml中需要配置該bean;直接返回一個(gè)有字符+數(shù)字組成的字符串,如:pendingSection2、getName()欄目名稱的國際化key,需要在資源文件/apps_res/v3xmain/js/i18n下定義3、getIcon()欄目圖標(biāo),統(tǒng)一放在/apps_res/v3xmain/images/section下,如/apps_res/v3xmain/images/section/pending.col.gif4、getTotal()總數(shù),如果不需要顯示總數(shù),就返回null5、projection()在這里取得數(shù)據(jù),并在顯示模板中填充數(shù)據(jù)底部鏈接:1、接口tem

34、plete.addBottomButton(label,link);2、通用按鈕labela)更多BaseSectionTemplete.BOTTOM_BUTTON_LABEL_MORE注冊(cè)到系統(tǒng)找至section.xml,配己置spring:propertyname=orgManagerref=OrgManager/propertyname=spaceTypespersonal注意事項(xiàng):bean的id必須和java類中g(shù)etId()返回的值相同執(zhí)行sql腳本把portlet(Tab)添加到系統(tǒng):例如:INSERTINTOv3x_portlet_entity_propertyVALUES(15

35、,30,sections,relateMemberSection,projectSection,newLinkSystemSection);在其后增加你的sectionid,用逗號(hào)分隔323代碼示例以待辦事項(xiàng)為例:例如:publicclassPendingSectionextendsBaseSectionprivatestaticfinalLoglog=LogFactory.getLog(PendingSection.class);privateAffairManageraffairManager;privateOrgManagerorgManager;publicvoidsetAffairM

36、anager(AffairManageraffairManager)this.affairManager=affairManager;publicvoidsetOrgManager(OrgManagerorgManager)Manager=orgManager;OverridepublicStringgetId()returnpendingSection;publicStringgetName(MapString,Stringpreference)returnpending;OverridepublicStringgetIcon()returnnull;OverridepublicIntege

37、rgetTotal(MapString,Stringpreference)Useruser=CurrentUser.get();Longmemberld=user.getId();List_agentModelList=MemberAgentBean.getInstance().getAgentModelList(memberld);List_agentModelToList=MemberAgentBean.getInstance().getAgentModelToList(memberld);ListagentModelList=null;booleanagentToFlag=false;b

38、ooleanisPloxy=false;if(_agentModelList!=null&!_agentModelList.isEmpty()isPloxy=true;agentModelList=_agentModelList;elseif(_agentModelToList!=null&!_agentModelToList.isEmpty()isPloxy=true;agentModelList=_agentModelToList;agentToFlag=true;elseisPloxy=false;MapagentModelMap=newHashMap();if(isPloxy)for(

39、AgentModelagentModel:agentModelList)StringagentOptionStr=agentModel.getAgentOption();StringagentOptions=agentOptionStr.split(&);for(StringagentOption:agentOptions)int_agentOption=Integer.parselnt(agentOption);if(_agentOption=ApplicationCategoryEnum.collaboration.key()agentModelMap.put(ApplicationCat

40、egoryEnum.collaboration.key(),agentModel);elseif(_agentOption=ApplicationCategoryEnum.edoc.key()agentModelMap.put(ApplicationCategoryEnum.edoc.key(),agentModel);elseif(_agentOption=ApplicationCategoryEnum.meetingkey()agentModelMap.put(ApplicationCategoryEnum.meeting.key(),agentModel);returnaffairMan

41、ager.countPending(memberId,agentModelMap,null,null,null,agentToFlag);publicBaseSectionTempleteprojection(MapString,Stringpreference)MultiRowFourColumnTempletec=newMultiRowFourColumnTemplete();Useruser=CurrentUser.get();Longmemberld=user.getId();Longproxyld=user.getAgentToId();Pagination.setNeedCount

42、(false);/不需要分頁P(yáng)agination.setFirstResult(O);Pagination.setMaxResults(8);Stringurl=;List_agentModelList=MemberAgentBean.getInstance().getAgentModelList(memberld);List_agentModelToList=MemberAgentBean.getInstance().getAgentModelToList(memberld);ListagentModelList=null;booleanagentToFlag=false;booleanis

43、Ploxy=false;if(_agentModelList!=null&!_agentModelList.isEmpty()isPloxy=true;agentModelList=_agentModelList;elseif(_agentModelToList!=null&!_agentModelToList.isEmpty()isPloxy=true;agentModelList=_agentModelToList;agentToFlag=true;elseisPloxy=false;MapagentModelMap=newHashMap();if(isPloxy)for(AgentMod

44、elagentModel:agentModelList)StringagentOptionStr=agentModel.getAgentOption();StringagentOptions=agentOptionStr.split(&);for(StringagentOption:agentOptions)int_agentOption=Integer.parselnt(agentOption);TOC o 1-5 h zif(_agentOption=ApplicationCategoryEnum.collaboration.key()agentModelMap.put(Applicati

45、onCategoryEnum.collaboration.key(),agentModel);elseif(_agentOption=ApplicationCategoryEnum.edoc.key()agentModelMap.put(ApplicationCategoryEnum.edoc.key(),agentModel);elseif(_agentOption=ApplicationCategoryEnum.meeting.key()agentModelMap.put(ApplicationCategoryEnum.meeting.key(),agentModel);Listaffai

46、rs=affairManager.queryPendingList(memberId,agentModelMap,null,null,null,agentToFlag);if(affairs=null)returnnull;for(Affairaffair:affairs)url=;MultiRowFourColumnTemplete.Rowrow=c.addRow();StringforwardMember=affair.getForwardMember();IntegerresentTime=affair.getResentTime();Stringsubject=ColHelper.me

47、rgeSubjectWithForwardMembers(affair.getSubject(),forwardMember,resentTime,orgManager,null);intapp=affair.getApp();LongobjectId=affair.getObjectId();row.setSubject(subject);ApplicationCategoryEnumappEnum=ApplicationCategoryEnum.valueOf(app);switch(appEnum)casecollaboration:row.setLink(/collaboration.

48、do?method=detail&from=Pending&affairId=+affair.getId();UFIDA用方致遠(yuǎn)用友致遠(yuǎn)協(xié)同辦公系統(tǒng)-開發(fā)手冊(cè)UFIDA用方致遠(yuǎn)用友致遠(yuǎn)協(xié)同辦公系統(tǒng)-開發(fā)手冊(cè)UFIDA用方致遠(yuǎn)用友致遠(yuǎn)協(xié)同辦公系統(tǒng)-開發(fā)手冊(cè)UFIDA用方致遠(yuǎn)用友致遠(yuǎn)協(xié)同辦公系統(tǒng)-開發(fā)手冊(cè)row.setCategory(app,/collaboration.do?method=collaborationFrame&from=Pending);break;casemeeting:row.setLink(/mtMeeting.do?method=myDetailFrame&id=+ob

49、jectId);row.setCategory(app,/mtMeeting.do?method=listHome);break;caseedocSend:caseedocRec:caseedocSign:row.setLink(/edocController.do?method=detail&from=Pending&affairId=+affair.getId();row.setCategory(app,EdocUtil.getEdocCategroryPendingUrl(appEnum.getKey();break;caseexSend:row.setLink(/exchangeEdo

50、c.do?method=sendDetail&modelType=toSend&id=+affair.getSubObjectId();if(MenuFunction.hasMenu(EdocUtil.getMenuIdByApp(appEnum.getKey()url=/exchangeEdoc.do?method=listMainEntry&modelType=toSend;row.setCategory(app,url);break;caseexSign:row.setLink(/exchangeEdoc.do?method=receiveDetail&modelType=toRecei

51、ve&id=+affair.getSubObjectId();if(MenuFunction.hasMenu(EdocUtil.getMenuIdByApp(appEnum.getKey()url=/exchangeEdoc.do?method=listMainEntry&modelType=toReceive;row.setCategory(app,url);break;caseedocRegister:row.setLink(/edocController.do?method=entryManager&entry=newEdoc&comm=register&edocType=+EdocEn

52、um.edocType.recEdoc.ordinal()+&exchangeId=+affair.getSubObjectId()+&edocId=+affair.getObjectId(),BaseSectionTemplete.OPEN_TYPE.href);if(MenuFunction.hasMenu(EdocUtil.getMenuIdByApp(appEnum.getKey()url=/edocController.do?method=entryManager&entry=edocFrame&from=listRegisterPending;row.setCategory(app

53、,url);break;casebulletin:row.setLink(/bulData.do?method=audit&id=+affair.getObjectId(),OPEN_TYPE.openWorkSpaceRight);booleanisGroup=(affair.getSubObjectId().intValue()=com.seeyon.v3x.bulletin.util.Constants.BulTypeSpaceType.group.ordinal();row.setCategory(app,/bulData.do?method=auditListMain&spaceTy

54、pe=+(isGroup?0:1)+&bulTypeId=&type=&from=+(isGroup?Group:);break;casenews:row.setLink(/newsData.do?method=audit&id=+affair.getObjectId(),OPEN_TYPE.openWorkSpaceRight);booleanisGroupNews=(affair.getSubObjectId().intValue()=com.seeyon.v3x.news.util.Constants.NewsTypeSpaceType.group.ordinal();row.setCa

55、tegory(app,/newsData.do?method=auditListMain&spaceType=+(isGroupNews?0:1)+&newsTypeId=&type=&from=+(isGroupNews?Group:);break;caseinquiry:row.setLink(/inquirybasic.do?method=survey_check&bid=+objectId,OPEN_TYPE.openWorkSpaceRight);row.setCategory(app,/inquirybasic.do?method=recent_or_check);break;ca

56、semeetingroom:row.setLink(/meetingroom.do?method=createPerm&openWin=1&id=+objectId,OPEN_TYPE.openWorkSpaceRight);row.setCategory(app,/meetingroom.do?method=index);V3xOrgMembermember=null;tryUFIDA用方取遠(yuǎn)UFIDA用方取遠(yuǎn)用友致遠(yuǎn)協(xié)同辦公系統(tǒng)一開發(fā)手冊(cè)UFIDA用反致遠(yuǎn)UFIDA用反致遠(yuǎn)用友致遠(yuǎn)協(xié)同辦公系統(tǒng)一開發(fā)手冊(cè)member=orgManager.getMemberById(affair.getSe

57、nderId();catch(BusinessExceptione)log.error(,e);row.setCreateMemberName(member.getName();row.setCreateMemberAlt(Functions.showMemberName(member);row.setCreateDate(affair.getCreateDate();if(proxyId.equals(affair.getMemberId()row.setAgent(true);/代理row.setBodyType(affair.getBodyType();row.setImportantL

58、evel(affair.getImportantLevel();row.setHasAttachments(affair.isHasAttachments();BooleanisOverTime=affair.getIsOvertopTime();/超期事件突出顯示row.setDistinct(isOverTime);if(isOverTime)row.addExtIcons(/common/images/timeout.gif);elseif(affair.getDeadlineDate()!=null&affair.getDeadlineDate()!=0)row.addExtIcons

59、(/common/images/overTime.gif);if(_agentModelToList!=null&!_agentModelToList.isEmpty()|_agentModelList!=null&!_agentModelList.isEmpty()c.addBottomButton(BaseSectionTemplete.BOTTOM_BUTTON_LABEL_AGENT,/main.do?method=agentPending&type=all);c.addBottomButton(BaseSectionTemplete.BOTTOM_BUTTON_LABEL_MORE,

60、/main.do?method=morePending&type=all);returnc;324324待辦事項(xiàng)和跟蹤事項(xiàng)調(diào)用affairservice的exportPendingList和exportTrackList服務(wù),獲得用戶的待辦事項(xiàng)和跟蹤事項(xiàng)的XML,解析后可以在外部系統(tǒng)進(jìn)行展示。325新聞和公告調(diào)用documentservice的exportRecentNews和exportRecentAccountBulletin服務(wù),獲得指定單位的新聞和公告的XML,解析后可以在外部系統(tǒng)進(jìn)行展示。4.消息集成4.消息集成外部系統(tǒng)可以使用消息服務(wù)(參見平臺(tái)API參考手冊(cè)的消息服務(wù))向A8用戶發(fā)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論