自动化插件介绍
自动化插件是多维表格自动化能力的扩展,开发者能够凭借插件机制和 API,打造出适用于不同场景的自动化插件,满足各类用户的多样化需求。而用户在安装这些插件后,可以在自动化流程中轻松实现自定义指令。
接下来我们用“发送WPS协作消息”插件来举例,详细介绍开发流程

发送给个人

发送给群组

开发流程介绍
交付产物
最终交付产物为zip包,包括以下三个部分:
template.json // 页面配置文件
index.js // 执行脚本文件
meta.json // 插件描述文件
template.json (模板配置文件)
通过template.json可以生成参数配置界面,在自动化插件运行时,将这些参数传入到执行引擎中,实现最终效果

发送WPS协作消息配置介绍
{
"id": 1,
"type": 1,
"name": "发送WPS协作消息",
"desc": "向指定用户/群组发送消息",
"config": {},
"params": []
}| 名称 | 类型 | 是否必填 | 备注 |
| id | number | Y | 默认为1 |
| type | number | Y | 默认为1 |
| name | string | Y | 在自动化流程中显示的指令名字 |
| desc | string | Y | 在自动化流程中显示的指令描述 |
| config | object | Y | 默认{} |
| params | object[] | Y | 用户填写的参数集合,最终会传入到执行脚本文件 |

params
数组格式,里面每个配置项对应一个控件,发送WPS协作消息根据配置项的不同,输入项范围在6 ~ 9个:
发送给
接收人 / 群组
提醒群内成员
成员名单
消息卡片标题
消息内容
消息内容显示来源信息
选择消息卡片类型按钮
消息卡片按钮配置(跳转链接 / 交互按钮)
发送给
{
"name": "receiver_type",
"ui": {
"type": 2,
"config": {
"label": "发送给",
"placeholder": "",
"rule": {
"required": true,
"err_msg": "该参数为必填项"
},
"option": {
"dynamic": false,
"select_var": false,
"show_on_mounted": true,
"opt_list": [
{
"label": "个人",
"value": "person"
},
{
"label": "群组",
"value": "group"
}
]
}
}
},
"val": {
"default": "person",
"default_type": "string",
"default_kind": "original",
"associate_flow": true,
"can_run_parameter": true,
"rule": {
"required": true
},
"allow_types": []
},
"plugins": [],
"linkage": {
"component_show_correlation_config": [
{
"name": "person_id_list",
"patterns": ["person"]
},
{
"name": "group_id_list",
"patterns": ["group"]
},
{
"name": "at_type",
"patterns": ["group"]
}
]
}
}接收人

{
"name": "person_id_list",
"ui": {
"type": 48,
"config": {
"label": "接收人",
"placeholder": "请选择成员",
"rule": {
"required": true,
"err_msg": "该参数为必填项"
},
"option": {
"system_list": [
{
"label": "触发人",
"value": "var_trigger_user",
"type": "trigger_user",
"originalInfo": {
"type": "Contact"
}
}
]
}
}
},
"val": {
"default": {
"__exp_kind__": "flat_array",
"__exp_value__": []
},
"default_type": "string_array",
"default_kind": "insert_values",
"associate_flow": true,
"can_run_parameter": true,
"rule": {
"required": true
},
"allow_types": [
{
"value": "dataframe"
},
{
"value": "datetime"
},
{
"value": "db_record"
}
]
},
"plugins": [
{
"name": "select_var",
"sort": 0,
"type": 2,
"config": {
"default_kind": "variable",
"component_type": "cascader",
"allow_types": [
{
"value": "dataframe"
},
{
"value": "datetime"
},
{
"value": "db_record"
}
],
"method_options": {
"need_method": false,
"default_method": "{\"each\":\"true\",\"format\":\"plain\"}"
}
}
}
],
"linkage": {}
}群组

{
"name": "group_id_list",
"ui": {
"type": 31,
"config": {
"label": "群组",
"placeholder": "至少选择一个群组",
"rule": {
"required": true,
"err_msg": "该参数为必填项"
}
},
"option": {}
},
"val": {
"default": [],
"default_type": "string_array",
"default_kind": "original",
"associate_flow": true,
"can_run_parameter": true,
"rule": {
"required": true
},
"allow_types": [
{
"value": "group_array"
}
]
},
"plugins": [],
"linkage": {}
}提醒群内成员

