1、1 统一待办(WebService 方式)1.1 概述门户系统做为用户访问各集成应用系统的统一入口,用户访问企业内部信息资源时只需要登录到门户系统,就可使用门户系统集成的各个应用,而待办做为各系统中用户需要处理的工作,门户系统需要提供收集建投内部应用系统中产生的待办信息,并且进行统一展现的功能,即统一待办功能。统一待办应用业务涉及到的系统其中包括本期门户系统建设过程中所需集成的OA、WCM、EAM 系统。为保证门户系统接入各应用系统待办信息的规范性,现就各应用系统接入实现做统一要求,以确保门户系统统一待办功能实现的规范性、重用性及安全性。不满足本技术方案提供的接入规则的相关应用系统,应参考本文
2、档完成对应用系统改造后方可进行门户系统统一待办接入工作。统一待办实现共分为以下部分: 系统待办信息获取 系统待办信息展示 系统待办信息处理1.2 待办信息获取设计思路:应用系统通过门户系统提供的 webservice 接口向门户系统统一待办系统库写入代表信息,如下图统 一 待 办 信 息接 口待 办 信 息 获 取调 用 统 一 待办 接 口应 用 系 统统 一 待 办系 统数据获取设计示意图步骤如下:1.应用系统需获得最新的待办信息。2.应用系统通过门户接口,将获得的最新待办信息发送到门户系统。3.统一待办系统将应用系统提供的待办信息展示给用户。4.应用系统通过调用集成接口后获得信息,可以判
3、断发送信息操作是否正常。1.3 待办信息展示设计思路:应用系统将最新的待办信息发送到统一待办系统中,并最终展示到门户首页上的待办栏目上,如下图浏 览 器待 办 栏 目 页 面读 取用 户统 一 待 办 库 应 用 系 统发 送最 新 待 办 信 息统 一 待 办接 口存 入统 一 待 办展 示 程 序展 示待办集中展示设计示意图场景如下:在所有的待办类标题前加上”请办理” ,待阅类标题前加上”请审阅” 。此外,如果信息是未办或者未阅,用红色表示1.4 待办信息处理设计思路:用户点击门户系统上“待办栏目”里的一条待办时,弹出一个新页面,首先同应用系统实现 SSO,然后跳转到应用系统的待办页面,完
4、成待办处理后,由应用系统调用门户接口通知门户系统,并关闭弹出的待办处理页面,门户系统负责即时刷新门户待办页。如下图:用 户应 用 系 统 接 口应 用 系 统 待 办处 理 页 面统 一 待 办 处 理页 面S S O跳 转处 理 完 成 后 , 门 户 统 一 系 统 刷 新 待 办 栏 目统 一 待 办 数 据 库统 一 待 办 信 息获 取 接 口修 改 待 办 状 态统 一 待 办 栏 目点 击 待 办时 弹 出统 一 待 办 系 统应用系统待办信息集中处理设计示意图 1.5 系统待办规范1.5.1 WebService 服务端服务地址:http:/域名:8080/jicpending
5、/services/IPandingInterfaceWebservice?wsdl服务文件: 服务方法:方法 1.putPandingInfo:新待办方法 2.changePangdingStatus:当 OPTTYPE 值为 2 时,则表示修改待办,当为 3 时,则表示删除待办方法 3.仅供 OA 系统使用. putOaPandingInfo:新待办, 方法 4. 仅供 OA 系统使用changeOaPangdingStatus:当 OPTTYPE 值为 2 时,则表示修改待办,当为 3 时,则表示删除待办,仅供 OA 系统使用服务参数:具体定义如下表 表描述 11.5.2 新待办 第一步
6、:应用系统有新待办信息时,调用门户系统接口,将数据传送给门户系统提供的接口,流程如下:门 户 统 一 待 办 接 口接 收 信 息应 用 系 统1 . W e b s e r v i c e2 . 反 馈应 用 系 统 程 序WebService 接口图在此过程中,各个应用系统以传递对象的形式传递参数,提供的参数自身包括的值为以下表说明,另外,OA 系统传递参数的时候不用传递对象,只要依次传入以下表说明即可。属性名 说明 类型 长度 备注OPTTYPE 待办操作类型 String 10 只出现数值型字符,分别代表1:add 2:modify3:delete,此外,修改操作时只修改 pstatu
7、s 一个字段PSCODE 待办对应的应用系统编号String 10 由门户系统事先编制,参考应用系统统一编码表 (1.3)PCODE 待办编码 String 50 待办编码,各应用系统待办的唯一标识PTITLE 待办标题 String 200 待办标题PDATE 待办时间 String 20 待办时间,日期格式如下:yyyy-MM-dd HH:mm:ssPPRINCIPAL 待办人标示 String 100 待办负责人标示,即用户登录名PURL URL 地址 String 400 待办信息 URL,应用系统提供相对的 URLPSTATUS 待办状态 String 2 待办状态 0:待办 (阅)
8、,1 已阅,2:已办PORANIGER 待办发起人标示 String 100 待办发起人标示,不要PTYPE 待办类别:是待办类还是待阅类String 2 待办类别:1.待办类(包括 0、1、2三个状态):2 待阅类(包括 0、1两个状态)PSCODEZH 应用系统编号对 String 30 Eg:oaoa 系统应的中文名称 Eam企业资产管理系统NGRERSON 拟稿人 String 20 拟稿人NGDEPT 拟稿部门 String 40 拟稿部门WENHAO 文号 String 60 文号 eg:中建投发文 XX 号NGDATE 拟稿日期 String 20 日期格式如下:yyyy-MM-
9、dd表描述 11.5.2.1.1 WebService 应用系统样例OA 应用系统:public static void main(String args) String url =null;try url = .Inet4Address.getLocalHost().getHostAddress().toString(); catch (UnknownHostException e1) / TODO Auto-generated catch blocke1.printStackTrace();StringBuffer serviceURL = new StringBuffer();servi
10、ceURL.append(“http:/“).append(url).append(“:8080/jicpending/services/IPandingInterfaceWebservice“);try IPandingInterfaceWebservice service = XfireClientFactory.getClient(serviceURL.toString(), IPandingInterfaceWebservice.class); /新待办,应用系统调用该接口进行待办数据插入操作,/*方法名:putPandingInfo()参数名:optType, psCode, pCo
11、de, pTitle, pDate, pOraniger, pPrincipal, pURL, pStatus, Ptype等各个参数具体定义如上图说明*/String addValue = service.putPandingInfo(optType, psCode, pCode, pTitle, pDate, pOraniger, pPrincipal, pURL, pStatus, Ptype);System.out.println(“新增待办成功吗? :“ +addValue); catch (Exception e) e.printStackTrace(); 非 OA 应用系统:pu
12、blic static void main(String args) String url =null;try url = .Inet4Address.getLocalHost().getHostAddress().toString(); catch (UnknownHostException e1) / TODO Auto-generated catch blocke1.printStackTrace();StringBuffer serviceURL = new StringBuffer();serviceURL.append(“http:/“).append(url).append(“:
13、8080/jicpending/services/IPandingInterfaceWebservice“);try IPandingInterfaceWebservice service = XfireClientFactory.getClient(serviceURL.toString(), IPandingInterfaceWebservice.class); /新增待办RPendingVo vo = new RPendingVo();vo.setOptType(“);vo.setPCode(“);vo.setPscode(“);vo.setPTitle(“);vo.setPstatus
14、(“);vo.setPOraniger(“);vo.setPPrincipal(“);vo.setPDate(“);vo.setPURL(“);vo.setPtype(“);String addValue = service.putPandingInfo(vo);System.out.println(“新增待办成功吗?:“ +addValue); catch (Exception e) e.printStackTrace(); 1.5.3 修改、删除待办 第一步:应用系统需要修改待办信息时,调用门户系统接口,将数据传递给门户系统提供的接口,流程如下:门 户 统 一 待 办 接 口接 收 信 息
15、应 用 系 统1 . W e b s e r v i c e2 . 反 馈应 用 系 统 程 序传输数据方式在此过程中,需要从应用系统获得的值包括以下几个:属性名 说明 类型 长度 备注optType 操作类型 String 10 只出现数值型字符,分别代表1:add 2:modify3:delete,此外,修改操作时只修改 pstatus 一个字段psCode 待办对应的应用系统编号String 10 待办对应的应用系统编号,由门户系统事先编制,并在集成时提供给各应用系统pCode 待办编码 String 50 各应用系统待办的唯一标识Ptype 待办类别 String 2 待办类别:1.待
16、办类(包括 0、1、2三个状态):2 待阅类(包括 0、1两个状态)PPRINCIPAL 待办人标示 String 100 待办负责人标示,即用户登录名表描述 21.5.3.1.1 WebService 应用系统样例应用系统:public static void main(String args) String url =null;try url = .Inet4Address.getLocalHost().getHostAddress().toString(); catch (UnknownHostException e1) / TODO Auto-generated catch block
17、e1.printStackTrace();StringBuffer serviceURL = new StringBuffer();serviceURL.append(“http:/“).append(url).append(“:8080/jicpending/services/IPandingInterfaceWebservice“);try IPandingInterfaceWebservice service = XfireClientFactory.getClient(serviceURL.toString(), IPandingInterfaceWebservice.class);
18、/修改、删除待办,应用系统调用该接口进行待办数据修改、插入操作,/*方法名:changePangdingStatus ()参数名:optType, psCode, pCode, pTitle, pDate, pOraniger, pPrincipal, pURL, pStatus, Ptype等各个参数具体定义如上图说明*/修改待办,当optType=2String modifyValue = service.changePangdingStatus(optType, psCode, pCode, Ptype);System.out.println(“修改待办成功吗 ?:“ +modifyVa
19、lue);/ 删除待办, 当optType=3String deleteValue = service.changePangdingStatus(optType, psCode, pCode, Ptype);System.out.println(“删除待办成功吗? :“ +deleteValue); catch (Exception e) e.printStackTrace(); 统一代办 新增:putOaPandingInfo 、putPandingInfo属性名 说明 类型 长度 备注OPTTYPE 待办操作类型,不能为 NullString 10 只出现数值型字符,分别代表1:add 2
20、:modify3:delete PSCODE 待办对应的应用系统编号,不能为 NullString 10 由门户系统事先编制,参考应用系统统一编码表PCODE 待办编码 ,不能为 Null String 50 待办编码,各应用系统待办的唯一标识PTITLE 待办标题,不能为NullString 200 待办标题PDATE 待办时间,不能为NullString 20 待办时间,日期格式如下:yyyy-MM-dd HH:mm:ssPPRINCIPAL 待办人标示,不能为 NullString 100 待办负责人标示,即用户登录名PURL URL 地址,不能为NullString 400 待办信息
21、URL,应用系统提供相对的 URLPSTATUS 待办状态,不能为NullString 2 待办状态 0:待办 (阅),1 已阅,2:已办PTYPE 待办类别:是待办类还是待阅类,不能为 NullString 2 待办类别:1.待办类(包括 0、1、2三个状态):2 待阅类(包括 0、1两个状态)PSCODEZH 应用系统编号对应的中文名称,不能为 NullString 30 Eg: oaoa 系统EAM企业资产管理系统NGRERSON 拟稿人,不能为NullString 20 拟稿人NGDEPT 拟稿部门,不能为NullString 40 拟稿部门WENHAO 文号 String 60 文号
22、 eg:中建投发文 XX 号NGDATE 拟稿日期,不能为NullString 20 日期格式如下:yyyy-MM-ddPNOTE 备用,当做待办所属模块String 255 Eg:发文管理修改、删除: changeOaPangdingStatus、changePangdingStatus属性名 说明 类型 长度 备注optType 操作类型 String 10 只出现数值型字符,分别代表1:add 2:modify3:delete psCode 待办对应的应用系统编号String 10 待办对应的应用系统编号,由门户系统事先编制,并在集成时提供给各应用系统pCode 待办编码 String
23、50 待办编码,各应用系统待办的唯一标识Ptype 待办类别 String 2 待办类别:1.待办类(包括 0、1、2三个状态):2 待阅类(包括 0、1两个状态)PPRINCIPAL 待办人标示 String 100 待办负责人标示,即用户登录名2 统一用户管理2.1 统一用户管理的必要性在门户系统建设之前,各应用系统分别具有各自独立的用户账户和权限管理体系,企业内部不同的用户群体在访问不同的应用系统时,需要分别进行身份的认证和授权,用户与应用系统之间相互交叉形成了一个网状的身份管理架构,如下图所示。用户在访问不同的系统时需要输入不同的账号和口令,不仅不方便,而且有安全隐患。门户系统的建成和
24、投入使用,使用户能够通过 Portal 这个统一的入口、利用单点登录(Single Sign-On)技术实现对后台多个应用系统的统一访问,解决了上述的网状身份架构带来的问题。这是门户系统的一项重要功能和收益。但是对于 IT 系统管理和维护人员来说,目前并没有带来方便。甚至经常为门户与后台各应用系统身份信息不能自动保持一致等一系列问题而感到头疼。其原因在于虽然通过门户实现了用户的统一登录,但是对身份信息的维护和管理仍然是分散的,如下图所示。用一句话来概括就是:用户可以通过门户实现统一登录,但是用户信息的维护和管理仍然是分散的,即“统一登录,分散管理” 。分散的用户管理必将带来以下各种弊端:1.
25、系统之间无法共享用户基本数据,造成信息冗余2. 用户的身份信息不能在系统间自动保持一致和同步3. 用户管理分散,维护工作量巨大4. 存在安全隐患5. 缺乏用户管理流程保障6. 难以量化管理用户身份信息,不能满足身份安全审计的要求2.2 用户信息同步设计按照各应用系统及应用使用数据库类型进行区分,数据同步设计分为如下几种同步方式:2.2.1 邮件系统用户数据同步和 J2EE 类应用系统用户数据同步一致,调用门户中间数据库接口。2.2.2 Domino OA 用户数据同步通过邮件系统同步用户到 domino OA 的 names.nsf 库,但是如果 OA 系统需要同步部门的话,则调用门户提供的部
26、门同步服务接口。2.2.3 J2EE 类应用系统用户数据同步对于 J2EE 类通过 JAVA 开发实现的应用系统,统一安全层的用户数据采用 “主动”方式与应用系统进行用户数据交互,如下图所示:一、 主动方式说明应用系统通过中间数据库提供的 JAVA 应用 API 接口,按照一定时间规则通过轮寻方式读取中间用户数据库中的用户数据,并同步到应用系统对应用户数据库表中。设计步骤如下图所示公文办公系统T i v o l i D i r e c t o r y I n t e g r a t o r 脚本用户同步应用系统内容发布系统档案管理系统其他系统 系统中 间 数 据 库取 数用 户 信 息 同 步
27、L D A P监 控 信 息W e b S e r v i c e返 回 数 据请 求 取 数返 回 数 据具体步骤:1. TDI 脚本通过 LDAPChangelog 读取变化的用户或者组织机构数据2. TDI 脚本将数据写到 TIM 中完成标准动作,同时也将数据写到中间数据库中。3. 各应用系统按照一定时间规则通过轮寻方式调用门户的 webservice 接口请求从中间数据库中读取有变化的用户或组织机构数据。4. 门户 webservice 接口将获得的数据返回给各应用系统,各应用系统将数据同步到对应的用户或机构数据库表中2.2.4 门户用户数据源门户系统用户分为两类,第一是:实名用户,第
28、二是:虚拟用户1.实名用户:此类用户可以同时存在多个部门,产生自 OA 流程,在 OA 流程审批后,调用门户系统提供的 WebService 接口,把数据放入门户系统中间数据库。WebService 服务端服务地址:http:/域名:8080/jicdsource/services/IDsInterfaceWebservice?wsdl服务参数:具体定义如下表Name Type Nullable 属性描述C_CODE VARCHAR2(10) Y 员工编号C_NAMEVARCHAR2(200) Y 员工姓名C_UNITCODE VARCHAR2(200) Y员工所属部门唯一标识,可以有多值,以
29、#分开C_UNITNAME VARCHAR2(200) Y员工所属部门名称,可以有多值,因为一个员工可以同时在多个部门,以#分开C_GENDER VARCHAR2(2) Y 性别:1 男 2 女CUIDENTITYNUMBER VARCHAR2(20) Y身份证号码,只针对实名用户MAIL VARCHAR2(50) Y 个人内网电子邮件CUEXECPOSITIONLEVEL VARCHAR2(10) Y 行政职务级别MOBILE VARCHAR2(20) Y 手机号码TELEPHONENUMBER VARCHAR2(20) Y 办公电话PHYSICALDELIVERYOFFICENAMEVAR
30、CHAR2(200) Y 办公地点CUORDER VARCHAR2(20) Y部门内人员排序,无排序写“50000“CUPOST VARCHAR2(50) Y 现从事岗位CUEXECPOSITION VARCHAR2(50) Y 行政职务CUFORMALVARCHAR2(10) Y当前用户是实名还是虚拟,1:实名2:虚拟CHANGETYPEVARCHAR2(20) Y修改类型,1:add,2:modify,3:deleteCHANGETIME VARCHAR2(20)Y修改时间,格式如:20090922151118PRINCIPAID VARCHAR2(10)Y虚拟用户:负责人唯一标识TUSE
31、RIDVARCHAR2(10) Y虚拟用户:使用人唯一标识PRINCIPANAMEVARCHAR2(10) Y虚拟用户:负责人姓名TUSERNAMEVARCHAR2(10) Y虚拟用户:使用人姓名SYSTEMCODE VARCHAR2(50) Y 业务系统编号SYSTEMNAME VARCHAR2(100) Y业务系统名称2.虚拟用户:即临时用户。包括负责人和使用人两个属性,负责人必须从实名用户中选择,使用人可以是多人,来自于文本填写,或者也可以提供选择非实名的用户。具体信息如实名用户表说明2.2.5 门户部门数据源门户部门数据来自于 OA 流程。WebService 服务端服务地址:http
32、:/域名:8080/jicpending/services/DSInterfaceWebservice?wsdl服务参数:具体定义如下表Name Type Nullable 属性描述C_CODE VARCHAR2(20) N 部门唯一标识C_UNITNAME VARCHAR2(200) Y 部门全称C_PARENTUNITID VARCHAR2(200) Y上级部门编码,真实的直属上级CUORDER VARCHAR2(200) Y排序号,若无排序号写 1000CUFORMAL VARCHAR2(10) Y是否是临时部门:1.正式 2.临时CHANGETYPE VARCHAR2(10) N部门操
33、作类型:1 表示添加 2 表示修改 3 表示删除CHANGETIME VARCHAR2(20) N修改时间,格式如:20090922151118DEPTLEVER VARCHAR2(100) Y 部门级别DEPTLEADER VARCHAR2(100) Y 部门领导CUBAK3 VARCHAR2(100) Y 备用字段CUBAK4 VARCHAR2(100) Y 备用字段CUBAK5 VARCHAR2(100) Y 备用字段CUBAK6 VARCHAR2(100) Y 备用字段CUBAK7 VARCHAR2(100) Y 备用字段2.2.6 同步用户、部门到应用系统服务地址:http:/域名:
34、8080/jicpending/services/IPandingInterfaceWebservice?wsdl服务文件: 服务方法:方法 1.putDsDeptInfo:新增部门方法 2.modifyDsDeptInfo: 修改部门方法 3deleteDsDeptInfo:删除部门方法 4. putDsUserInfo:新增用户方法 5. modifyDsUserInfo:修改用户方法 6. deleteDsUserInfo:删除用户同步方式如 1.3.3 J2EE 类应用系统用户数据同步所述。/同步用户serviceURL.append(“http:/“).append(url).app
35、end(“:8080/jicamp/services/DSInterfaceWebservice“);try DSInterfaceWebservice service = XfireClientFactory.getClient(serviceURL.toString(), DSInterfaceWebservice.class); / 新增用户DsUserInfoVo vo = new DsUserInfoVo();vo.setCCode(“);vo.setCName(“);vo.setCUnitcode(“);vo.setCUnitname(“);vo.setCGender(“);vo.
36、setCuidentitynumber(“);vo.setMail(“);vo.setCuexecpositionlevel(“);vo.setMobile(“);vo.setTelephonenumber(“);vo.setPhysicaldeliveryofficename(“);vo.setCuorder(“);vo.setCupost(“);vo.setCuexecposition(“);vo.setChangetime(“);vo.setChangetype(“);vo.setCuformal(“);/ vo.setPrincipaid(“);/ vo.setTuserid(“);/
37、 vo.setPrincipaname(“);/ vo.setTusername(“);vo.setSysId(“);vo.setSystemcode(“);vo.setSystemname(“);/新增用户String addValue = service.putDsUserInfo(vo);System.out.println(“新增用户成功吗? :“ +addValue);/同步部门 StringBuffer serviceURL = new StringBuffer();serviceURL.append(“http:/“).append(url).append(“:8080/jica
38、mp/services/DSInterfaceWebservice“);try DSInterfaceWebservice service = XfireClientFactory.getClient(serviceURL.toString(), DSInterfaceWebservice.class); Jicdeptinfo jicdeptinfo = new Jicdeptinfo();jicdeptinfo.setCOid(10);jicdeptinfo.setCCode(“);jicdeptinfo.setCUnitname(“);jicdeptinfo.setCParentunit
39、id(“);jicdeptinfo.setCuorder(“);jicdeptinfo.setCuformal(“);jicdeptinfo.setChangetype(“);jicdeptinfo.setChangetime(“);/ 新增部门String addValue = service.putDsDeptInfo(jicdeptinfo);System.out.println(“新增部门成功吗? :“ +addValue);2.2.7 需要的其它服务这些服务提供的是验证用户或修改密码的服务。如下:2.2.7.1应用系统用户认证服务:应用系统在单独访问自己系统的时候,调用门户系统提供的
40、访问 ldap 接口,根据用户登录 ID,密码,所登录系统的标识,来判断该登录系统的用户是否在,如果存在则登录成功,否则返回。loginid 为用户名,pwd 为密码(密文),sysidentify(系统标识).public String userValidate (String loginid, String pwd,String sysidentify)输出样例:返回值为 true,则认证通过用户,返回出错时,则根据返回的结果进行友好提示。1提示用户名不存在2提示密码不对3提示该用户没有访问系统权限2.2.7.2.门户密码修改服务:该服务提供修改门户系统密码功能,可以使用 IBM 的 it
41、im_expi.war 来实现这个功能。该功能会提供一张修改密码页面,只要输入门户系统用户名、旧密码、新密码,则修改成功。2.2.7.3验证应用系统用户是否存在根据用户登录 ID,查询该用户在 ldap 上是否存在 , loginid 为用户名 public String isExistUserInfo(String loginid)输出样例:返回值为 true,则存在此用户,false ,则不存在此用户。2.2.7.4获取应用系统用户信息根据用户登录 ID、系统标识取出用户的信息, loginid 为用户名 public String getSpecifyUserInfo(String lo
42、ginid, String sysidentify)输出样例:getSpecifyUserInfo1成功zhangxiaomingadmin1000000000000000管理员11系统 输出 XML 文件说明method 元素:处理操作的方法名code 元素:1(登录成功) 、2(用户已注销)3(用户名或密码不正确) 4(系统标识错误)message 元素: 登录说明信息loginid 元素: 登录名Empnumber: 员工编号identify 元素 : 身份证号username 元素:用户姓名status 元素: 0(已注销) 、1(已激活) systemcode 元素:系统编号Syst
43、emname 元素: 系统名称Systemurl 元素: 系统 URL调用服务示例String endpoint=“http:/域名:9080/jicds/webservice/Authenticate.jws“ Service service = new Service();Call call = (Call) service.createCall();call.setTargetEndpointAddress( new .URL(endpoint) );call.setOperationName(“getSpecifyUserInfo“);/填写要调用的方法名称byte key = “Jx
44、O092?#08xjx?Qsb1|a2008“.getBytes();String ret=(String) call.invoke(new Object “admin“,DESFunction.EnycrptDes(“888888“, key);System.out.println(“ “+ret);2.2.8 映射表设计和维护门户系统建立用户映射对照关系采取如下的方式:1、用户自助对照关系维护:员工可以在登录门户系统后,在门户系统中提供的页面上对个人已经集成的用户映射进行维护,用户可以根据实际工作情况修改个人在各应用系统中进行单点登录时使用的用户角色,在经过应用系统提供的 webservi
45、ce 接口校验信息正确性后,信息将写入对方应用系统用户映射表,以便应用系统进行后续认证工作。业务流程如下:门 户 系 统 用 户选择应用系统修改应用系统用户登录信息应用系统校验信息正确性写入映射表应用系统需按照如下方式提供信息验证返回信息: WebService 服务名服务名:CheckUserService 公共接口定义CheckUser处理 验证用户名及密码是否正确输入参数名称 描述 数据类型username 应用系统登录名户名StringPassword 应用系统登录密码String输出参数名称 描述 数据类型result 返回字符串, 0:失败 1:成功。String3 应用系统统一编码表规范定义:对于有英文简称的系统采用该英文简称,对于没有英文简称的系统,采用系统中文拼音首字母组成系统编码。对于本次门户的所有接口开发,如果涉及到系统编码都必需遵照此编码表内系统编码定义。系统名称 系统编码OA 系统 oa邮件系统 mailTRSWCM 系统 wcmEAM 系统 eam