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

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

相关文章

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

MySQL双主搭建+keepalived高可用的实现

《MySQL双主搭建+keepalived高可用的实现》本文主要介绍了MySQL双主搭建+keepalived高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、测试环境准备二、主从搭建1.创建复制用户2.创建复制关系3.开启复制,确认复制是否成功4.同

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

在java中如何将inputStream对象转换为File对象(不生成本地文件)

《在java中如何将inputStream对象转换为File对象(不生成本地文件)》:本文主要介绍在java中如何将inputStream对象转换为File对象(不生成本地文件),具有很好的参考价... 目录需求说明问题解决总结需求说明在后端中通过POI生成Excel文件流,将输出流(outputStre

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

SpringBoot配置Ollama实现本地部署DeepSeek

《SpringBoot配置Ollama实现本地部署DeepSeek》本文主要介绍了在本地环境中使用Ollama配置DeepSeek模型,并在IntelliJIDEA中创建一个Sprin... 目录前言详细步骤一、本地配置DeepSeek二、SpringBoot项目调用本地DeepSeek前言随着人工智能技

springboot集成Deepseek4j的项目实践

《springboot集成Deepseek4j的项目实践》本文主要介绍了springboot集成Deepseek4j的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录Deepseek4j快速开始Maven 依js赖基础配置基础使用示例1. 流式返回示例2. 进阶

SpringBoot项目启动报错"找不到或无法加载主类"的解决方法

《SpringBoot项目启动报错找不到或无法加载主类的解决方法》在使用IntelliJIDEA开发基于SpringBoot框架的Java程序时,可能会出现找不到或无法加载主类com.example.... 目录一、问题描述二、排查过程三、解决方案一、问题描述在使用 IntelliJ IDEA 开发基于

SpringBoot项目使用MDC给日志增加唯一标识的实现步骤

《SpringBoot项目使用MDC给日志增加唯一标识的实现步骤》本文介绍了如何在SpringBoot项目中使用MDC(MappedDiagnosticContext)为日志增加唯一标识,以便于日... 目录【Java】SpringBoot项目使用MDC给日志增加唯一标识,方便日志追踪1.日志效果2.实现步

Centos环境下Tomcat虚拟主机配置详细教程

《Centos环境下Tomcat虚拟主机配置详细教程》这篇文章主要讲的是在CentOS系统上,如何一步步配置Tomcat的虚拟主机,内容很简单,从目录准备到配置文件修改,再到重启和测试,手把手带你搞定... 目录1. 准备虚拟主机的目录和内容创建目录添加测试文件2. 修改 Tomcat 的 server.X