工作流节点--代码块节点
节点功能: 在节点内输入一段代码(JavaScript/ Python),对流程中的记录数据进行个性化处理计算,得到新的数据内容并输出,后面的节点可以使用输出的数据内容。
可接收的数据类型
1、数值、文本、时间、单选、成员等。
2、数组类型 (接收数组后会当做字符串处理)
如果是“获取多条数据”节点传给代码块的数据,最多接收处理100行。
可输出的数据类型
1、文本
2、数组
代码脚本运行环境
Node.js v10.16.3(API参考 https://nodejs.org/docs/latest-v10.x/api/index)
说明:已安装模块:moment、lodash、node-fetch、form-data、xml2js、node-rsa 、uuid 、pinyin 可直接引用使用
Python v3.7.5(API参考 https://docs.python.org/3.7/library/index)
说明:已安装模块:requests、xmltodict、pycryptodome、dingtalk-sdk、beautifulsoup4、rsa、uuid 、 xpinyin 可直接引用使用
若通过代码块调用API,请求支持WebService SOAP协议,参数格式支持:XML/JSON/Form-Data,请求方式支持:GET/POST/PUT/DELETE。
注:仅专业版和旗舰版的付费版可用此节点功能。如有额外需要引入使用的模块,可反馈给我们增加
一、Javascript语言的使用示例
实现效果:根据身份证号获取性别和出生日期信息
添加并配置代码块节点
您可以将下面的代码直接复制进去您的代码块节点中进行测试,但配置和上图请保持一致。
var idcard = input.IDCard
var birthday = idcard.substr(6, 4) + '-' + idcard.substr(10, 2) + '-' + idcard.substr(12, 2);
var sex = '女';
if (idcard.substr(16, 1) % 2 == 1) {
sex = '男';
}
output = { 生日: birthday, 性别: sex };
// 实际使用时,输出参数名称(生日、性别)请用英文命名,避免使用方不兼容出错。
代码解释
1、如何给代码块传递参数
A处定义传入参数的名称,B处设置传入的参数值,支持多个参数的传入,点击+Key/Value Pair 即可添加参数。
在测试代码时,参数值要写固定的值,不要选择字段值,不然在测试代码功能时不能获取到准确的内容格式导致无法正确输出参数值。
2、代码块如何接收参数
在代码块中处理数据时,需要接收传入的参数值, 格式为:input.参数名
如C处,表示将传入参数IDCard的值赋值给代码块中的idcard,便于代码内部处理数据。
3、代码块如何输出参数
代码块处理后,必然要输出结果,输出的结果也是有一定格式。
格式为:output = { 参数名1:参数值1,参数名2: 参数值2}
支持多个参数的输出,不同参数之间用英文逗号隔开即可。例如D处,输出了生日和性别两个参数。
为了凸现参数名和参数值,易于初学者理解,这里输出参数名使用了中文,但是您在实际使用时,必须用英文命名,避免使用方不兼容出错。例如 生日: birthday, 写为 bday:birthday ,或者用拼音,容易辨认即可。
4、测试代码块
代码块准备好后,点击测试,如果正常,则会显示输出结果。
到此,说明代码写的没问题。
5、传入参数值换成字段值。
前面已经讲到,在测试代码前,参数值要设定为固定的值,这样代码块才能正确获取到传入的内容进行处理并输出。
在有了输出结果后,将固定的值改为字段值即可。
6、后续节点如何使用代码块输出参数
只有代码块节点测试后有了输出内容并保存节点后,后续节点才能使用代码块节点的输出参数。
二、Python语言的使用示例
实现效果:根据身份证号获取出生日期信息
添加并配置代码块节点
您可以将下面的代码直接复制进您的代码块节点中进行测试,相关设置和上图保持一致。
idcard=input["IDcard"]
birthday=idcard[6:10]+'-'+idcard[10:12]+'-'+idcard[12:14]
output = {'生日': birthday}
1、如何向代码块传入参数
A处定义传入参数的名称,B处设置传入的参数值,支持多个参数的传入,点击+Key/Value Pair 即可添加参数。
在测试代码时,参数值要写固定的值,不要选择字段值,不然在测试代码功能时不能获取到准确的内容格式导致无法正确输出参数值。
2、代码块如何接收参数
在代码块中处理数据时,需要接收传入的参数值, 格式为:input["参数名"]
如C处,表示将传入参数IDCard的值赋值给代码块中的idcard,便于代码内部处理数据。
3、代码块如何输出参数
代码块处理后,必然要输出结果,输出的结果也是有一定格式。
格式为:output = {'参数名1':canshu1,'参数名2': canshu2}
支持多个参数的输出,参数名要用英文单引号,参数名和参数值之间用英文冒号连接,不同参数之间用英文逗号隔开即可。
4、测试代码块
代码块编写好后,点击测试,如果正常,则会显示输出结果。
到此,说明代码写的没问题。
5、传入参数值修改为字段值
前面已经讲到,在测试代码前,参数值要设定为固定的值,这样代码块才能正确获取到传入的内容进行处理并输出。
在有了输出结果后,将固定的值改为字段值即可。
6、后续节点使用代码块的输出值
只有代码块节点测试后有了输出内容并保存节点后,后续节点才能使用代码块节点的输出参数。
更多示例和帮助
数管家平台不提供代码编写服务,建议大家学习下JavaScript或Python语言。
在线学习和可调试的推荐网站
JavaScript:https://www.w3school.com.cn/js/index.asp
Node.js 中文网:http://nodejs.cn/api/
文档问题反馈
文档中是否有错别字、内容过期、难以理解等问题? 点此给我们反馈吧