TermIntake delegate
The TermIntake delegate takes in new terms in our application. The ID of the created term will put in a workflow variable under the name outputCreatedTermId.
Field name | Mandatory | Description |
---|---|---|
signifier | Y | The signifier of the term to create. |
conceptType | Y | The ID of the concept type. |
vocabulary | Y | The ID of the vocabulary. |
definition | N | The contents of the definition attribute to be created. |
description | N | The contents of the description attribute to be created. |
note | N | The contents of the note attribute to be created. |
example | N | The contents of the example attribute to be created. |
usesrelation | N | The ID of the target term that will be related using the 'uses' relation. |
resultVariableName | N | The name of the variable that the result will be set in, if not given the result will be set in the variable named "output". |
The delegate is deprecated. Replace your service task containing this delegate with a script task, for example:
<scriptTask id="scripttask1" name="Create Asset" scriptFormat="groovy" activiti:autoStoreVariables="false"> <script><![CDATA[ import com.collibra.dgc.core.api.dto.instance.asset.AddAssetRequest; import com.collibra.dgc.core.api.dto.instance.attribute.AddAttributeRequest; import com.collibra.dgc.core.api.dto.instance.relation.AddRelationRequest; def note = execution.getVariable("note") def definition = execution.getVariable("definition") def newAssetUuid = assetApi.addAsset(AddAssetRequest.builder() .name(signifier) .displayName(signifier) .typeId(conceptType) .domainId(string2Uuid(intakeVocabulary)) .build()) .getId() addAttributeToAsset(newAssetUuid,definition,definitionAttributeTypeUuid) addAttributeToAsset(newAssetUuid,note,noteAttributeTypeUuid) addRelationsWithOneSourceAndMultipleTargetsToAsset(newAssetUuid,usesRelationTypeUuid,usesrelation) execution.setVariable("outputCreatedTermId",uuid2String(newAssetUuid)) def addAttributeToAsset(assetUuid,attributeValue,attributeTypeUuid) { if (attributeValue == null){ return; } attributeApi.addAttribute(AddAttributeRequest.builder() .assetId(assetUuid) .typeId(string2Uuid(attributeTypeUuid)) .value(attributeValue.toString()) .build()) } def addRelationsWithOneSourceAndMultipleTargetsToAsset(sourceUuid,relationTypeUuid,targetUuidList) { def addRelationsRequests = [] loggerApi.info("Source: " + sourceUuid.toString()) loggerApi.info("Type: " + relationTypeUuid.toString()) loggerApi.info("Target: " + targetUuidList.toString()) loggerApi.info("Target Class" + targetUuidList.getClass().toString()) targetUuidList.each{ t -> loggerApi.info("T Class" + t.getClass().toString()) addRelationsRequests.add(AddRelationRequest.builder() .sourceId(sourceUuid) .targetId(t) .typeId(string2Uuid(relationTypeUuid)) .build()) } relationApi.addRelations(addRelationsRequests) } ]]></script> </scriptTask>