index.ts
2.3 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
import { ActionCategoryComponentEnum } from '../../../enum/category';
import { useCreateNodeKey } from '../../../hook/useCreateNodeKey';
import type { NodeItemConfigType } from '../../../types/node';
import { RuleNodeTypeEnum } from '../../index.type';
const keys = useCreateNodeKey(ActionCategoryComponentEnum.CREATE_RELATION);
export interface CreateRelationDataType {
someConfiguration?: Recordable;
}
export const CreateRelationConfig: NodeItemConfigType = {
...keys,
clazz: 'org.thingsboard.rule.engine.action.TbCreateRelationNode',
categoryType: RuleNodeTypeEnum.ACTION,
name: 'create relation',
configurationDescriptor: {
nodeDefinition: {
details:
'If the relation already exists or successfully created - Message send via <b>Success</b> chain, otherwise <b>Failure</b> chain will be used.',
description:
"Finds target Entity by entity name pattern and (entity type pattern for Asset, Device) and then create a relation to Originator Entity by type and direction. If Selected entity type: Asset, Device or Customer will create new Entity if it doesn't exist and selected checkbox 'Create new entity if not exists'.<br> In case that relation from the message originator to the selected entity not exist and If selected checkbox 'Remove current relations', before creating the new relation all existed relations to message originator by type and direction will be removed.<br> If relation from the message originator to the selected entity created and If selected checkbox 'Change originator to related entity', outbound message will be processed as a message from this entity.",
inEnabled: true,
outEnabled: true,
relationTypes: ['Success', 'Failure'],
customRelations: false,
ruleChainNode: false,
defaultConfiguration: {
direction: 'FROM',
relationType: 'Contains',
entityType: null,
entityNamePattern: '',
entityTypePattern: null,
entityCacheExpiration: 300,
createEntityIfNotExists: false,
changeOriginatorToRelatedEntity: false,
removeCurrentRelations: false,
},
uiResources: ['static/rulenode/rulenode-core-config.js'],
configDirective: 'tbActionNodeCreateRelationConfig',
icon: 'material-symbols:add-circle',
iconUrl: '',
docUrl: '',
},
},
};