A8接口和增值开发手册(2)

2019-01-18 18:08

用友致远协同办公系统-开发手册

2. 二次开发接口

预备知识:

1、 Web Service 2、 XML

3、 支持Web Service调用的编程语言

其中Java已验证,C#、Php未经验证,请参照Java例程及axis2文档进行开发。

A8平台接口提供基于axis2 1.4实现的标准Web service。可以采取多种方式进行客户端开发。

本指南所有远程接口例程使用axis2的ADB(Axis2 DataBinding Framework)stub方式进行开发。 为便于二次开发,在client/demo目录中提供了一个示例应用,示例包括以下内容: 单点登录、组织模型同步、组织模型导出、公告新闻导出、文档导出、表单流程查询、BPM集成、消息集成、Portlet栏目集成 2.1 接口一览

? 组织模型接口:提供组织模型导入和导出接口,可以实现其他HR与A8的集成,其他系统可以与A8实现组

织模型和人员信息同步。

? 文档接口:提供了A8文档导出接口,支持协同、公文、新闻、公告等信息导出,通过此接口可以实现与档案

软件的集成,以及A8信息发布到外部网站。

? 表单流程接口:提供了外部数据导入A8进行流转审批,以及A8流程审批信息导出到其他系统(如ERP),通

过此接口可以实现政府外网审批信息提交到内网进行流转审批,ERP数据可以转入A8进行流转,A8流程审批信息也可以转入ERP进行结果管理。

? 新闻和公告发布接口:提供了单位新闻和公告的发布。 ? 待办事项接口:提供A8待办事项列表。

2.2 服务列表

A8平台提供以下服务: 名称 验证服务 人员管理服务 部门管理服务 岗位管理服务 职务级别管理服务 单位管理服务 组织模型数据服务 文档导出服务 新闻公告发布服务 表单服务 服务 authorityService personService departmentService ocupationService otypeService accountService organizationDataService documentService documentService formService 说明 用户身份验证服务 人员的创建、修改、删除和启用/禁用。 部门的创建、修改、删除和启用/禁用。 岗位的创建、修改、删除和启用/禁用。 职务级别的创建、修改、删除和启用/禁用。 人员、部门、岗位和职务级别数据导入导出服务。 协同、公文、新闻、公告、讨论、调查数据导出服务。 新闻和公告发布发布服务。 表单定义与数据导出服务 用友致远协同办公系统-开发手册 BPM服务 事项服务 消息服务 文件服务 BPMService affairService messageService downloadService uploadService 业务单据流程集成服务。 待办事项和跟踪事项集成服务。 外部系统发消息到A8的服务。 A8的附件下载和上传服务。 服务详情参见《平台API参考手册》。

3. Portal集成

3.1 单点登录(SSO) 3.1.1 外部平台集成A8 3.1.1.1 实现说明

也就是从外部系统登录到A8,这种认证是完全信任外部系统的。 单点登录有2种效果:

1, 单点登录成功后直接打开A8主页面 2, 单点登录成功后并不打开A8主页面,A8维护ticket信息和登录用户信息,为以后请求服务作认证使用,比如:

请求获得A8待办事项列表服务。需要配置SSOLoginContext.xml中一个属性如下:

登录过程:

? 人员登录外部平台

? 外部平台带着ticket和from跳转到A8-/login/sso?from=*&ticket=*

1. 如果A8登录正常,会在response header中增加SSOOK,否则增加SSOError 例如:

\+encodeURIComponent(\<%=request.getParameter(\t\)%>\)+\;

? A8根据from取得握手bean ,也就是springBean id 例如:

? ? ? ? ? ? 调用握手bean由外部系统认证ticket并返回A8的登录名 把ticket和username维护在内存

A8带着ticket跳转到/login/proxy ,也就是执行一个servlet A8 JAAS的取得用户身份信息

A8退出时,会通过SSOLoginHandshakeInterface的logoutNotify()通知到外部系统 外部系统退出时,访问A8 /login/ssologout?from=*&ticket=*通知A8

3.1.1.2 接口说明

? 外部平台需要有A8登录名的映射表或者使用相同的登录名

用友致远协同办公系统-开发手册

? JAAS的DefaultLoginModule验证用户名(不验证密码)

? SSOLoginHandshakeInterface与from映射,需要配置或二次开发,系统提供通用的SSOLoginHandshakeServletImpl

? A8的验证系统完全依赖和信任外部系统(存在风险)

1、 配置文件:

ApacheJetspeed2\\webapps\\ROOT\\WEB-INF\\classes\\SSOLoginContext.xml(如无可自己创建)

2、 实现接口SSOLoginHandshakeInterface的handshake方法 /**

* 通过握手获取平台的认证信息

* @param token 平台传过来的令牌信息 * @return 返回当前登录者的登录名 */

public String handshake(String token);

3.1.1.3 代码示例 从GKE登录到A8: public class GKEA8SSOLoginImp implements SSOLoginHandshakeInterface { private static final Log log = LogFactory.getLog(GKEA8SSOLoginImp.class); private static final int gkeTimeOut=60000; // “token” 就是ticket取得的参数值 public String handshake(String token) { if(token==null||token.equals(\)) { return null; } String userName=\; 用友致远协同办公系统-开发手册

String[] r=token.split(\); if(r==null||r.length!=2) {

return null; }

userName=this.checkPassport(r[0], r[1]); return userName; }

private String checkPassport(String GID,String passPort ) {

StringBuffer sb = new StringBuffer();

sb.append(\);

sb.append(\); sb.append(\); sb.append(\);

sb.append(\+GID+\ gid=\\\ zoneid=\\\); sb.append(\); sb.append(passPort); sb.append(\); sb.append(\); sb.append(\); sb.append(\);

return getGKEResponse(postGKERequest(sb.toString())); }

3.1.1.4 部署说明

单点登录的开发建立的java文件放在org.apache.jetspeed.login包下 例如:

package com.seeyon.v3x.login.gke;

注意事项:

Java的编译class文件,SSOLoginContext.xml 文件,jsp文件copy到SeeyonA8/webapps/ROOT下

3.1.2 A8集成第三方系统 3.1.2.1 实现方式一:Ticket 实现步骤: 1. 添加页签

按下面的定义,在A8的webapps/seeyon/WEB-INF/classes目录下新建一个XML文件,如myspace.xml

用友致远协同办公系统-开发手册

修改webapps/seeyon/WEB-INF/web.xml,增加对新增的myspace.xml的引用

注意事项:集成第三方系统,要以A8系统插件定义

在webapps\\seeyon\\WEB-INF\\classes\\conf\\plugin下新建一个内容如下的XML,即可定义一个id为news,名称为“新闻插件”的新的插件


A8接口和增值开发手册(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:无痛引产怎么样

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: