申请免费试用、咨询电话:400-8352-114
第十二部分 泛普免费OA人力资源webservices接口
一. 泛普OA破解版接口说明
可以通过该接口对系统中的人员组织架构进行操作。具体方法见下面的使用说明。
二. 泛普OA免费版使用说明
1) 检查web service是否已部署
在浏览器中输入http://Server/services,应显示如下页面:
如果未出先上述页面,则web service未部署成功,请与泛普项目人员联系。
接口部署成功之后,需要在OA的HrmWebserviceIP.properties配置文件中配置调用接口客户端的IP,调用接口时传入的参数ip包涵在此配置文件才能调用以下接口。
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用户
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客户端
4) 泛普协同OA办公平台示例程序
使用客户端同步公司信息
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();
}