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>