{
"name": "at_type",
"ui": {
"type": 2,
"config": {
"label": "提醒群内成员",
"placeholder": "",
"rule": {
"required": true,
"err_msg": "该参数为必填项"
},
"option": {
"dynamic": false,
"select_var": false,
"show_on_mounted": true,
"opt_list": [
{
"label": "不提醒",
"value": "at_none"
},
{
"label": "提醒所有人",
"value": "at_all"
},
{
"label": "提醒指定人",
"value": "at_person"
}
]
}
}
},
"val": {
"default": "at_none",
"default_type": "string",
"default_kind": "original",
"associate_flow": true,
"can_run_parameter": true,
"rule": {
"required": true
},
"allow_types": []
},
"plugins": [],
"linkage": {
"component_show_correlation_config": [
{
"name": "at_person_list",
"patterns": ["at_person"]
}
]
}
}成员名单

{
"name": "at_person_list",
"ui": {
"type": 45,
"config": {
"label": "成员名单",
"placeholder": "请选择成员",
"rule": {
"required": false,
"err_msg": ""
},
"option": {
"dynamic": true,
"select_var": false,
"opt_list": [],
"pull_rule": {
"params": [
{
"key": "woa_group_id_list",
"source": "params",
"value": "group_id_list"
},
{
"key": "file_id",
"source": "global",
"value": "file_id"
}
],
"action": 17
}
}
}
},
"val": {
"default": {
"__exp_kind__": "flat_array",
"__exp_value__": []
},
"default_type": "string_array",
"default_kind": "insert_values",
"associate_flow": true,
"can_run_parameter": true,
"rule": {
"required": true
},
"allow_types": [
{
"value": "dataframe"
},
{
"value": "datetime"
},
{
"value": "db_record"
}
]
},
"plugins": [
{
"name": "select_var",
"sort": 0,
"type": 2,
"config": {
"default_kind": "variable",
"component_type": "cascader",
"allow_types": [
{
"value": "dataframe"
},
{
"value": "datetime"
},
{
"value": "db_record"
}
],
"method_options": {
"need_method": false,
"default_method": "{\"each\":\"true\",\"format\":\"plain\"}"
}
}
}
],
"linkage": {}
}消息卡片标题

{
"name": "message_title",
"ui": {
"type": 1,
"config": {
"label": "消息卡片标题",
"placeholder": "",
"component_properties": {
"hiddenHoverTip": true,
"canUseLookUp": true,
"canUseFormula": true
},
"rule": {
"required": true,
"err_msg": "该参数为必填项"
},
"option": {
"system_list": [
{
"label": "当前时间",
"value": "var_time_current",
"type": "datetime"
},
{
"label": "触发人",
"value": "var_trigger_user",
"type": "trigger_user"
},
{
"label": "修改的工作表",
"value": "var_sheet_name",
"type": "modify_sheet_name"
}
]
}
}
},
"val": {
"default": "",
"default_type": "string",
"default_kind": "template_string",
"associate_flow": true,
"can_run_parameter": true,
"rule": {
"required": true
},
"allow_types": [
{
"value": "et_file"
},
{
"value": "et_sheet"
},
{
"value": "dataframe"
},
{
"value": "db_record"
},
{
"value": "json_object"
},
{
"value": "datetime"
}
]
},
"plugins": [
{
"name": "select_var",
"sort": 0,
"type": 2,
"config": {
"default_kind": "variable",
"component_type": "cascader",
"allow_types": [
{
"value": "et_file"
},
{
"value": "et_sheet"
},
{
"value": "dataframe"
},
{
"value": "db_record"
},
{
"value": "json_object"
},
{
"value": "datetime"
}
],
"method_options": {
"need_method": false,
"default_method": "{\"each\":\"true\",\"format\":\"plain\"}",
"extra_config": {
"db_fields_variable_filters": {
"excludes_types": ["Attachment"]
}
}
}
}
}
],
"linkage": {}
}消息内容

