A接口和增值开发手册_第1页
A接口和增值开发手册_第2页
A接口和增值开发手册_第3页
A接口和增值开发手册_第4页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、A8 平台接口和增值开发手册? 2006 UF Seeyon Co., Ltd. All rights reserved.This document contains information that is proprietaryand confidential to UF Seeyon., which shall not bedisclosed outside the recipient's company or duplicated,used or disclosed in whole or in part by the recipient forany purpose other

2、 than to evaluate this file.Any otheruse or disclosure in whole or in part of this informationwithout the express written permission of UF Seeyon. isprohibited.Date:2009-01-04Author:王文友Version:V1.0用友致远协同办公系统开发手册修改记录.31.概述.41.1编写目的.41.2开发背景.41.3应用价值.41.4接口范围.52.二次开发接口 .62.1接口一览.62.2服务列表.63.Portal 集成

3、.73.1单点登录 (SSO) .73.1.1外部平台集成 A8 . .实现说明 .接口说明 .代码示例 .部署说明 .93.1.2A8 集成第三方系统 .实现方式一: Ticket .实现方式二:关联系统+扩展栏目.1 13.2Portlet .133.2.1概述 .1 33.2.2开发说明 .1 确定栏目数据 .1 确定栏目显示模板 .1 开发说明 .1 注册到系统 .1 43.2.3代码示例 .1 53.2.4待办事项和跟踪事项

4、.2 13.2.5新闻和公告 .2 14.消息集成 .224.1消息通道.224.1.1概述 .2 24.1.2接口说明 .2 方法说明 .2 注册到系统 .2 原理说明 .2 34.1.3代码示例 .2 34.2短信接口.244.2.1概述 .2 44.2.2接口说明 .2 注册到系统 .2 原理说明 .2 74.2.3代码示例 .2 85.组织模型同步 .295.1初始化同步 .295.1.1导出 .2 95.1.2导入 .3 0用友致远协同办公系统开发手册5.2实时同步.305.2.1实现 A8 组织模型事件

5、监听接口 .3 05.2.2注册事件监听 .3 66.BPM集成 .366.1准备 . .376.2外部系统发起 A8 表单流程 .386.3轮询完成的表单流程 .386.4导出 A8表单流程到外部系统 .387.附录.387.1术语表 .38修改记录日期2008-12-082008-12-152008-12-232008-12-292009-01-042009-06-162009-9-27修改人修改内容备注王文友创建文档,编写文档模板。王文友增加了安装服务文档。王文友增加了文档导出接口例程。王文友合并刘娜组织模型文档,加入例程;合并于荒津 BPM 文档。王文友合并张勇 Portal 和消息文

6、档, 拆分API 文档。张勇增加单点登录不打开页面方式说明和待办事项接口说明王文友增加组织模型同步和 BPM 集成用友致远协同办公系统开发手册1. 概述1.1编写目的本手册主要面向二次开发人员,内容涵盖 A8 平台的二次开发、第三方应用集成。如果需要更详细的开发信息,请参考平台 API 参考手册。1.2开发背景接口的目标是1 、 与第三方应用集成,达成松散耦合,紧密集成的目标;2 、 与异构应用集成;3 、 降低二次开发的技术难度;4 、 规范化二次开发,提升二次开发的稳定性;5 、 保证二次开发的延续性,降低二次开发应用升级难度。1.3 应用价值目前平台开放的接口支持:1、 组织模型同步使用

7、组织模型导入接口,实现外部系统到A8 的组织模型初始化同步;调用组织模型管理远程接口,在外部系统组织模型发生变化时实时同步到A8 。实现组织模型事件接口,将A8 组织模型变更实时同步到外部系统。2、 表单流程集成外部系统通过BPM 集成远程接口发起A8 的表单流程,在 A8 中审批流转后回到外部系统,实现表单流程的打通。3、 文档导出使用文档导出SDK ,将 A8的协同、公文、新闻、公告、调查和讨论导出到外部系统,满足数据交换和归档的需求。4、 Portal 集成A8 Portal 可以集成外部系统的页面,也可以将A8集成到第三方 Portal中,并且实现单点登录。5、 消息集成外部通过消息通

