节点类型:代码块

小明 发表于:2019年12月19日 14:21:13更新于:2020年09月09日 12:58:16

功能:在节点内输入一段代码(JavaScript/ Python),对流程中的记录数据进行处理计算,得到新的数据内容并输出, 后面的节点可以使用输出的数据内容。

代码块中可接收的数据类型:

1、数值、文本、时间、单选、成员等。

2、数组类型 ( 数组会强制 为字符串,如何转回数组

代码块可输出的数据类型:

1、文本

2、数组

代码脚本运行环境

  • Node.js v10.16.3

  • Python v3.7.5

注:仅企业版和旗舰版的付费版可用此功能


配置示例

本示例为Javascript 语言, Python语言请参考

实现效果:当邮箱字段有新增或更新时,获取到此邮箱的域名,并写入到 域名字段。

1、新建一个 工作表事件的流程,选择档案表,触发的字段,选择邮箱, 新增或更新时触发流程

image.png

2、添加代码块节点 ,输入代码进行调试

image.png

您可以将 下面的代码直接复制进去您的代码块节点中,并点击【测试】

// 定义一个email字段,它的值是andy...com
var email = "andy.liu@mingdao.com";
// 定义一个domain字段,它的值是【将获取到email内容中@字符 后面的字符串】
var domain = email.split("@")[1];
//定义输出的内容,输出的字段名字:yuming, 字段的值:domain 
output = {yuming:domain};

代码解释

var email="andy.liu@mingdao.com";

为了便于调试,我们将邮箱 先设置为一个固定的值,即andy.liu@mingdao.com ,代码中 //和//后面的 内容是 注释说明内容,不会执行。

var domain = email.split("@")[1];

上面这句代码的效果是获取到 邮箱的@字符后面的内容,并赋值给domain 字段

output = {yuming:domain};

上面这句代码的效果是定义输出的内容,切记格式是固定的,必须是 output = {}; 

{}里面是 输出的参数名和参数值,之间用英文冒号连接。 这里我们配置的参数名是 域名,输出的参数值 是domain,即mingdao.com 

如果输出多个参数,则用应用逗号链接,例如 output = {yuming:domain,youxiang:email}  

点击【测试】按钮后,显示了参数名和参数值。

image.png

到此,说明代码写的没问题。

3、将固定的值,换成输入值,选择触发节点的企业邮箱字段。这样才会不同邮箱的输出不同的域名

image.png

定义 input 对象

input是当前代码块节点的输入对象。

input.email :给input对象 添加一个 输入参数,名字叫 email , 参数的值,选择 触发节点的邮箱字段。

在代码块中获取输入参数的值

将  var email = "andy.liu@mingdao.com"   替换为 var email= input.Email 

从而将触发节点里邮箱字段的值,赋值给代码块中定义的 email 变量。

【保存】 代码块节点。

4、使用代码块节点的 输出内容,更新其他记录。

image.png

5、测试

修改或新增记录的邮箱字段,等待邮箱域名的自动更新。

总结

JS格式

image.png

  • 代码中获取输入的参数值,格式固定: =input.参数名

  • 输出的格式固定:output = {参数名: 参数值 };

更多帮助


1、明道云不提供代码编写服务,建议大家学习下JavaScript 或 Python 语言。

在线学习和可调试的推荐网站:

Python:https://www.runoob.com/python/python-tutorial.html

JavaScript:https://www.w3school.com.cn/js/index.asp

Node.js 中文网:http://nodejs.cn/api/


更多常用场景代码示例:http://support.mingdao.com/hc/kb/article/1401031/

明道云