{
"name": "message_content",
"ui": {
"type": 20,
"config": {
"label": "消息内容",
"placeholder": "请输入要发送的消息内容",
"rule": {
"required": true,
"err_msg": "请输入要发送的消息内容"
},
"option": {
"system_list": [
{
"label": "仪表盘",
"value": "var_dashboard",
"type": "dashboard"
},
{
"label": "当前时间",
"value": "var_time_current",
"type": "datetime"
},
{
"label": "触发人",
"value": "var_trigger_user",
"type": "trigger_user"
},
{
"label": "修改的工作表",
"value": "var_sheet_name",
"type": "modify_sheet_name"
}
]
},
"desc": {
"info": "支持设置消息字体样式、发送图片",
"link": "https://kdocs.cn/l/cox2efWGTUQG",
"link_info": "查看详情"
}
}
},
"val": {
"default": "",
"default_type": "string",
"default_kind": "template_string",
"associate_flow": true,
"can_run_parameter": true,
"rule": {
"required": true
},
"allow_types": [
{
"value": "dashboard"
},
{
"value": "et_file"
},
{
"value": "et_range"
},
{
"value": "et_sheet"
},
{
"value": "dataframe",
"multiple": true
},
{
"value": "datetime"
},
{
"value": "json_object"
},
{
"value": "db_record",
"multiple": true
}
]
},
"plugins": [
{
"name": "select_var",
"sort": 0,
"type": 2,
"config": {
"default_kind": "variable",
"component_type": "cascader",
"method_options": {
"need_method": true,
"default_method": "{\"each\":\"true\",\"format\":\"plain\"}",
"default_preview": "all",
"default_preview_text": "若有多行数据内容,将汇总为一条消息进行发送",
"method_list": [
{
"label": "按行分别发送",
"value": "{\"each\":\"true\",\"format\":\"plain\"}",
"kd_code": "<AlignCenterMiddle/>",
"preview": "each",
"preview_text": "若有多行数据内容,每行数据将分别发送"
},
{
"label": "作为整体发送",
"value": "{\"each\":\"false\",\"format\":\"plain\"}",
"kd_code": "<Matrix/>",
"preview": "all",
"preview_text": "若有多行数据内容,将汇总为一条消息进行发送"
}
],
"extra_config": {
"db_fields_variable_desc": [
{
"type": "Attachment",
"key": "img_cols"
},
{
"type": "Contact",
"key": "at_contact"
},
{
"type": "CreatedBy",
"key": "at_contact"
}
]
}
},
"allow_types": [
{
"value": "dashboard"
},
{
"value": "et_file"
},
{
"value": "et_range"
},
{
"value": "et_sheet"
},
{
"value": "dataframe"
},
{
"value": "datetime"
},
{
"value": "json_object"
},
{
"value": "db_record"
}
]
}
},
{
"name": "select_intelligence_header",
"sort": 1,
"type": 2,
"config": {
"default_kind": "original",
"association_parameter_type": "et_range",
"selectSingleRange": true,
"intelligence_header_type": 1,
"button": {
"icon": "sheet",
"text": "插入数据区域",
"block": true
},
"method_options": {
"need_method": true,
"default_method": "{\"each\":\"false\",\"format\":\"plain\"}",
"default_preview": "all",
"method_list": [
{
"label": "按行分别发送",
"value": "{\"each\":\"true\",\"format\":\"plain\"}",
"kd_code": "<AlignCenterMiddle/>",
"preview": "each"
},
{
"label": "作为整体发送",
"value": "{\"each\":\"false\",\"format\":\"plain\"}",
"kd_code": "<Matrix/>",
"preview": "all"
}
]
},
"pull_rule": {
"params": [
{
"key": "file_id",
"source": "global",
"value": "file_id"
},
{
"key": "sheet_id",
"source": "global",
"value": "sheet_id"
},
{
"key": "sheet_name",
"source": "global",
"value": "sheet_name"
},
{
"key": "range",
"source": "outer",
"value": "range"
}
],
"action": 8
}
}
},
{
"name": "select_intelligence_header_range_to_img",
"sort": 1,
"type": 2,
"config": {
"association_parameter_type": "et_range",
"selectSingleRange": true,
"intelligence_header_type": 1,
"button": {
"icon": "pic",
"text": "插入数据区域转图片",
"block": true
},
"component_properties": {
"sheet": {
"modal_title": "框选数据区域转为图片",
"modal_desc": "每次运行,将按照最新数据转为图片进行发送"
}
},
"method_options": {
"need_method": true,
"default_method": "{\"each\":\"false\",\"format\":\"markdown_image_url\"}",
"default_preview": "all",
"extra_config": {
"support_file_types": [
{
"file_type": "k",
"support_sheet_types": ["xlWorksheet"]
},
{
"file_type": "s"
}
]
}
},
"pull_rule": {
"params": [
{
"key": "file_id",
"source": "global",
"value": "file_id"
},
{
"key": "sheet_id",
"source": "global",
"value": "sheet_id"
},
{
"key": "sheet_name",
"source": "global",
"value": "sheet_name"
},
{
"key": "range",
"source": "outer",
"value": "range"
}
],
"action": 8
}
}
}
],
"linkage": {}
}消息内容显示来源信息
{
"name": "with_source",
"ui": {
"type": 22,
"config": {
"label": "",
"placeholder": "",
"rule": {
"required": true
},
"isHideLabel": true,
"option": {
"opt_list": [
{
"label": "消息内容显示来源信息",
"value": 1,
"empty_value": 0
}
]
},
"desc": {
"type": "textAndImage",
"info": "",
"link": "",
"link_info": "",
"img_text": "消息来源信息示例:",
"img_url": "https://innowoa.ks3-cn-beijing.ksyuncs.com/chatflow/xiezuo20250117-145416.png"
}
}
},
"val": {
"default": 1,
"default_type": "number",
"default_kind": "original",
"associate_flow": true,
"can_run_parameter": false,
"rule": {
"required": true
},
"allow_types": []
},
"plugins": [],
"linkage": {}
}选择消息卡片类型按钮