8、道,实时获取A8 中的消息。可以将A8 的消息以邮件、 IM (如 GKE 、RTX )消息和短信形式发送。外部系统通过消息接口向A8 指定用户发送消息。6、 待办事项集成外部系统通过待办事项接口,可以得到A8 待办事项的列表,并且可以处理待办事项。用友致远协同办公系统开发手册1.4接口范围A8协同办公平台采用Java 开发,支持Oracle 、 mysql和Sql Server数据库。平台提供了以下接口:1 、 二次开发接口:提供本地开发的JavaSDK 和 WebService远程接口,涵盖组织模型同步与导入导出、文档导出、表单与流程集成、新闻与公告发布支持。2 、 Portal接口:提供

9、页面集成和单点登录接口,实现外部应用在A8-Portal的集中展现。3、 消息 (短信)接口:提供外部系统获得A8 协同办公平台消息的机制。除标准化产品提供的短信集成支持外,A8 还提供了短信二次开发接口,支持与特定的短信运营平台集成。用友致远协同办公系统开发手册2. 二次开发接口预备知识 :1、 Web Service2、 XML3、 支持 Web Service调用的编程语言其中 Java 已验证, C# 、 Php 未经验证,请参照Java 例程及 axis2文档进行开发。A8 平台接口提供基于axis2 1.4实现的标准Web service。可以采取多种方式进行客户端开发。本指南所有

10、远程接口例程使用axis2的 ADB ( Axis2 DataBinding Framework) stub方式进行开发。为便于二次开发,在client/demo目录中提供了一个示例应用,示例包括以下内容:单点登录、 组织模型同步、 组织模型导出、 公告新闻导出、 文档导出、 表单流程查询、 BPM 集成、消息集成、 Portlet 栏目集成2.1接口一览组织模型接口:提供组织模型导入和导出接口,可以实现其他HR 与 A8 的集成,其他系统可以与A8 实现组织模型和人员信息同步。文档接口:提供了A8文档导出接口,支持协同、公文、新闻、公告等信息导出,通过此接口可以实现与档案软件的集成,以及A8

11、信息发布到外部网站。表单流程接口: 提供了外部数据导入 A8 进行流转审批, 以及 A8流程审批信息导出到其他系统 (如 ERP),通过此接口可以实现政府外网审批信息提交到内网进行流转审批,ERP 数据可以转入 A8 进行流转, A8 流程审批信息也可以转入ERP 进行结果管理。新闻和公告发布接口:提供了单位新闻和公告的发布。待办事项接口:提供A8 待办事项列表。2.2服务列表A8 平台提供以下服务:名称服务验证服务authorityService人员管理服务personService部门管理服务departmentService岗位管理服务ocupationService职务级别管理服务ot

12、ypeService单位管理服务accountService组织模型数据服务organizationDataService文档导出服务documentService新闻公告发布服务documentService表单服务formService说明用户身份验证服务人员的创建、修改、删除和启用/ 禁用。部门的创建、修改、删除和启用/ 禁用。岗位的创建、修改、删除和启用/ 禁用。职务级别的创建、修改、删除和启用/ 禁用。人员、部门、岗位和职务级别数据导入导出服务。协同、公文、新闻、公告、讨论、调查数据导出服务。新闻和公告发布发布服务。表单定义与数据导出服务用友致远协同办公系统开发手册BPM 服务BPM

13、Service业务单据流程集成服务。事项服务affairService待办事项和跟踪事项集成服务。消息服务messageService外部系统发消息到 A8 的服务。文件服务downloadServiceA8 的附件下载和上传服务。uploadService服务详情参见平台API 参考手册。3.P o r t a l 集成3.1单点登录 (SSO)外部平台集成A8实现说明也就是从外部系统登录到A8 ,这种认证是完全信任外部系统的。单点登录有2 种效果:1 , 单点登录成功后直接打开A8主页面2 , 单点登录成功后并不打开A8主页面, A8 维护 ticket信息和登录用户信息, 为以后请求服务

