系列文章目录
第一章 OA&CRM数据集成业务场景及技术方案概述
第二章 基于CRM(LiveBOS webservice接口)获取数据
第三章 基于OA(ecology9 jersey)定义Rest Api前端数据接口封装
第四章 前端业务流程数据接口调用
前言
CRM系统基于顶点LiveBOS平台构建,对外的集成通过平台自带的WebService接口方式进行相关业务数据增删改查操作,本章节通过webservice客户端的方式进行数据集成。
一、LiveBOS WebService接口说明
1.登录接口
LoginResult login( String userid, String password, String scheme,String algorithm,String securityCode);
【参数说明】
Userid:用户标识(注:LiveBOS webservice 接口仅允许用户类型为service用户的才能在 LiveBOS Webservice 说明 webservice中调用)
Password:用户密码,根据algorithm指定的算法进行加密, algorithm=plain时为明文
Scheme:应用方案名
algorithm:加密算法
securityCode:安全码,预留,暂时送空串
【返回结果】
LoginResult
名称 | 类型 | 说明 |
---|---|---|
result | Int | 结果码,>0 成功,<=0失败 |
message | String | 返回提示信息 |
sessionId | String | 成功登录时,返回会话ID,以后查询与操作需要传入这个id |
2.注销接口
LogoutResult logout(String sessionId);
【参数说明】
sessionId:要注销的会话ID
【返回结果】
LogoutResult
名称 | 类型 | 说明 |
---|---|---|
result | Int | 结果码,>0 成功,<=0失败 |
message | String | 返回提示信息 |
3.数据查询接口
QueryResult query(String sessionId, String objectName,List params, String condition, QueryOption queryOption);
【参数说明】
sessionId:会话ID
objectName: 查询的对象名
params: 传入的参数集合(当要查询的对象为 查询对象,带参数的视图 等要传入参数, 实体对象则传入空值)
condition:查询的附加条件(查询对象无效),如:“ID=1000” 等
queryOption:查询选项.
【返回结果】
QeuryResult
【类型说明】
二、数据集成步骤
2.1.生成LiveBOS webservice客户端
通过Apache Axis生成WebService客户端,可参考以下文章进行。
2.2.数据集成逻辑
2.2.1.调用登录接口,获取用户认证信息
- String userid="ws"; //用户标识,配置文件获取
- String password="pwd"; //用户密码,配置文件获取
- String scheme=""; //应用方案名
- String algorithm="plain"; //加密算法,默认为plain
- String securityCode=""; //安全码,默认为空
-
- LoginResult loginResult = stub.login(userid,password,scheme,algorithm,securityCode);
- String sessionId = ""; //回话ID
- //登录成功
- if(loginResult.getResult() > 0){
- System.out.println("成功登录!");
- sessionId =loginResult.getSessionId();
- System.out.println(sessionId);
- }else{
- System.out.println(loginResult.getMessage());
- rtn.put("status","-1");
- rtn.put("msg","访问异常,请联系系统管理员");
- }
2.2.2.数据查询接口,获取数据
- String objectName ="cxWEB_XXXXXX"; //查询的对象名
- LbParameter[] params = new LbParameter[2]; //传入的参数集合
- String condition =null; //查询附加条件
- QueryOption option = new QueryOption(); //查询选项
-
- //前端参数转换:客户编号、所属机构
- //输入参数1:客户编号
- LbParameter param1 = new LbParameter();
- param1.setName("clientNo");
- param1.setValue("123");
- params[0]=param1;
-
- //输入参数2:所属机构
- LbParameter param2 = new LbParameter();
- param2.setName("depCode");
- param2.setValue("9999");
- params[1]=param2;
-
- option.setBatchNo(1);
- option.setBatchSize(10);
-
- QueryResult result = stub.query(sessionId,objectName,params,condition,option);
-
- if(result.getResult()>0){
- System.out.println("数据接口返回成功");
-
- ColInfo[] cols = null;
- List
records = null; - int filedsCount = 0;
-
- LbMetaData meta = result.getMetaData();
- filedsCount = meta.getColumnCount();
- if(filedsCount>0){
- cols = meta.getColInfo();
- }
-
- if(result.getCount()>0){
- rtn.put("status","1");
- rtn.put("msg","客户数据已获取");
- records = Arrays.asList(result.getRecords());
- Object[] record = records.get(0).getValues();
- for (int i=0;i
- rtn.put(cols[i].getLabel(),String.valueOf(record[i]));
- }
- }else{
- rtn.put("status","1");
- rtn.put("msg","参数异常,未匹配数据");
- }
2.2.3.接口用户注销接口,退出接口访问
- LogoutResult logoutResult = stub.logout(sessionId);
- if(logoutResult.getResult()>0){
- System.out.println("已注销!");
- }
总结
通过接口可以获取到对应的CRM相关信息
原文:https://blog.csdn.net/jerry_kingson/article/details/121635080