{
"name": "button_type",
"ui": {
"type": 2,
"config": {
"label": "选择消息卡片类型按钮",
"placeholder": "",
"rule": {
"required": false,
},
"option": {
"dynamic": false,
"select_var": false,
"show_on_mounted": true,
"opt_list": [
{
"label": "不添加消息按钮",
"value": "no"
},
{
"label": "添加跳转链接类型的按钮",
"value": "url"
},
{
"label": "添加交互类型的按钮",
"value": "interactive",
"isDb": true
}
]
}
}
},
"val": {
"default": "no",
"default_type": "string",
"default_kind": "original",
"associate_flow": true,
"can_run_parameter": true,
"rule": {
"required": false
},
"allow_types": []
},
"plugins": [],
"linkage": {
"component_show_correlation_config": [
{
"id": 1,
"patterns": ["interactive"]
},
{
"id": 2,
"patterns": ["url"]
}
]
}
}消息卡片按钮配置(跳转链接)

{
"id": 2,
"name": "message_buttons",
"ui": {
"type": 43,
"config": {
"label": "消息卡片按钮配置",
"placeholder": "",
"component_properties": {
"hiddenHoverTip": true
},
"isHideLabel": true,
"isHidden": true,
"hidden_error": true,
"rule": {
"required": false
},
"option": {
"dynamic": false,
"select_var": true,
"show_on_mounted": true,
"opt_list": [],
"system_list": [
{
"label": "当前时间",
"value": "var_time_current",
"type": "datetime"
}
]
}
}
},
"val": {
"default": "",
"default_type": "string",
"default_kind": "original",
"data_type": 6,
"associate_flow": true,
"can_run_parameter": true,
"rule": {
"required": false
},
"allow_types": [
{
"value": "dataframe"
},
{
"value": "datetime"
},
{
"value": "trigger_user"
},
{
"value": "trigger_button_user"
},
{
"value": "db_record"
},
{
"value": "json_object"
}
]
},
"plugins": [
{
"name": "select_var",
"sort": 0,
"type": 2,
"config": {
"component_type": "cascader",
"method_options": {
"need_method": false,
"default_method": "{\"each\":\"true\"}"
},
"allow_types": [
{
"value": "dataframe"
},
{
"value": "datetime"
},
{
"value": "trigger_user"
},
{
"value": "trigger_button_user"
},
{
"value": "db_record"
},
{
"value": "json_object"
}
]
}
}
],
"linkage": {
"val_clear_names": ["button_type"]
}
}消息卡片按钮配置(交互按钮)