14、作认证使用, 比如:请求获得 A8 待办事项列表服务。需要配置SSOLoginContext.xml中一个属性如下:<property name="forward" value="false"/>登录过程:人员登录外部平台外部平台带着ticket和 from跳转到 A8-/login/sso?from=*&ticket=*1.如果 A8 登录正常,会在response header中增加 SSOOK ,否则增加SSOError例如:"/login/sso?ticket=" +encodeURIComponent(

15、" <%=request.getParameter( "ticke t" ) %>" )+ "&from=gke" ;A8 根据 from取得握手bean,也就是 springBean id例如:< beanid = "gke"class>调用握手bean由外部系统认证ticket并返回 A8 的登录名把 ticket 和 username 维护在内存A8 带着 ticket跳转到 /login/proxy,也就是执行一个servletA8 JAAS的取得用户身份信息A8 退出时,会

16、通过SSOLoginHandshakeInterface的 logoutNotify()通知到外部系统外部系统退出时,访问A8 /login/ssologout?from=*&ticket=* 通知 A8接口说明外部平台需要有A8 登录名的映射表或者使用相同的登录名用友致远协同办公系统开发手册JAAS 的 DefaultLoginModuleSSOLoginHandshakeInterface验证用户名(不验证密码)与 from映射,需要配置或二次开发,系统提供通用的SSOLoginHandshakeServletImplA8 的验证系统完全依赖和信任外部系统(存在风险)1 、 配置文

17、件:ApacheJetspeed2webappsROOTWEB-INFclassesSSOLoginContext.xml(如无可自己创建)<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-/SPRING/DTD BEAN/EN""/dtd/spring-beans.dtd">< beans default-autowire=" byName

18、">< bean id =" gke " class=" org.apache.jetspeed.login.SSOLoginContext">< propertyname=" name " value =" gke "/>< propertyname=" ticketName" value =" ticket "/>< propertyname=" handshake">< bean&

19、quot;>< propertyname=" url " value=" http:/外部系统 :8080/checkTicket"/>< propertyname=" logoutUrl" value=" http:/外部系统 :8080/ssologout< propertyname=" ticketName" value=" ticket"/></ bean ></ property></ bean >&qu

