1.绘制连接器,注意出餐入参的格式,
2.绘制流程,绑定连接器,是提交后出发还是表单值变化后
3.编写本地接口(内网穿透),绑定连接器
钉钉开发连接器,自定义连接器配合流程使用,流程加入连接器,连接器发送参数,然后你本地处理修改值,返回给流程
- 1创建连接器
- 2连接器整合流程
1创建连接器
注意接口要添加跳过鉴权的注解
首先创建连接器
其他的不重要直接创建动作
基本信息随便填写
注意入参和出参
这边和你上面的保持一致,我填写的是test
有人有疑问接口地址是什么?就是你对入参的处理逻辑
那地址如何配置,首先你要保证钉钉能访问到(这里就涉及到一个内网穿透)
就是 这玩意,然后配置一下服务器地址就好了,免费的一半只有一个小时的有效期
我这里配置的就是本地8080端口的映射,在上面隧道管理,创建隧道,创建完下面就刷新出来了。
然后自己springboot写一个接口
入参就是一个对象,带上面的属性
害怕有人想要这个就放一下
package com.qygx.common.core.domain;
import java.util.HashMap;
import com.qygx.common.constant.HttpStatus;
import com.qygx.common.utils.StringUtils;
/**
* 操作消息提醒
*
* @author ruoyi
*/
public class AjaxResult extends HashMap<String, Object>
{
private static final long serialVersionUID = 1L;
/** 状态码 */
public static final String CODE_TAG = "code";
/** 返回内容 */
public static final String MSG_TAG = "msg";
/** 数据对象 */
public static final String DATA_TAG = "data";
/**
* 初始化一个新创建的 AjaxResult 对象,使其表示一个空消息。
*/
public AjaxResult()
{
}
/**
* 初始化一个新创建的 AjaxResult 对象
*
* @param code 状态码
* @param msg 返回内容
*/
public AjaxResult(int code, String msg)
{
super.put(CODE_TAG, code);
super.put(MSG_TAG, msg);
}
/**
* 初始化一个新创建的 AjaxResult 对象
*
* @param code 状态码
* @param msg 返回内容
* @param data 数据对象
*/
public AjaxResult(int code, String msg, Object data)
{
super.put(CODE_TAG, code);
super.put(MSG_TAG, msg);
if (StringUtils.isNotNull(data))
{
super.put(DATA_TAG, data);
}
}
/**
* 返回成功消息
*
* @return 成功消息
*/
public static AjaxResult success()
{
return AjaxResult.success("操作成功");
}
/**
* 返回成功数据
*
* @return 成功消息
*/
public static AjaxResult success(Object data)
{
return AjaxResult.success("操作成功", data);
}
/**
* 返回成功消息
*
* @param msg 返回内容
* @return 成功消息
*/
public static AjaxResult success(String msg)
{
return AjaxResult.success(msg, null);
}
/**
* 返回成功消息
*
* @param msg 返回内容
* @param data 数据对象
* @return 成功消息
*/
public static AjaxResult success(String msg, Object data)
{
return new AjaxResult(HttpStatus.SUCCESS, msg, data);
}
/**
* 返回错误消息
*
* @return
*/
public static AjaxResult error()
{
return AjaxResult.error("操作失败");
}
/**
* 返回错误消息
*
* @param msg 返回内容
* @return 警告消息
*/
public static AjaxResult error(String msg)
{
return AjaxResult.error(msg, null);
}
/**
* 返回错误消息
*
* @param msg 返回内容
* @param data 数据对象
* @return 警告消息
*/
public static AjaxResult error(String msg, Object data)
{
return new AjaxResult(HttpStatus.ERROR, msg, data);
}
/**
* 返回错误消息
*
* @param code 状态码
* @param msg 返回内容
* @return 警告消息
*/
public static AjaxResult error(int code, String msg)
{
return new AjaxResult(code, msg, null);
}
/**
* 方便链式调用
*
* @param key 键
* @param value 值
* @return 数据对象
*/
@Override
public AjaxResult put(String key, Object value)
{
super.put(key, value);
return this;
}
}
这样是不是就逻辑打通了,连接器发送参数,然后你本地处理修改值,返回给流程。
看看出参
其实我是规定我了我的返回值,所以有msg,code,你要是直接返回的话,就别带着两个了。
下一步就是调试
断点进来了
这个连接器不就好了吗
2连接器整合流程
我这里就是创建了一个测试流程,你点击连接器就好了,然后选择自己的出发时机。
我选择的是表单修改值的时候
第二步正常选就行
第三步
注意的是填充的数据不能和触发的框一致
(如果填充的表单和触发的表单一样,那不是一填充又触发,那不是死循环了)
下面看一下流程图
其他的就没什么了
反正我只能说钉钉真坑,这种东西尽然单独拎出来搞个连接器,害