销售易和云之家对接项目之二: 销售易本地调试环境搭建

2024-03-12 21:50

本文主要是介绍销售易和云之家对接项目之二: 销售易本地调试环境搭建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

项目背景

销售易和云之家对接的问题,背景是这样的:
两个系统都有审批流, 领导对于在两个系统之间来回切换感觉不方便,所以打算将crm中的待办转到OA中.

crm产生待办后给OA发送一条通知消息,点击消息后跳转到CRM的页面(需要单点登陆),然后在CRM的页面中处理审批流, 审批流处理完成后再给OA发送一条消息,标记之前发送的那条通知消息为已完成.
这里解决的难点有这么几个:

1 单点登陆的问题(crm和oa两边不适配)
2 crm二开本地调试环境搭建
3 crm中流程处理完之后要回调oa接口,将之前发送的消息修改状态, 消息id的定义规则也称了一个难点.

销售易本地调试环境搭建

销售易算是国内头部CRM提供商之一. 程序架构用的是spring boot,支持二次开发,支持自定义对象,
在扩展性方面做的还是不错的.

二开有两种方式:
1 写完代码后直接上传到服务器,在云环境下测试 可以在后台查看log日志, 不支持在线修改代码, 每次修改都要重新上传,适合做代码后期的维护,小修小改的那种.
2 本地调试,需要部署一个spring boot 的项目, 本文就是解决这个问题的.

一、创建一个springboot的项目

1、SpringBoot的定义

​ Spring 的诞⽣是为了简化 Java 程序的开发的,⽽ Spring Boot 的诞⽣是为了简化 Spring 程序开发的。
​ Spring Boot 翻译⼀下就是 Spring 脚⼿架,就是为了快速开发 Spring 框架⽽诞⽣的
​ Spring Boot 项⽬的⼀大特点:约定⼤于配置。较于Spring需要配置Bean的扫描路径,而SpringBoot就不需要

2、Spring Boot 优点

快速集成框架,Spring Boot 提供了启动添加依赖的功能,⽤于秒级集成各种框架。
内置运⾏容器,⽆需配置 Tomcat 等 Web 容器,直接运⾏和部署程序。
快速部署项⽬,⽆需外部容器即可启动并运⾏项⽬。
可以完全抛弃繁琐的 XML,使⽤注解和配置的⽅式进⾏开发。
⽀持更多的监控的指标,可以更好的了解项⽬的运⾏情况。
SpringBoot的核心:
1、快速添加依赖
2、内置web容器
3、自动装配(即SpringBoot自动构建复杂对象,构建好的对象可以直接使用)

主要的几个代码介绍

1、@SpringBootApplication:Spring Boot项目的核心注解,主要目的是开启自动配置。;

2、@Configuration:这是一个配置Spring的配置类;

3、@Controller:标明这是一个Spring MVC的Controller控制器;

4、main方法:在main方法中启动一个应用,即:这个应用的入口;

3、安装SpringBoot插件

​ 因为我们⽤的 Idea 社区版2021.3,选择安装SpringBoot插件才能创建 Spring Boot 项目。
SpringBoot插件名字为

在这里插入图片描述

4、安装SpringBoot插件

接下来开始正式创建SpringBoot项目:

1、先选择file->new->project

2、选择Spring Initializr,选择国外的默认配置源, 唯一注意的是Type保留默认的Maven,其他的随便填一下

在这里插入图片描述

3、添加项目的依赖
在这里插入图片描述

一般是Web项目,所以我们勾选最基本的 Web选项,选择SpringBoot Devtools用于实现热部署,其他可以等用到的时候再添加。
Spring Boot Devtools:实现热部署

Lombok:Java注解

Spring Web: 外部服务

SpringBoot版本选择后缀不带英文字母的稳定版本,其中低版本的比较稳定

点击finash,等待项目的创建

项目创建完成后,目录结构是这样的:

在这里插入图片描述

现在看到有一个右上角带三角符号的启动类 Demo1Application,说明项目已经创建好了,运行这个启动类看看效果

tomcat也运行起来了,用浏览器访问本地8080端口

在这里插入图片描述

二 、配置销售易二开环境

1 添加销售易jdk

在项目根目录下添加lib目录,并将销售易的jdk文件 ingageSDK.jar和 模型model.jar复制过来

在这里插入图片描述

在moven的配置文件 pom.xml里面增加依赖

        <dependency><groupId>xsy</groupId><artifactId>sdk</artifactId><version>1.0.0</version><scope>system</scope><systemPath>${project.basedir}/lib/ingageSDK.jar</systemPath></dependency><dependency><groupId>xsy</groupId><artifactId>model</artifactId><version>1.0.0</version><scope>system</scope><systemPath>${project.basedir}/lib/model.jar</systemPath></dependency>

2 配置连接器

登陆销售易后台,在平台工具->开发-> 连接器里面配置一个连接器

在这里插入图片描述

查看连接器信息:

在这里插入图片描述

3 配置oauthConfig.properties

在idea中增加oauth2的配置文件: src/main/resources/oauthConfig.properties

在这里插入图片描述