20、ot;/></ beans >2 、 实现接口SSOLoginHandshakeInterface的 handshake方法/* 通过握手获取平台的认证信息* param token 平台传过来的令牌信息* return 返回当前登录者的登录名*/publicStringhandshake(Stringtoken);代码示例从 GKE 登录到 A8 :public classGKEA8SSOLoginImpimplementsSSOLoginHandshakeInterfaceprivate static finalLoglog = LogFactory.getLog(GKE

21、A8SSOLoginImp.class);private static final intgkeTimeOut=60000;/ “token ”就是 ticket 取得的参数值publicStringhandshake(Stringtoken)if(token=null|token.equals("" )return null;StringuserName=""用友致远协同办公系统开发手册Stringr =token.split ("," );if( r=null|r .length!=2)return null;userName=t

22、his.checkPassport( r 0,r 1);returnuserName;private StringcheckPassport(StringGID,String passPort )StringBuffersb = newStringBuffer();sb .append( "<?xml version="1.0" encoding="UTF-8" ?>");sb .append( "<request type="login" subtype="passport&

23、quot; msid="">");sb .append( "<message>");sb .append( "<user");sb .append( " GID=""+GID+ ""gid=""zoneid="">");sb .append( "<passport>");sb .append(passPort);sb .append( "</pass

24、port>");sb .append( "</user>");sb .append( "</message>");sb .append( "</request>");return getGKEResponse( postGKERequest( sb . toString ();部署说明单点登录的开发建立的java文件放在包下例如:package注意事项:Java的编译 class文件, SSOLoginContext.xml文件, jsp文件 copy到 SeeyonA8/webap

25、ps/ROOT下A8 集成第三方系统实现方式一: Ticket实现步骤 :1. 添加页签按下面的定义,在A8 的 webapps/seeyon/WEB-INF/classes目录下新建一个XML 文件,如myspace.xml用友致远协同办公系统开发手册<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-/SPRING/DTD BEAN/EN"< beans default-autowire="byName">

26、<!- id必须唯一 -><<!- id必须唯一->< property name="id" value="sinaNews"/> <!- 页签上显示的名称 ->< property name="name" value="Sina News"/><!-插件 id,必须存在,如果不存在,请按下面的步骤定义一个新的插件->< property name="pluginId"value="news"

27、/><!-第三方系统登录地址,如果合并3、4步,可以省略->< 点击页签要打开的第三方系统页面地址 -><<!-打开方式,值为 open时在新窗口打开,为 workspace时在 A8页面能打开->< property name="openType" value="open"/> <!- 排序号 ->< property name="index" value="4"/></ bean></ beans>修改

28、webapps/seeyon/WEB-INF/web.xml,增加对新增的myspace.xml的引用注意事项:集成第三方系统,要以A8系统插件定义在 webappsseeyonWEB-INFclassesconfplugin下新建一个内容如下的XML ,即可定义一个id为 news,名称为“新闻插件”的新的插件用友致远协同办公系统开发手册<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-/SPRING/DTD BEAN/EN"< be

29、ansdefault-autowire="byName">< beanid ="newsPluginDefintion"< propertyname="id"value="news"/>< propertyname="name"value=" 新闻插件 "/>< propertyname="contextConfigLocation">< list >< value >classpat

30、h*:a.xml</value ></ list ></ property></ bean ></ beans >2. 配置第三方系统ThirdpartySpace:名称、登录地址、页面地址、打开方式、访问权限、能访问的系统角色3. 登录过程o 在 A8 中点击 " 空间页签 "o A8 产生 Ticket ,并维护在内存中o A8 带着 Ticket 访问第三方系统的 " 登录地址 " ( loginURL )进行握手第三方系统根据Ticket回调获取A8 身份信息,进行单点登录,并注册Tic

31、ket和登录用户的映射A8带着Ticket跳转到第三方系统的" 页面地址"( pageURL)4. 说明o 第三方系统完全依赖和信任A8 的身份验证, Ticket 由 A8 发放o 第三方系统使用与 A8 完全相同的登录名或者进行二次开发,自己维护A8 登录名与第三方系统用户的映射表。o如果当前用户已经登录第三方系统,将跳过,直接到第4 步,使用相同的Ticket1.认证 ticket/获取身份信息的接口系统提供Servlet:http:/a8:80/seeyon/thirdparty.do?ticket=*; A8 将通过 response header的LoginNa

32、me返回登录名;2.如果第三方回调后认为有异常,请在o第三方系统退出时,要通知A8 ,地址是response header增加名称为SSOLogoutError的信息。http:/a8:80/seeyon/thirdparty.do?method=logoutNotify&ticket=* o 根据情况可将 步合并 (省略 loginURL )实现方式二:关联系统+扩展栏目1 、 配置关联系统以系统管理员system登录A8 ,使用“关联系统管理”建立一个新的关联系统。关联系统的url为被集成系统的登录链接,将登录需要的信息如用户名和密码定义为关联系统参数。用友致远协同办公系统开发手册

33、2 、 建立扩展栏目由外部系统管理验证信息的栏目有两种:数据集成型栏目(SSOWebContentSection)和功能操作型栏目( SSOIframeSection)。3 、 用户登录后,在个人空间中配置关联系统参数,填写集成系统的登录信息(用户名和密码)。由关联系统维护被集成系统的用户名、密码以及Session。用友致远协同办公系统开发手册4、 说明被集成系统的修改:登录不成功,需要在登录请求的response 中增加 header项: LoginError=*,否则 A8 无法判断是否成功登录。3.2Portlet3.2.1概述Portlet 在 A8 中的概念是首页空间中的一个区域,它

34、包含多个Tab( 栏目 ) 。Portlet的开发也就是对Tab 栏目的开发开发说明确定栏目数据栏目中的数据由首页应用来确定需要提供的接口:在应用中专为首页提供数据抽取的接口或方法,一般有1.数据列表抽取,需要做好按量抽取2.数据总数统计2 个:确定栏目显示模板现在栏目显示模板提供了以下几种( 不断扩充中)1.MultiRowFourColumnTemplete重复行、 4 列4 列依次是subject、createDate、 createMemberName、 category用友致远协同办公系统开发手册链接: subject、 category分别都有链接扩展属性: importantLevel、 hasAttachments、 bodyType、 extIcons2.MultiRowThreeColumnTemp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论