目 录
人力资源WebService接口开发使用说明
一、前言
1.1编写目的
本文给有研发能力的客户或有系统集成需求的客户提供web service接口调用的参考例程。本文的面向具有一定web service开发能力或了解web service技术的开发人员。
1.2名词定义
1、Axis:
著名的开源web service引擎。
2、外部系统:
指调用或实现e-cology输入输出接口,与e-cology系统进行数据交接的其他系统。
二、接口调用步骤
2.1检查web service是否已部署
在浏览器中输入http://ecologyServer/services,应显示如下页面:
如果未出先上述页面,则web service未部署成功,请与泛微项目人员联系。
接口部署成功之后,需要在OA的HrmWebserviceIP.properties配置文件中配置调用接口客户端的IP,调用接口时传入的参数ip包涵在此配置文件才能调用以下接口。
2.2接口方法概述
名称 | 参数 | 返回值 | 功能描述 |
SynSubCompany | String ipaddress:调用接口的IP地址,String xmlData:分部信息的xml | 成功:1,失败:0,2:无权限调用 | 同步分部信息 |
SynDepartment | String ipaddress:调用接口的IP地址,String xmlData:部门信息的xml | 成功:1,失败:0,2:无权限调用 | 同步部门信息 |
SynJobtitle | String ipaddress:调用接口的IP地址,String xmlData:岗位信息的xml | 成功:1,失败:0,2:无权限调用 | 同步岗位信息 |
SynHrmResource | String ipaddress:调用接口的IP地址,String xmlData:人员信息的xml | 成功:1,失败:0,2:无权限调用 | 同步人员信息 |
getHrmSubcompanyInfo | String ipaddress:调用接口的IP地址, | SubCompanyInfo[]:分部信息列表 | 获取所有分部信息列表 |
getHrmDepartmentInfo | String ipaddress:调用接口的IP地址,String subcompanyId:分部id,多个用逗号分隔(不为空时该条件有效) | DepartmentInfo[]:部门信息列表 | 根据参数条件获取部门信息列表 |
getHrmJobTitleInfo | String ipaddress:调用接口的IP地址,String subcompanyId:分部id,多个用逗号分隔(不为空时该条件有效)
String departmentid: 部门id,多个用逗号分隔(不为空时该条件有效) |
JobTitleInfo[]:岗位信息列表 | 根据参数条件获取岗位信息列表 |
getHrmUserInfo | String ipaddress:调用接口的IP地址,String subcompanyId:分部id,多个用逗号分隔(不为空时该条件有效)
String departmentid: 部门id,多个用逗号分隔(不为空时该条件有效) String jobtitleid: 岗位id,多个用逗号分隔(不为空时该条件有效) String lastChangeDate: 最后修改日期,日期格式“YYYY-MM-DD”(不为空时该条件有效) String workcode: 人员编码(不为空时该条件有效) |
UserInfo[]:用户信息列表 | 根据参数条件获取用户信息列表 |
checkUser | String ipaddress:调用接口的IP地址
String loginid:登录名 String password:密码 |
True:表示存在
False:表示不存在 |
检测OA用户 |
2.3 接口相关对象说明
1)SynSubCompany 同步分部传入xml的格式如下(一定要按照此格式传入):
<?xml version=”1.0″ encoding=”UTF-8″?>
<root>
<orglist>
<org action=”add”>
<code>001</code>
<shortname>测试分部一</shortname>
<fullname>测试分部一</fullname>
<parent_code>0</parent_code>
<order>0</order>
</org>
<org action=”edit”>
<code>002</code>
<shortname>测试分部二</shortname>
<fullname>测试分部二</fullname>
<parent_code>0</parent_code>
<order>1</order>
</org>
<org action=”delete”>
<code>003</code>
<canceled>1</canceled>
</org>
</orglist>
</root>
相关属性说明:
Action:动作,add:添加,edit:编辑,delete:删除,OA中只做封存和解封,canceled=1封存,canceled=0解封
Code:分部编码,唯一值
Shortname:分部简称
Fullname:分部全称
Parent_code:上级分部编码,没有上级请填写0
Order:排序值
2)SynDepartment同步部门传入xml的格式如下(一定要按照此格式传入):
<?xml version=”1.0″ encoding=”UTF-8″?>
<root>
<orglist>
<org action=”add”>
<code>0001</code>
<shortname>测试部门一</shortname>
<fullname>测试部门一</fullname>
<org_code>001</org_code>
<parent_code>0</parent_code>
<order>0</order>
</org>
<org action=”edit”>
<code>0002</code>
<shortname>测试部门二</shortname>
<fullname>测试部门二</fullname>
<org_code>003</org_code>
<parent_code>0</parent_code>
<order>1</order>
</org>
<org action=”del”>
<code>0003</code>
<canceled>1</canceled>
</org>
</orglist>
</root>
相关属性说明:
Action:动作,add:添加,edit:编辑,delete:删除,OA中只做封存和解封,canceled=1封存,canceled=0解封
Code:部门编码,唯一值
Shortname:部门简称
Fullname:部门全称
Org_code:分部编码
Parent_code:上级部门编码,没有上级请填写0
Order:排序值
3)SynJobtitle同步岗位传入xml的格式如下(一定要按照此格式传入):
<?xml version=”1.0″ encoding=”UTF-8″?>
<root>
<jobtitlelist>
<jobtitle action=”add”>
<jobtitlecode>00001</jobtitlecode>
<jobtitlename>测试岗位一</jobtitlename>
<jobtitleremark>测试岗位一</jobtitleremark>
<jobtitledept>0001</jobtitledept>
</jobtitle>
<jobtitle action=”edit”>
<jobtitlecode>00002</jobtitlecode>
<jobtitlename>测试岗位二</jobtitlename>
<jobtitleremark>测试岗位二</jobtitleremark>
<jobtitledept>0002</jobtitledept>
</jobtitle>
<jobtitle action=”delete”>
<jobtitlecode>00003</jobtitlecode>
<jobtitlename>测试岗位三</jobtitlename>
</jobtitle>
</jobtitlelist>
</root>
相关属性说明:
Action:动作,add:添加,edit:编辑,delete:删除
Jobtitlecode:岗位编码,唯一值
Jobtitlename:岗位简称
Jobtitleremark:岗位全称
Org_code:分部编码
Jobtitledept:岗位所属部门编码
4)SynHrmResource同步人员传入xml的格式如下(一定要按照此格式传入):
<?xml version=”1.0″ encoding=”UTF-8″?>
<root>
<hrmlist>
<hrm action=”add”>
<workcode>10001</workcode>
<loginid>test</loginid>
<lastname>test</lastname>
<password>123456</password>
<subcompany>测试分部一</subcompany>
<department>测试部门一</department>
<jobtitle>测试岗位一</jobtitle>
<statue>正式</statue>
<managerid>1024</managerid>
<sex>男</sex>
<birthday>1988-09-09</birthday>
<telephone>12345678</telephone>
<mobile>12345678</mobile>
<email>test@163.com</email>
<maritalstatus>已婚</maritalstatus>
</hrm>
<hrm action=”edit”>
<workcode>10001</workcode>
<loginid>test</loginid>
<lastname>test</lastname>
<password>123456</password>
<subcompany>测试分部一</subcompany>
<department>测试部门一</department>
<jobtitle>测试岗位一</jobtitle>
<statue>正式</statue>
<managerid>1024</managerid>
<sex>男</sex>
<birthday>1988-09-09</birthday>
<telephone>12345678</telephone>
<mobile>12345678</mobile>
<email>test@163.com</email>
<maritalstatus>已婚</maritalstatus>
</hrm>
</hrmlist>
</root>
相关属性说明:
Action:动作,add:添加,edit:编辑
Workcode:人员编码,唯一值
Subcompany:分部
Department:部门
Lastname:姓名
Loginid:登录名
Password:密码
Seclevel:安全级别
Sex:性别
Jobtitle:岗位
Jobactivityid:职务
Jobgroupid:职务类别
Jobcall:职称
Joblevel:职级
Jobactivitydesc:职责描述
Managerid:直接上级(编码)
Assistantid:助理(编码)
Status:状态
Locationid:办公室
Workroom:办公地点
Telephone:办公电话
Mobile:移动电话
Mobilecall:其他电话
Fax:传真
Email:邮箱
Systemlanguage:系统语言
Birthday:出生日期
Folk:名族
Nativeplace:籍贯
Regresidentplace:户口
Certificatenum:身份证号码
Maritalstatus:婚姻状况
Policy:政治面貌
Bememberdate:入团日期
Bepartydate:入党日期
Islabouunion:工会会员
Educationlevel:学历
Degree:学位
Healthinfo:健康状况
Residentplace:现居住地
Homeaddress:家庭联系方式
Tempresidentnumber:暂住证号码
以上是人员同步的所有节点信息,需要同步那些字段,就填写相应的值。
5)SubCompanyInfo
/**
* 分部id
*/
private java.lang.String _subcompanyid;
/**
* 简称
*/
private java.lang.String _shortname;
/**
* 全称
*/
private java.lang.String _fullname;
/**
* 上级分部id
*/
private java.lang.String _supsubcompanyid;
/**
* 网站
*/
private java.lang.String _website;
/**
* 显示顺序
*/
private java.lang.String _showorder;
/**
* 公司编码
*/
private java.lang.String _code;
/**
* 是否封存
*/
private java.lang.String _canceled;
6)DepartmentInfo
/**
* 部门id
*/
private java.lang.String _departmentid;
/**
* 简称
*/
private java.lang.String _shortname;
/**
* 全称
*/
private java.lang.String _fullname;
/**
* 所属分部id
*/
private java.lang.String _subcompanyid;
/**
* 上级部门id
*/
private java.lang.String _supdepartmentid;
/**
* 显示顺序
*/
private java.lang.String _showorder;
/**
* 部门编码
*/
private java.lang.String _code;
/**
* 是否封存
*/
private java.lang.String _canceled;
7)JobTitleInfo
/**
* 岗位id
*/
private java.lang.String _jobtitleid;
/**
* 简称
*/
private java.lang.String _shortname;
/**
* 全称
*/
private java.lang.String _fullname;
/**
* 所属部门id
*/
private java.lang.String _departmentid;
/**
* 岗位职责
*/
private java.lang.String _jobresponsibility;
/**
* 任职资格
*/
private java.lang.String _jobcompetency;
/**
* 相关文档
*/
private java.lang.String _jobdoc;
/**
* 备注
*/
private java.lang.String _jobtitleremark;
8)UserInfo
private int userid ; //用户id
private String subcompanyid1; //分部
private String departmentid; //部门
private String workcode; //编号
private String lastname; //姓名
private String loginid; //系统账号
private String password; //密码
private String seclevel; //安全级别
private String sex; //性别
private String jobtitle; //岗位
private String jobactivityid; //职务
private String jobgroupid; //职务类型
private String jobcall; //职称
private String joblevel; //职级
private String jobactivitydesc;//职责描述
private String managerid; //直接上级
private String assistantid; //助理
private String status; //状态 eg:正式、试用等
private String locationid; //办公地点
private String workroom; //办公室
private String telephone; //办公电话
private String mobile; //移动电话
private String mobilecall; //其他电话
private String fax; //传真
private String email; //电子邮件
private String systemlanguage;//系统语言 默认7
private String birthday; //生日
private String folk; //名族
private String nativeplace; //籍贯
private String regresidentplace; //户口
private String certificatenum; //身份证号
private String maritalstatus; //婚姻状况
private String policy; //政治面貌
private String bememberdate; //入团日期
private String bepartydate; //入党日期
private String islabouunion; //是否是工会会员
private String educationlevel; //学历
private String degree; //学位
private String healthinfo; //健康状况
private String height; //身高
private String weight; //体重
private String residentplace; //居住地
private String homeaddress; //家庭住址
private String tempresidentnumber; //暂住证号码
private String startdate = “” ; //合同开始日期
private String enddate = “” ; //合同结束日期
private String createdate=””; //创建日期
private String lastChangdate=””; //最后修改日期
private int accounttype; //账号类型
private int dsporder; //显示顺序
以上是获得用户的基本信息字段
2.4 生成客户端
大家知道,在本地调用web service,最便利的方法是利用工具生成客户端代理,开发人员通过客户端代理去访问web service将会非常简单,就象调用本地的方法一样。各大主流的编程语言都提供了通过wsdl生成客户端代理的工具,如c#中的wsdl.exe和java中的wsdl2java。本文以java为例说明客户端的生成方法。
2.4.1客户端所需jar
commons-discovery-0.2.jar
javax-wsdl_1.5.1jar
commons-logging_1.0.4.jar
axis.jar
jaxrpc.jar
saaj.jar
activation.jar
mail.jar
2.4.2 生成客户端
使用eclipse向导生成Web Service客户端
三、示例程序
3.1 使用客户端同步公司信息
public static void main(String[] args) {
try {
String orgxml =””;
HrmServiceClient client = new HrmServiceClient();
HrmServicePortType service = client.getHrmServiceHttpPort();
service. synSubCompany (“192.168.4.183”, orgxml);
} catch (Exception e) {
e.printStackTrace();
}
}
检测用户:
public static void main(String[] args) {
try {
HrmServiceClient client = new HrmServiceClient();
HrmServicePortType service = client.getHrmServiceHttpPort();
System.out.println(service.checkUser(“192.168.4.183”, “test”, “1”));
} catch (Exception e) {
e.printStackTrace();
}
}
转载请注明:赫非域 » 人力资源(HrmService)WebService接口使用说明