WPS AirScript脚本合集(十三):查看自动化流程执行脚本入参的值和类型
此篇文章内容是通过自动化流程触发执行AirScript脚本时查看脚本入参的值和类型。
由于脚本编辑器的功能比较简洁以及自动化流程执行AirScript脚本的配置界面相对独立,
如下图错误信息告知Application.Record.UpdateRecords()函数中SheetId的值类型无效,要求string或number;
相关代码为
const recordid = Context.argv.recordid
... ...
Application.Record.UpdateRecords({
SheetId: sheetid,
Records: [{
... ...
}
}],
});
SheetId的值由recordid传入,recordid = Context.argv.recordid,所以是Context.argv.recordid的值类型无效,那问题来了,请问Context.argv.recordid的值是什么类型呢?
报错日志没写,自动化流程配置界面也没得调试,脚本编辑器就算脚本有尝试通过console.log输出,运行日志连显示的机会也没有,于是考虑
专门写个脚本,通过return输出自动化流程执行脚本入参的值和类型,配合自动化流程将返回值写入到指定字段中进行查看
下面举个例子来演示下
一、多维表格数据表及字段结构
1、表名:自动化字类型查询
2、视图名:表格视图
3、字段设置:
◉ 字段名称:触发自动化字段 - 字段类型:文本 - 禁止录入重复值:否 - 默认值:无;
◉ 字段名称:表ID变量值 - 字段类型:文本 - 禁止录入重复值:否 - 默认值:无;
◉ 字段名称:表ID变量类型 - 字段类型:文本 - 禁止录入重复值:否 - 默认值:无;
◉ 字段名称:记录ID变量值 - 字段类型:文本 - 禁止录入重复值:否 - 默认值:无;
◉ 字段名称:记录ID变量类型 - 字段类型:文本 - 禁止录入重复值:否 - 默认值:无;
二、AirScript脚本
微信公众号文章详见https://mp.weixin.qq.com/s/sXAUaHflkq4CtBX8iR6DSQ
const sheetid = Context.argv.sheetid
const typesheetid = typeof sheetid
console.log("当前表ID的值:", sheetid)
console.log("当前表ID的类型:", typeof sheetid)
const recordid = Context.argv.recordid
const typerecordid = typeof recordid
console.log("当前记录ID的值:", recordid)
console.log("当前记录ID的类型:", typeof recordid);
return {
sheetid: `${sheetid}`,
typesheetid: `${typesheetid}`,
recordid: `${recordid}`,
typerecordid: `${typerecordid}`
};
三、自动化流程设置
注意“执行AirScript脚本”-配置参数-脚本入参和脚本返回值需切换英文输入法输入,如果第3步“修改记录”-配置参数-设置字段值点击+号无“第2步AirScript脚本的返回值”,需检查第2步“执行AirScript脚本”中配置参数-脚本入参和脚本返回值输入内容是否正确!
注意事项:
1、脚本入参默认为空对象,即Context.argv = {},所以脚本中Context.argv.后面的内容需和脚本入参中的键名称一致,脚本返回值同理
当脚本中Context.argv.后面的内容和脚本入参中的键名称一致,可正常返回内容,即表ID变量值、表ID变量值类型、记录ID变量值和记录ID变量类型
那不一致会怎么样呢?当然是识别不到参数输出undefined啦
2、即使脚本中Context.argv.后面的内容和脚本入参中的键名称一致,可正常返回内容,但表ID变量值类型和记录ID变量类型都是object,不符合前面开头讲的所需参数类型为string或number,如何处理呢?
修改代码取sheetid以及recoedid第一个数据,如下内容:
为什么这样就可以呢?由于看不到具体的object内容,俺也不知道!
也许老天爷知道吧,END!