文件内容:

# 用户名
userName=1111111111
#密码
password=2222222222
#账号的安全令牌, 到设置->个人设置->安全令牌-> 获取安全令牌里去查看, 注意不要更新,更新的话其他用到安全令牌的地方就废了
securityCode=aaaaaaa# 上一步连接器配置的id和secret
clientId=xxxxxxxxxxxxxxxxxxx
clientSecret=yyyyyyyyyyyyyyyyyyyyyyyy
# 销售易沙盒环境地址
domain=https://api-sandbox.xiaoshouyi.com      

4 一个流程业务逻辑的例子

在这里插入图片描述

在src/main/java目录下 增加目录结构other/oa/message ,销售易要求包名必须以以other开头.

在other同级目录下,增加配置文件scriptTrigger.xml, 这个名字也是固定的

现在就可以写java代码了. 这是一个审批流中的触发器的案例:

新建一个类,实现ApprovalEvent 接口,重新execute 方法,这个方法只有一个参数

ApprovalEventRequest , 这个request对象,包含当前上下文的信息,主要是三个属性

    String apiKey= request.getEntityApiKey();     对象的api名称,比如客户就是accountLong dataId= request.getDataId();             对象实例的idLong logId= request.getUsertaskLogId();       当前审批流节点id
public class SendMessageApproval implements ApprovalEvent {Logger log = LoggerFactory.getLogger();@Overridepublic ApprovalEventResponse execute(ApprovalEventRequest request) throws ScriptBusinessException {ApprovalEventResponse response = new ApprovalEventResponse();String apiKey= request.getEntityApiKey();Long dataId= request.getDataId();Long logId= request.getUsertaskLogId();//调试用apiKey="account";dataId=2815746268447776L;logId=2815760430318550L;log.info(apiKey);log.info(dataId.toString());log.info(logId.toString());response.setSuccess(true);response.setMsg("success");return response;}

对应的配置文件scriptTrigger.xml

<?xml version="1.0" encoding="UTF-8"?>
<configs><config><approvalevent><object>account</object><operate>agree</operate><position>after</position><class>other.oa.message.SendMessageApproval</class></approvalevent><approvalevent><object>account</object><operate>agree</operate><position>validate</position><class>other.oa.message.SendMessageApproval</class></approvalevent></config>
</configs>

将other目录和scriptTrigger.xml 打包成一个zip文件上传到服务器上去,就可以在审批流中进行配置了.

注意: 测试的话, position配置成 validate , 也就是审批前校验,并且要设置成校验失败,这样做的目的有两个:

  • 从日志中获取当前节点上下文信息
  • 不改变审批流状态

查看后台日志,手工给上下文环境赋值,就可以开启本地测试了

    apiKey="account";dataId=2815746268447776L;logId=2815760430318550L;

测试之前,要写一个main函数

     public static void main(String[] args) {SendMessageApproval approval = new SendMessageApproval();ApprovalEventRequest approvalEventRequest = new ApprovalEventRequest();try {approval.execute(approvalEventRequest);} catch (ScriptBusinessException e) {e.printStackTrace();}

三 、参考文档

配置spring boot 参考了这篇文章 https://blog.csdn.net/qq_73471456/article/details/130477381

销售易帮助文档:

登陆销售易,点击左下角的帮助->帮助文档

销售易新版审批流参考文档: 文档中心-pass平台->pass平台开发手册

选新版审批流相关脚本开发

在这里插入图片描述

销售易API参考文档:

在这里插入图片描述

这篇关于销售易和云之家对接项目之二: 销售易本地调试环境搭建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/802688

相关文章

JavaScript中的高级调试方法全攻略指南

《JavaScript中的高级调试方法全攻略指南》什么是高级JavaScript调试技巧,它比console.log有何优势,如何使用断点调试定位问题,通过本文,我们将深入解答这些问题,带您从理论到实... 目录观点与案例结合观点1观点2观点3观点4观点5高级调试技巧详解实战案例断点调试:定位变量错误性能分

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4:

使用Spring Cache本地缓存示例代码

《使用SpringCache本地缓存示例代码》缓存是提高应用程序性能的重要手段,通过将频繁访问的数据存储在内存中,可以减少数据库访问次数,从而加速数据读取,:本文主要介绍使用SpringCac... 目录一、Spring Cache简介核心特点:二、基础配置1. 添加依赖2. 启用缓存3. 缓存配置方案方案

SpringBoot通过main方法启动web项目实践

《SpringBoot通过main方法启动web项目实践》SpringBoot通过SpringApplication.run()启动Web项目,自动推断应用类型,加载初始化器与监听器,配置Spring... 目录1. 启动入口:SpringApplication.run()2. SpringApplicat

使用Java读取本地文件并转换为MultipartFile对象的方法

《使用Java读取本地文件并转换为MultipartFile对象的方法》在许多JavaWeb应用中,我们经常会遇到将本地文件上传至服务器或其他系统的需求,在这种场景下,MultipartFile对象非... 目录1. 基本需求2. 自定义 MultipartFile 类3. 实现代码4. 代码解析5. 自定

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.