> For the complete documentation index, see [llms.txt](https://doc.yuncitys.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.yuncitys.com/shu-ju-chu-li-gui-ze-yin-qing/gui-ze-lian-gong-neng-jie-dian/enrichment.md).

# Enrichment

* 用户组属性
* 设备属性
* 发起者属性
* 发起者字段
* 关联属性
* 租户属性
* 发起者遥测
* 租户详细信息
* 客户详细信息

### **用户组属性**

![](/files/-MK4BDGxOOST_GI8Baxu)

此节点查找消息发起者实体的客户并将客户属性或最新遥测数据添加到消息元数据中。

管理员可以配置原始属性名称和元数据属性名称之间的映射关系。

如果选中节点的**Latest Telemetry**配置复选框则节点将通过配置密钥获取最新遥测，否则将获取服务端作用域的相关属性。

![](/files/-MK4BF-IfnXJrqqb9z0F)

出站消息元数据将包含已配置的属性。

可以通过’`metadata.temperature`‘模板获取其它节点属性。

允许以下消息发起者类型： **Customer**,**User**,**Asset**,**Device**。

如果找到不支持的原始发起者类型则会引发错误。

如果没有对发起者分配客户实体则使用**Failure**链否则使用**Success**链。

在下一面教程中你可以看到使用该节点的真实示例：

* 发送邮件

### **设备属性**

![](/files/-MK4BJnaRRV_DFa9r2n_)

此节点查找消息发起者实体的相关设备并将属性(client\shared\server)和最新的遥测值添加到消息元数据中。

元数据中的属性前缀

* shared属性 -> `shared_`
* client属性 -> `cs_`
* server属性 -> `ss_`
* telemetry -> 无前缀

例如shared属性版本将以名称”shared\_version”添加到元数据中。

client属性使用”cs\_“前缀。

server属性使用”ss\_“前缀。

最新遥测数据不带前缀添加到消息元数据中。

在”Device relations query”配置中管理员可以选择所需的**Direction**和**relation depth level**;还可以使用所需的**Device types**配置**Relation type**。

![](/files/-MK4BMdDey1MVMZWWYKz)

如果找到多个相关实体则仅第一个实体用于属性Enrichment节点其他实体将被丢弃。

如果未找到相关实体则使用**Failure**链否则是**Success**链。

如果找不到属性或遥测则不会将其添加到消息元数据中并且仍会通过**Success**链进行路由。

出站消息元数据将仅包含配置的属性。

可以通过’`metadata.temperature`‘模板获取其它节点属性。

**注意:** 从版本2.3.1开始如果出站消息中至少一个选定的密钥，则规则节点可以启用/禁用报告**Failure**。

![](/files/-MK4BOYZSPk6zcEbVwEe)

### **发起者属性**

![](/files/-MK4BSeO2ryVEJc1HTVt)

在消息元数据中添加消息发起者属性(client\shared\server)和最新的遥测值。

元数据中的属性前缀

* shared属性 -> `shared_`
* client属性 -> `cs_`
* server属性 -> `ss_`
* telemetry -> 无前缀

例如shared属性版本将以名称”shared\_version”添加到元数据中。

client属性使用”cs\_“前缀。

server属性使用”ss\_“前缀。

最新遥测数据不带前缀添加到消息元数据中。

![](/files/-MK4BV0rzgaScGl8XLvF)

出站消息元数据将仅包含配置的属性。

可以通过’`>metadata.cs_temperature`‘模板获取其它节点属性。

**Note:** 从TB版本2.3.1开始如果出站消息中至少一个选定的密钥则规则节点可以启用/禁用报告**Failure**

![](/files/-MK4BX7MGn0jNDLUxPNY)

在下一面教程中你可以看到使用该节点的真实示例：

* 转换设备历史消息
* 发送邮件

### **发起者字段**

![](/files/-MK4B_HTzxsa3T7aWGit)

此节点获取消息发起者实体的字段值并将其添加到消息元数据中。

管理员可以配置字段名称和元数据属性名称之间的映射关系。

如果指定的字段不是消息发起者实体字段的一部分它将被忽略。

![](/files/-MK4BbE9Ytgi1yR8BN88)

允许以下消息发起者类型: **Tenant**, **Customer**, **User**, **Asset**, **Device**, **Alarm**, **Rule Chain**。

如果发现不支持的发起者类型则使用**Failure**链否则使用**Success**链。

如果没有找到字段值则不会将其添加到消息元数据中而是通过成功链进行路由。

出站消息元数据将只包含已配置的属性。

可以通过’`metadata.devType`‘模板获取其它节点属性。

### **关联属性**

![](/files/-MK4BdlSg6FWwP7OqbG2)

节点查找消息发起者实体的相关实体并将属性或最新遥测数据添加到消息元数据中。

管理员可以配置原始属性名称和元数据属性名称之间的映射关系。

在”Relations query”配置中管理员可以选择所需的**Direction**和**relation depth level**。

还可以使用必需的关系类型和实体类型配置**Relation filters**。

如果选中节点的**Latest Telemetry**配置复选框则节点将通过配置密钥获取最新遥测，否则将获取服务端作用域的相关属性。

![](/files/-MK4BgeQIW6mdFkD_Vl5)

如果找到多个相关实体**只使用第一个实体**Enrichment属性的其他实体则被丢弃。

如果未找到相关实体则使用**Failure**链否则使用**Success**链。

出站邮件元数据将包含已配置的属性

可以通过’`>metadata.tempo`‘模板获取其它节点属性。

在下一面教程中你可以看到使用该节点的真实示例：

* RPC调用回复

### **租户属性**

![](/files/-MK4BnvSD2o532bi160-)

此节点查找消息发起者实体的租户并将租户属性或最新遥测值添加到消息元数据中。

管理员可以配置原始属性名称和元数据属性名称之间的映射关系。

选中**Latest Telemetry**复选框则节点将获取已配置密钥的最新遥测否则使用Node将获取服务器作用域属性.

![](/files/-MK4BpXgXrFcxKYMj2UD)

出站消息元数据将包含已配置的属性。

可以通过’`>metadata.tempo`‘模板获取其它节点属性。

允许以下消息发起者类型: **Tenant**,**Customer**,**User**,**Asset**,**Device**,**Alarm**,**Rule Chain**。

如果找到了不支持的原始发起者类型则会引发错误。

如果发起者尚未分配租户实体则使用**Failure**链否则**Success**链。

### **发起者遥测**

![](/files/-MK4C3obUHXYk7CKAo8v)

将在节点配置中选择的特定时间范围内的消息发起者遥测数据添加到消息元数据中。

![](/files/-MK4C8QPwRpbbdfa7AgO)

遥测数据添加到不带前缀的消息元数据中。

规则节点具有三种获取模式:

* FIRST: 从数据库中检索最接近时间范围开始的遥测
* LAST: 从最接近时间范围末尾的数据库中检索遥测
* ALL: 在指定时间范围内从数据库检索所有遥测.

![](/files/-MK4BwXnRpooDv5z2UMy)

如果选择获取模式**FIRST**或**LAST**则出站消息元数据将包含JSON元素(key/value)否则选定的获取模式**ALL**则遥测将作为数组获取。

| ***注意:***                    |
| ---------------------------- |
| 规则节点可以将记录的限制大小提取到数组中：1000个记录 |

该数组将包含带有时间戳和值的JSON对象。

| ***注意:***        |
| ---------------- |
| 间隔的结尾必须始终小于间隔的开头 |

如果选中**Use metadata interval patterns**复选框则规则节点将使用元数据中的Start Interval和End Interval模式。

自UNIX时代(January 1, 1970 00:00:00 UTC)以来，模式单位以毫秒为单位设置。

![](/files/-MK4CBmCy-_OvFgP7iXI)

* 如果消息元数据中不存在任何模式则出站消息将通过**failure**链进行路由。
* 如果任何模式的数据类型无效则出站消息还将通过**failure**链进行路由。

出站消息元数据将包含已配置的遥测字段（如果存在且属于所选范围）。

如果找不到属性或遥测则不会将其添加到消息元数据中并且仍会通过**Success**链进行路由。

可以通过’`JSON.parse(metadata.temperature)`‘模板获取其它节点遥测。

**注意:** 从 2.3版开始当选择Fetch mode: **ALL**时规则节点可以选择遥测采样顺序。

![](/files/-MK4CD9Wvf9ddL642LKw)

在下一面教程中你可以看到使用该节点的真实示例：

* 遥测增量计算

**租户详细信息**

![](/files/-MK4CFp3v3sNTIBG9OU9)

此节点将字段从租户详细信息添加到消息正文或元数据

选中**Add selected details to the message metadata**复选框则现有字段将添加到消息元数据中而不是消息数据中。

![](/files/-MK4CHOylPBZ-_-9RHPN)

选定的详细信息将添加到带有前缀:**tenant\_**&#x5143;数据中。

出站消息将包含已配置的详细信息。

可以通过以下模板获取其他节点的详细信息:

* `metadata.tenant_address`
* `msg.tenant_address`

如果发起者尚未分配租户实体则使用**Failure**链否则**Success**链。

### **客户详细信息**

![](/files/-MK4CJ8RHP9SvqxLC6iF)

规则节点将客户详细信息中的字段添加到消息正文或元数据。

选中**Add selected details to the message metadata**复选框则现有字段将添加到消息元数据中而不是消息数据中。

![](/files/-MK4CKbA7aRDHoIS66Cu)

选定的详细信息将添加到带有前缀:**customer\_**&#x5143;数据中。

出站邮件将包含已配置的详细信息（如果存在）。

可以通过以下模板获取其他节点的详细信息:

* `metadata.customer_email`
* `msg.customer_email`

允许以下消息发起者类型: **Asset**,**Device**,**Entity View**。

如果找到了不支持的原始发件人类型则会引发错误。

如果未分配发起者客户实体**Failure**链则使用**Success**链。