{
"id": 1,
"name": "message_buttons",
"ui": {
"type": 42,
"config": {
"label": "消息卡片按钮配置",
"placeholder": "",
"isHideLabel": true,
"isHidden": true,
"hidden_error": true,
"rule": {
"required": false,
},
"option": {
"dynamic": false,
"select_var": false,
"show_on_mounted": true,
"opt_list": [],
"system_list": [
{
"label": "当前时间",
"value": "var_time_current",
"type": "datetime"
},
{
"label": "点击此消息按钮的联系人",
"value": "var_trigger_button_user",
"type": "trigger_button_user"
}
]
}
}
},
"val": {
"default": "",
"default_type": "string",
"default_kind": "original",
"data_type": 6,
"associate_flow": true,
"can_run_parameter": true,
"rule": {
"required": false
},
"allow_types": []
},
"plugins": [
{
"name": "select_var",
"sort": 0,
"type": 2,
"config": {
"component_type": "cascader",
"method_options": {
"need_method": false,
"default_method": "{\"each\":\"true\"}"
},
"allow_types": []
}
}
],
"linkage": {
"val_clear_names": ["button_type"]
}
}支持组件详解
下拉菜单
下拉菜单(单选)
下拉选项模板配置完成,内容固定不动

主要配置
"option": {
"dynamic": false, //非动态拉取
"opt_list": [
//下拉列表配置,label与value为必填字段
{
"label": "文本",
"value": "text"
},
{
"label": "Markdown",
"value": "markdown"
}
]
...
}示例
{
"name": "message_type",
"ui": {
"type": 2,
"config": {
"label": "消息类型",
"placeholder": "请选择要发送的消息类型",
"rule": {
"required": true,
"err_msg": "该参数为必填项"
},
"option": {
"dynamic": false, // 非动态拉取
"select_var": false, // 默认为false
"show_on_mounted": true, // 加载配置 默认为true
"opt_list": [
// 下拉列表配置,label与value为必填字段
{
"label": "文本",
"value": "text"
},
{
"label": "Markdown",
"value": "markdown"
}
]
}
},
"val": {
"default": "text", // 默认选中text
"defaultType": "string", // 值类型
"default_kind": "original",
"associate_flow": true,
"can_run_parameter": true,
"rule": {
"required": true
},
"allow_types": []
},
"plugins": [],
"linkage": {}
}下拉菜单(多选)

完整示例
{
"id": 1,
"type": 1,
"name": "导入数据",
"desc": "获取已授权账号下评论内容、评论点赞/回复等数据",
"config": {},
"auth": [
// 账号登录配置
{
"name": "account_id",
"ui": {
"type": 10,
"config": {
"label": "应用凭证",
"placeholder": "请选择应用凭证",
"rule": {
"required": true,
"err_msg": "该参数为必填项"
},
"option": {}
}
},
"val": {
"default": "",
"default_type": "number",
"default_kind": "original",
"associate_flow": true,
"can_run_parameter": true,
"rule": {
"required": true
},
"allow_types": []
},
"plugins": [],
"linkage": {}
}
],
"params": [
{
"name": "video_id",
"ui": {
"type": 2,
"config": {
"label": "选择视频",
"placeholder": "请选择,单选",
"rule": {
"required": true,
"err_msg": "该参数为必填项"
},
"option": {
"dynamic": true,
"select_var": false,
"opt_list": [],
"pull_rule": {
"params": [
{
"key": "account_id", // 对应字段名
"source": "params", // 来源,从配置入参中获取,在auth中的配置字段也为params
"value": "account_id" // 值,开始默认值可随意
},
{
"key": "douyin_video_list_max_title_length",
"source": "const", // 来源:常量
"value": 15
}
],
"action": 7
}
}
}
},
"val": {
"default": "",
"default_type": "string",
"default_kind": "original",
"associate_flow": true,
"can_run_parameter": true,
"rule": {
"required": true
},
"allow_types": []
},
"plugins": [],
"linkage": {
"options_correlation_names": ["account_id"],
"val_correlation_names": ["account_id"]
}
}
]
}- 全局参数获取
pull_rule除了能够从配置参数中获取,还能从全局中获得file_id以及sheet_id
"pull_rule": {
"params": [
{
"key": "file_id",
"source": "global",
"value": "file_id"
},
{
"key": "sheet_id",
"source": "global",
"value": "sheet_id"
},
{
"key": "sheet_name",
"source": "global",
"value": "sheet_name"
}
],
"action": 8
}- 设置默认值
val.default设置为默认选中的值
"val": {
"default": "value",
...
},多行文本
纯文本
{
"id": 2,
"name": "message_content",
"ui": {
"type": 21,
"config": {
"label": "消息内容",
"placeholder": "输入内容或插入数据",
"rule": {
"required": true,
"err_msg": "该参数为必填项"
},
"option": {},
}
},
"val": {
"default": "",
"default_type": "string",
"default_kind": "template_string",
"associate_flow": true,
"can_run_parameter": true,
"rule": {
"required": true
},
"allow_types": [
{
"value": "et_file"
},
{
"value": "et_range"
},
{
"value": "dataframe",
},
{
"value": "datetime"
},
{
"value": "db_record",
},
{
"value": "json_object"
}
]
},
"plugins": [],
"linkage": {}
}富文本
{
"name": "message_content",
"ui": {
"type": 20,
"config": {
"label": "消息内容",
"placeholder": "请输入要发送的消息内容",
"rule": {
"required": true,
"err_msg": "请输入要发送的消息内容"
},
"option": {
"system_list": [
// 可添加的自动化变量,配合select_var使用
{
"label": "当前时间",
"value": "var_time_current",
"type": "datetime"
},
{
"label": "触发人",
"value": "var_trigger_user",
"type": "trigger_user"
},
{
"label": "修改的工作表",
"value": "var_sheet_name",
"type": "modify_sheet_name"
}
]
},
"desc": {
"info": "支持设置消...",
"link": "https://www.baidu.com",
"link_info": "查看详情"
}
}
},
"val": {
"default": "",
"default_type": "string",
"default_kind": "template_string",
"associate_flow": true,
"can_run_parameter": true,
"rule": {
"required": true
},
"allow_types": [
// 当前组件可选的变量类型,这里不需要过滤,因此写上全部
{
"value": "et_file"
},
{
"value": "et_range"
},
{
"value": "et_sheet"
},
{
"value": "dataframe"
},
{
"value": "datetime"
},
{
"value": "json_object"
},
{
"value": "db_record"
}
]
},
"plugins": [
// 变量插件,选择变量使用
{
"name": "select_var",
"sort": 0,
"type": 2,
"config": {
"default_kind": "variable",
"component_type": "cascader",
"method_options": {
"need_method": false,
"default_method": "{\"each\":\"true\",\"format\":\"plain\"}"
},
"allow_types": [
{
"value": "dashboard"
},
{
"value": "et_file"
},
{
"value": "et_sheet"
},
{
"value": "dataframe"
},
{
"value": "datetime"
},
{
"value": "json_object"
},
{
"value": "db_record"
}
]
}
}
],
"linkage": {}
}扩展内容
- 添加系统变量

关键配置:ui.config.option,plugin
"option": {
"system_list": [
// 可选变量
{
"label": "当前时间",
"value": "var_time_current",
"type": "datetime"
},
{
"label": "触发人",
"value": "var_trigger_user",
"type": "trigger_user"
},
{
"label": "修改的工作表",
"value": "var_sheet_name",
"type": "modify_sheet_name"
},
{
"label": "点击此消息按钮的联系人",
"value": "var_trigger_button_user",
"type": "trigger_button_user"
}
]
}
...
"plugins": [
// 变量插件,选择变量使用
{
"name": "select_var",
"sort": 0,
"type": 2,
"config": {
"default_kind": "variable",
"component_type": "cascader",
"method_options": {
"need_method": false,
"default_method": "{\"each\":\"true\",\"format\":\"plain\"}"
},
"allow_types": [
{
"value": "dashboard"
},
{
"value": "et_file"
},
{
"value": "et_sheet"
},
{
"value": "dataframe"
},
{
"value": "datetime"
},
{
"value": "json_object"
},
{
"value": "db_record"
}
]
}
}
],时间选择器
图一: 
图二: 
图三: 
普通日期选择器(5)
上图一
{
"id": 3,
"ui": {
"type": 5,
"config": {
"label": "查询日期",
"placeholder": "请选择查询日期",
"rule": {
"required": true,
"err_msg": "查询日期不能为空"
},
"component_properties": {
"showTime": false
},
"option": {}
}
},
"val": {
"default": "",
"defaultType": "datetime",
"associate_flow": true,
"can_run_parameter": true,
"rule": {
"required": true
},
"allow_types": []
},
"plugins": [],
"linkage": {}
}日期时间选择器(51)




配置示例:
{
"name": "work_date",
"ui": {
"type": 51,
"config": {
"label": "选择时间",
"placeholder": "请选择时间",
"rule": {
"required": true,
"err_msg": "时间不能为空"
},
"component_properties": {
"showTime": true,
"showSecond": true
},
"option": {
"system_list": [
{
"label": "当前时间",
"value": "var_time_current",
"type": "datetime"
}
]
}
}
},
"val": {
"default": "",
"defaultType": 1,
"name": "work_date",
"associate_flow": true,
"can_run_parameter": true,
"rule": {
"required": true
},
"allow_types": [
{
"value": "datetime"
},
{
"value": "db_record"
}
]
},
"plugins": [
{
"name": "select_var",
"sort": 0,
"type": 2,
"config": {
"default_kind": "variable",
"component_type": "cascader",
"allow_types": [
{
"value": "dataframe"
},
{
"value": "datetime"
},
{
"value": "db_record"
},
{
"value": "json_object"
}
],
"method_options": {
"need_method": false,
"default_method": "{\"each\":\"true\",\"format\":\"plain\"}"
}
}
}
],
"linkage": {}
}日期区间选择器
{
"name": "date_range",
"ui": {
"type": 28,
"config": {
"label": "查询日期区间",
"rule": {
"required": true,
"err_msg": "该参数为必填项"
},
"option": {
"system_list": [
// 可选当前时间变量
{
"label": "当前时间",
"value": "var_time_current",
"type": "datetime"
}
]
},
"component_properties": {
"disabledDate": [
// 禁止选择截至时间以及当前之间之后的日期
{
"mode": "range",
"value": ["1", ""]
}
]
}
}
},
"val": {
"default": ["", ""],
"default_type": "datetime_array",
"default_kind": "original",
"associate_flow": true,
"can_run_parameter": true,
"rule": {
"required": true
},
"allow_types": [
// 仅允许时间类型
{
"value": "datetime"
}
]
},
"plugins": [
{
"name": "date_picker",
"name_cn": "选择时间",
"type": 1,
"sort": 0,
"config": {
"default_kind": "original",
"association_parameter_type": "datetime"
}
},
{
"name": "select_var",
"name_cn": "选择变量",
"type": 1,
"sort": 0,
"config": {
"default_kind": "variable",
"allow_types": [
{
"value": "datetime"
}
]
}
}
],
"linkage": {}
}template.json调试
官方提供了对应的插件模板,开发者可以基于插件模板进行插件功能的开发,并通过模板内置的打包命令生成插件产物,将产物上传到开放平台后,就可以通过开放平台上架和安装插件(点击下载)
插件的模板结构如下:
project
│
├── build/ # 构建和运行用的文件
├── dist/ # 构建后的输出目录
│ ├── index.js # 插件的执行脚本
│ ├── meta.json # 插件基础信息配置文件
│ └── template.json # 插件参数模板配置
│
├── output/ # 压缩后的发布包
│ └── dist.zip
│
├── node_modules/ # Node.js 依赖
├── src/ # 插件源码目录
│ ├── common/ # 公共逻辑文件
│ └── scripts/ # 插件脚本开发目录
│ ├── meta.json # 插件基础信息配置文件
│ └── template.json # 插件参数模板配置
│
├── static/ # 静态资源目录
├── .gitignore # Git 忽略配置
├── package.json # 项目依赖及脚本管理文件
├── rollup.config.js # 打包配置文件
└── README.md # 项目说明文件- 启动本地调试服务
打开项目目录终端,执行以下命令启动本地调试服务:
npm run debug:server- 打开目标多维表页面
打开需要调试的多维表页面,并在 URL 后增加查询参数:?autoTaskDebug=true
示例如下:
- 基础模式:
https://www.kdocs.cn/l/XXXXXXXXX?autoTaskDebug=true - 已含其他参数模式:
https://www.kdocs.cn/l/XXXXXXXXX?R=XXXXXXXX&autoTaskDebug=true
- 验证本地调试效果
页面加载后,打开自动化流程指令列表,即可看到本地开发的对应指令,表示本地调试模式已成功启用。
请确保本地调试服务(npm run debug:server)处于运行状态,否则无法加载本地指令。
index.js(执行脚本文件)
在template.json (模板配置文件)章节中,我们通过成功渲染了配置页面,方便用户填写配置项。下面我们用脚本来实现"发送企业微信群聊消息"的核心逻辑:
如果你用过airscript脚本,那么恭喜你,已经成功80%了!自动化插件脚本使用了和airscript脚本相同的执行环境,所以在开发过程中,你可以先使用脚本编辑器来作为你的调试工具,后续我们会为你提供更方便的调试环境。
自动化插件在执行时,会将用户填写的配置项以Object的形式传入到脚本执行上下文中,我们通过Context.argv.params轻松地获取到配置项
格式如下:params: Record<string, string | number>
完整示例
function main() {
let params = Context.argv.params // 获取用户填写的配置项
/**
* 请注意!!!
* 在脚本编辑器页面中调试时没有Context.argv.params注入
* 为了便于调试,需要增加以下调试代码
* 在打包交付产物时需要注释掉 8~12行
*/
if (params === undefined) {
params = {
webhook: "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=de08f298-9470-4e12-b4a5-9d6e16b671bc",
msg_type: "text",
msg_content: `测试发送企业微信消息-${new Date()}`,
}
}
/**
* 以下是示例核心代码:通过HTTP服务发送post请求
*/
const { webhook, msg_type, msg_content } = params
const response = HTTP.fetch(webhook, {
method: "POST",
headers: {
"Content-Type": "application/json",
"charset": "UTF-8",
},
body: JSON.stringify({
msgtype: msg_type,
[msg_type]: {
content: msg_content,
}
}),
});
const jsonData = response.json();
console.log("response data...", jsonData);
}
main();调试方法
- 在多维表中新建脚本文件,并复制完整示例到文件中


- 点击运行按钮(F5),开始调试


- 由于示例中使用了HTTP服务,根据提示,要添加相关授权


- 重新运行并通过console.log调试你的代码

meta.json (插件描述文件)
{
"app_id": "AK20250120DOTMZW",
"plugin_id": "plg_YVEJ6B4ABEAAA",
"name_cn": "自定义插件",
"name_en": "custom_plugin_get_dingtalk_data",
"instruction_desc": "副标题",
"tags": [
{
"id": "jingdong_v2",
"name": "京东自定义分组",
"weight": 1
}
],
"automate_type": "db_sheet"
}app_id:插件所属的应用 ID,用于标识该插件所属的应用,来源于开放平台应用页面。
plugin_id:插件的唯一标识符,来源于开放平台的应用能力页面。
name_cn 和 name_en:分别表示插件的中文名和英文名。
instruction_desc:插件的副标题,用于展示插件的描述。
tags:插件的分类信息,其中
id为分类 ID,name为分类名称,weight表示权重。automate_type:自动化类型,可选值为:
"all":适用于所有类型的工作表。"db_sheet":适用于多维表。"et_sheet":适用于工作表。
插件上架和发布
创建应用
进入开发者后台
点击 创建应用


上传插件
进入详情页

打开插件开关,进入能力配置

上传文件


配置插件信息

插件上线
进入版本管理页面

填写版本相关信息

申请发布应用,并审核


进入企业管理后台,找到对应的应用,在应用审核页面,通过上架应用的申请


发布完成

插件下架
下架插件只需在“应用能力”页面找到“数据连接插件”卡片然后点击关闭按钮即可。但是重新上架的话需要重新走一遍插件发布审核的逻辑。