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

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

相关文章

springboot项目中整合高德地图的实践

《springboot项目中整合高德地图的实践》:本文主要介绍springboot项目中整合高德地图的实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一:高德开放平台的使用二:创建数据库(我是用的是mysql)三:Springboot所需的依赖(根据你的需求再

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

Java使用HttpClient实现图片下载与本地保存功能

《Java使用HttpClient实现图片下载与本地保存功能》在当今数字化时代,网络资源的获取与处理已成为软件开发中的常见需求,其中,图片作为网络上最常见的资源之一,其下载与保存功能在许多应用场景中都... 目录引言一、Apache HttpClient简介二、技术栈与环境准备三、实现图片下载与保存功能1.

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

java对接海康摄像头的完整步骤记录

《java对接海康摄像头的完整步骤记录》在Java中调用海康威视摄像头通常需要使用海康威视提供的SDK,下面这篇文章主要给大家介绍了关于java对接海康摄像头的完整步骤,文中通过代码介绍的非常详细,需... 目录一、开发环境准备二、实现Java调用设备接口(一)加载动态链接库(二)结构体、接口重定义1.类型

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地

IDEA如何实现远程断点调试jar包

《IDEA如何实现远程断点调试jar包》:本文主要介绍IDEA如何实现远程断点调试jar包的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录问题步骤总结问题以jar包的形式运行Spring Boot项目时报错,但是在IDEA开发环境javascript下编译

python获取cmd环境变量值的实现代码

《python获取cmd环境变量值的实现代码》:本文主要介绍在Python中获取命令行(cmd)环境变量的值,可以使用标准库中的os模块,需要的朋友可以参考下... 前言全局说明在执行py过程中,总要使用到系统环境变量一、说明1.1 环境:Windows 11 家庭版 24H2 26100.4061