工作流节点--代码块节点
节点功能: 在节点内输入一段代码(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 、sm-crypto
-
Python v3.7.5 (API参考 https://docs.python.org/3.7/library/index)
已安装模块,可直接引用:requests、xmltodict、pycryptodome、dingtalk-sdk、beautifulsoup4、rsa、uuid 、 xpinyin 、gmssl 、 cryptography 、lxml、pandas、numpy、matplotlib
若通过代码块调用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、后续节点如何使用代码块输出参数
只有代码块节点测试后有了输出内容并保存节点后,后续节点才能使用代码块节点的输出参数。
二、Python语言的使用示例
实现效果:根据身份证号获取出生日期信息
添加并配 置代码块节点
您可以将下面的代码直接复制进您的代码块节点中进行测试,相关设置和上图保持一致。
idcard=input["IDcard"]
birthday=idcard[6:10]+'-'+idcard[10:12]+'-'+idcard[12:14]
output = {'生日': birthday}