index.ts
9.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
/**
*规则链 动作 中文配置文件
目前共有22个,分类按名称进行配置
*/
export default {
title: '动作',
description: '执行特别动作',
assignToCustomer: {
name: '分配给客户',
details: `按客户名称模式查找目标客户,然后将发起者实体分配给该客户。如果不存在将创建新客户,并且【如果不存在则创建新客户]设置为true。`,
description: '将消息发起人实体分配给客户',
},
clearAlarm: {
name: '清除告警',
details: `详情-基于传入消息创建JSON对象的JS函数。该对象将被添加到Alarm.details字段中。节点输出:如果告警未被清除,则返回原始消息。否则,返回类型为【告警】新消息【msg】属性和【metadata】中的告警对象将包含【isClearedAlarm】属性。可以通过【msg】属性访问消息负载。例如'temperature='+msg.temperature。也可以通过【metadata】属性访问消息元数据。例如'name='+metadata.customerName。`,
description: '清除告警',
},
copyToView: {
name: '复制到视图',
details: `根据实体视图配置,将属性从资产/设备复制到相关的实体视图。复制将仅针对开始日期和结束日期之间的属性,并根据属性键进行配置。将消息发起者更改为相关的实体视图,并根据更新的实体视图的计数生成新消息。`,
description: '将属性从资产/设备复制到实体视图,并将消息发起者更改为相关实体视图。',
},
createAlarm: {
name: '创建告警',
details: `详情-基于传入消息创建JSON对象的JS函数。该对象将被添加到Alarm.details字段中。节点输出:如果告警未被创建,则返回原始消息。否则,返回类型为【告警】的新消息,【msg】属性和【metadata】中的告警对象将包含其中一个属性【isNewAlarm/isExistingAlarm】。可以通过【msg】属性访问消息负载。例如'temperature='+msg.temperature。可以通过【metadata】属性访问消息元数据。例如'name='+metadata.customerName。`,
description: '创建或更新告警。',
},
createRelation: {
name: '创建关联关系',
details: `如果关系已存在或已成功创建;通过Success链发送消息,否则将使用Failure链路。`,
description: `按实体名称模式和(资产、设备的实体类型模式)查找目标实体,然后按类型和方向创建与发起人实体的关系。如果所选实体类型:资产、设备或客户将创建新实体(如果不存在),并选中【创建新实体】;如果从邮件发起人到所选实体的关系不存在,并且选中【删除当前关系】,则在创建新关系之前,将删除按类型和方向与邮件发起人的所有现有关系;如果创建了从邮件发件人到所选实体的关系,并且选中了【将发件人更改为相关实体】,则出站邮件将作为来自该实体的邮件进行处理。`,
},
deleteRelation: {
name: '删除关联关系',
details: `如果成功删除关系;通过则走Success链发送消息,否则将使用Failure链。`,
description: `如果“删除单个实体”设置为true,则按实体名称模式查找目标实体,然后按类型和方向删除与发起者实体的关系,否则规则节点将按类型和顺序,删除与消息发起人的所有关系。`,
},
delay: {
name: '延迟(已弃用)',
details: `为消息传输配置一段时间的延迟。请注意,此节点确认当前队列中的消息(消息将从队列中删除)。不推荐,因为已确认的消息仍保留在内存中(待延迟),并且即使选择了【重试失败和超时】处理策略,也不能保证消息得到处理。`,
description: `延迟传入消息(已弃用)`,
},
deviceProfile: {
name: '设备配置',
details: `根据设备配置文件中定义的告警规则,创建和清除报警。输出关联类型为【告警创建】、【告警更新】、【告警严重性更新】和【告警已清除】,如果没有告警受到影响,则仅为【成功】。`,
description: `根据设备配置文件处理设备消息。`,
},
generator: {
name: '生成器',
details: `生成具有可配置周期的消息。用于生成消息的Javascript函数。`,
description: `定期生成消息。`,
},
gpsGeofencingEvents: {
name: 'GPS地理围栏事件',
details: `从传入消息中提取纬度和经度参数,并根据配置参数返回不同的事件。`,
description: `使用基于GPS的地理围栏生成传入消息。`,
},
log: {
name: '日志',
details: `将配置JS函数的传入Message转换为String,并将最终值记录到平台日志文件中。可以通过msg属性访问消息负载。例如temperature= +msg.temperature。可以通过metadata属性访问消息元数据。例如name= +metadata.customerName。`,
description: `使用JS脚本记录传入消息,将Message转换为String。`,
},
messageCount: {
name: '消息计数',
details: `对指定间隔内的传入消息进行计数,并生成具有消息计数的POST_ELEMETRY_REQUEST消息。`,
description: `统计传入消息。`,
},
pushToEdge: {
name: '推送消息到边缘端',
details: `将消息从云端推送到边缘。消息发起者必须分配给指定边缘,或者消息发起方是边缘实体本身。此节点仅在云实例上用于将消息从云推送到边缘。一旦消息到达该节点,它将被转换为边缘事件并保存到数据库中。节点不直接将消息推送到边缘,而是将事件存储在边缘队列中;支持下一个发起方类型:DEVICE/ASSET/ENTITY_VIEW/DASHBOARD/TENANT/CUSTOMER/EDGE;节点也支持下一条消息类型:POST_ELEMETRY_REQUEST/POST_ATTRIBUTES_REQUEST/ATTRIBUTES_UPDATED/ATTRIBUTES_DELETED/ALARM;如果节点无法将边缘事件保存到数据库或到达了不受支持的发起者类型/消息类型,则消息将通过Failure进行路由。在成功存储边缘事件到数据库的情况下,消息将通过Success进行路由。`,
description: `将消息从云端推送到边缘端。`,
},
rpcCallReply: {
name: 'rpc请求回复',
details: `应为任何消息类型的消息。将消息正文转发到设备。`,
description: `从设备发送对RPC调用的答复。`,
},
rpcCallRequest: {
name: 'RPC调用请求',
details: `带有method和params的消息,将响应从设备转发到下一个节点。如果RPC调用请求是由用户的REST API调用发起的,则会立即将响应转发给用户。`,
description: `将RPC调用发送到设备。`,
},
saveAttributes: {
name: '保存属性',
details: `根据可配置的作用域参数保存实体属性。消息类型为POST_ATTRIBUTES_REQUEST的消息`,
description: `保存属性数据。`,
},
saveEvent: {
name: '保存事件',
details: `保存实体事件,消息类型为POST_EVENT_REQUEST的消息。`,
description: `保存设备事件数据。`,
},
saveTimeseries: {
name: '保存时序数据',
details: `根据可配置的TTL参数保存时序遥测数据,消息类型为POST_TELEMETRY_REQUEST的消息。时间戳(以毫秒为单位)将取自元数据时间戳,否则将应用现在消息时间戳,如果skipLatestPersistence设置为true,则允许停止更新最新ts_kv表中传入键的值。启用【useServerTs】参数以使用消息处理的时间戳,而不是消息中的时间戳。如果合并的消息来自多种类型(设备、资产等)的消息,则对各种顺序处理都很有用。在顺序处理的情况下,平台保证消息按照提交到队列的顺序进行处理。然而,由多个设备/服务器发起的消息的时间戳可能早在它们被推送到队列之前就不同步了。如果新记录的时间戳比以前的记录旧,则DB层具有某些优化,可以忽略“属性”和“最新值”表的更新。因此,为了确保所有消息都得到正确处理,应该为顺序消息处理场景启用此参数。`,
description: `保存时序数据。`,
},
saveToCustomTable: {
name: '保存到自定义表',
details: `管理员应设置不带前缀的自定义表名:【cs_tb_】,管理员可以配置消息字段名称和Table列名称之间的映射;注意:如果映射键为【$entity_id】;由消息发起人标识,然后到适当的列名(映射值)将写入消息发起人id。如果指定的消息字段不存在或不是标准JSON,出站消息将通过failure链路;否则,消息将通过success链进行。`,
description: `节点将来自Cassandra数据库的传入Message有效负载的数据,存储到预定义的自定义表中,该表应以cs_tb_为前缀,以避免数据插入到公共tb表中。注意:规则节点只能用于Cassandra DB。`,
},
synchronizationEnd: {
name: '同步结束',
details: ``,
description: `此节点现在已弃用。请改用“检查数据点”。`,
},
synchronizationStart: {
name: '同步启动',
details: `此节点应与“同步结束”节点一起使用。此节点将根据消息发起方id将消息放入队列。在上一条消息处理完成或发生超时事件之前,不会处理后续消息。每个发起方的队列大小和超时值可在系统级别进行配置。`,
description: `此节点现在已弃用。请改用【检查数据点】。`,
},
unassigFromCustomer: {
name: '从客户取消分配',
details: `按客户端名称模式查找目标实体客户,然后取消分配该客户的发起者实体。.`,
description: `从客户取消分配消息发起者实体。`,
},
};