Alternatives to API v1 delegates
This section provides examples of alternatives to Java Core API v1 delegates.
AddAttributeDelegate
API v1 |
---|
<serviceTask id="servicetask1" name="Add attribute" activiti:class="com.collibra.dgc.core.workflow.activiti.delegate.attribute.AddAttributeDelegate"> <extensionElements> <activiti:field name="value"> <activiti:string><![CDATA[attribute content]]></activiti:string> </activiti:field> <activiti:field name="ownerId"> <activiti:expression><![CDATA[${item.id}]]></activiti:expression> </activiti:field> <activiti:field name="typeId"> <activiti:expression><![CDATA[${givenAttributeTypeId}]]></activiti:expression> </activiti:field> </extensionElements> </serviceTask> |
API v2 |
---|
<scriptTask id="scripttask1" name="Add attribute" scriptFormat="groovy" activiti:autoStoreVariables="false"> <script><![CDATA[ import com.collibra.dgc.core.api.dto.instance.attribute.AddAttributeRequest; def attribute = attributeApi.addAttribute(AddAttributeRequest.builder() .assetId(item.id) .typeId(string2Uuid(givenAttributeTypeId))) .value("attribute content") .build()) execution.setVariable("output", attribute) ]]></script> </scriptTask> |
GetAttributeDelegate
API v1 |
---|
<serviceTask id="servicetask1" name="Get attribute" activiti:class="com.collibra.dgc.core.workflow.activiti.delegate.attribute.GetAttributeDelegate"> <extensionElements> <activiti:field name="attributeId"> <activiti:expression><![CDATA[${givenAttributeId}]]></activiti:expression> </activiti:field> </extensionElements> </serviceTask> |
API v2 |
---|
<scriptTask id="scripttask1" name="Get attribute" scriptFormat="groovy" activiti:autoStoreVariables="false"> <script><![CDATA[ def attribute = attributeApi.getAttribute(string2Uuid(givenAttributeId)); execution.setVariable("output", attribute) ]]></script> </scriptTask> |
RemoveAttributeDelegate
API v1 |
---|
<serviceTask id="servicetask1" name="Remove attribute" activiti:class="com.collibra.dgc.core.workflow.activiti.delegate.attribute.RemoveAttributeDelegate"> <extensionElements> <activiti:field name="attributeId"> <activiti:expression><![CDATA[${givenAttributeId}]]></activiti:expression> </activiti:field> </extensionElements> </serviceTask> |
API v2 |
---|
<scriptTask id="scripttask1" name="Remove attribute" scriptFormat="groovy" activiti:autoStoreVariables="false"> <script><![CDATA[ attributeApi.removeAttribute(string2Uuid(givenAttributeId)); ]]></script> </scriptTask> |
AddRelationDelegate
API v1 |
---|
<serviceTask id="servicetask1" name="Add relation" activiti:class="com.collibra.dgc.core.workflow.activiti.delegate.relation.GetRelationsDelegate"> <extensionElements> <activiti:field name="sourceTermId"> <activiti:expression><![CDATA[${item.id}]]></activiti:expression> </activiti:field> <activiti:field name="targetTermId"> <activiti:expression><![CDATA[${givenTargetResourceId}]]></activiti:expression> </activiti:field> <activiti:field name="binaryFactTypeId"> <activiti:expression><![CDATA[${givenRelationTypeId}]]></activiti:expression> </activiti:field> </extensionElements> </serviceTask> |
API v2 |
---|
<scriptTask id="scripttask1" name="Add relation" scriptFormat="groovy" activiti:autoStoreVariables="false"> <script><![CDATA[ import com.collibra.dgc.core.api.dto.instance.relation.AddRelationRequest; def relation = relationApi.addRelation(AddRelationRequest.builder() .typeId(string2Uuid(givenRelationTypeId)) .sourceId(item.id) .targetId(givenTargetResourceId) .build()); execution.setVariable("output", relation) ]]></script> </scriptTask> |
GetRelationsDelegate
API v1 |
---|
<serviceTask id="servicetask1" name="Remove relation" activiti:class="com.collibra.dgc.core.workflow.activiti.delegate.relation.GetRelationsDelegate"> <extensionElements> <activiti:field name="sourceTermId"> <activiti:expression><![CDATA[${item.id}]]></activiti:expression> </activiti:field> </extensionElements> </serviceTask> |
API v2 |
---|
<scriptTask id="scripttask1" name="Remove relation" scriptFormat="groovy" activiti:autoStoreVariables="false"> <script><![CDATA[ import com.collibra.dgc.core.api.dto.instance.relation.FindRelationsRequest; def relations = relationApi.findRelations(FindRelationsRequest.builder() .sourceId(item.id) .build()) .getResults(); execution.setVariable("output", relations) ]]></script> </scriptTask> |
RemoveRelationsDelegate
API v1 |
---|
<serviceTask id="servicetask1" name="Remove relation" activiti:class="com.collibra.dgc.core.workflow.activiti.delegate.relation.RemoveRelationsDelegate"> <extensionElements> <activiti:field name="sourceTermId"> <activiti:expression><![CDATA[${item.id}]]></activiti:expression> </activiti:field> </extensionElements> </serviceTask> |
API v2 |
---|
<scriptTask id="scripttask1" name="Remove relation" scriptFormat="groovy" activiti:autoStoreVariables="false"> <script><![CDATA[ import com.collibra.dgc.core.api.dto.instance.relation.FindRelationsRequest; def relations = relationApi.findRelations(FindRelationsRequest.builder() .sourceId(item.id) .build()) .getResults(); relationApi.removeRelations(new ArrayList(relations.collect{ it.getId() })); ]]></script> </scriptTask> |
AddResourceRoleDelegate
API v1 |
---|
<serviceTask id="servicetask1" name="Assign owner" activiti:class="com.collibra.dgc.core.workflow.activiti.delegate.roles.AddResourceRoleDelegate"> <extensionElements> <activiti:field name="resourceId"> <activiti:expression><![CDATA[${item.id}]]></activiti:expression> </activiti:field> <activiti:field name="userName"> <activiti:expression><![CDATA[${startUser}]]></activiti:expression> </activiti:field> <activiti:field name="roleId"> <activiti:expression><![CDATA[${roleId}]]></activiti:expression> </activiti:field> </extensionElements> </serviceTask> |
API v2 |
---|
<scriptTask id="scripttask1" name="Assign owner" scriptFormat="groovy" activiti:autoStoreVariables="false"> <script><![CDATA[ import com.collibra.dgc.core.api.dto.instance.responsibility.AddResponsibilityRequest def userName = execution.getVariable("startUser") def ownerUserId = userApi.getUserByUsername(userName).getId(); responsibilityApi.addResponsibility(AddResponsibilityRequest.builder() .resourceId(item.id) .resourceType(item.type) .roleId(string2Uuid(roleId)) .ownerId(ownerUserId) .build()) ]]></script> </scriptTask> |
RemoveResourceRoleDelegate
API v1 |
---|
<serviceTask id="servicetask1" name="Remove current Owner role" activiti:class="com.collibra.dgc.core.workflow.activiti.delegate.roles.RemoveResourceRoleDelegate"> <extensionElements> <activiti:field name="roleName"> <activiti:string><![CDATA[Owner]]></activiti:string> </activiti:field> <activiti:field name="userName"> <activiti:expression><![CDATA[${ownerName}]]></activiti:expression> </activiti:field> <activiti:field name="resourceId"> <activiti:expression><![CDATA[${domain.id}]]></activiti:expression> </activiti:field> </extensionElements> </serviceTask> |
API v2 |
---|
<scriptTask id="scripttask1" name="Remove current Owner role" scriptFormat="groovy" activiti:autoStoreVariables="false"> <script><![CDATA[ import com.collibra.dgc.core.api.dto.instance.responsibility.FindResponsibilitiesRequest def ownerUserId = userApi.getUserByUsername(ownerName).getId(); def ownerRoleId = users.getRoleId("Owner"); def responsibilities = responsibilityApi.findResponsibilities(FindResponsibilitiesRequest.builder() .resourceIds(Collections.singletonList(domain.id)) .ownerIds(Collections.singletonList(ownerUserId)) .roleIds(Collections.singletonList(ownerRoleId)) .build()) .getResults() responsibilityApi.removeResponsibilities(new ArrayList(responsibilities.collect{ it.getId() })); ]]></script> </scriptTask> |
AddTermDelegate
API v1 |
---|
<serviceTask id="servicetask1" name="Add term" activiti:class="com.collibra.dgc.core.workflow.activiti.delegate.term.AddTermDelegate"> <extensionElements> <activiti:field name="signifier"> <activiti:expression>${givenSignifier}</activiti:expression> </activiti:field> <activiti:field name="vocabularyId"> <activiti:expression>${givenVocabularyId}</activiti:expression> </activiti:field> <activiti:field name="typeId"> <activiti:expression>${givenTypeId}</activiti:expression> </activiti:field> </extensionElements> </serviceTask> |
API v2 |
---|
<scriptTask id="scripttask1" name="Add asset" scriptFormat="groovy" activiti:autoStoreVariables="false"> <script><![CDATA[ import com.collibra.dgc.core.api.dto.instance.asset.AddAssetRequest; import com.collibra.dgc.core.api.model.instance.Asset; Asset asset = assetApi.addAsset(AddAssetRequest.builder() .name(givenSignifier) .displayName(givenSignifier) .typeId(string2Uuid(givenTypeId)) .domainId(string2Uuid(givenVocabularyId)) .build()) execution.setVariable("output", asset) ]]></script> </scriptTask> |
GetTermDelegate
API v1 |
---|
<serviceTask id="servicetask1" name="Get term" activiti:class="com.collibra.dgc.core.workflow.activiti.delegate.term.GetTermDelegate"> <extensionElements> <activiti:field name="termId"> <activiti:expression><![CDATA[${giventTermId}]]></activiti:expression> </activiti:field> </extensionElements> </serviceTask> |
API v2 |
---|
<scriptTask id="scripttask1" name="Get asset" scriptFormat="groovy" activiti:autoStoreVariables="false"> <script><![CDATA[ import com.collibra.dgc.core.api.model.instance.Asset; Asset asset = assetApi.getAsset(givenAssetId); execution.setVariable("output", asset) ]]></script> </scriptTask> |
RemoveTermDelegate
API v1 |
---|
<serviceTask id="servicetask1" name="Remove term" activiti:class="com.collibra.dgc.core.workflow.activiti.delegate.term.RemoveTermDelegate"> <extensionElements> <activiti:field name="termId"> <activiti:expression><![CDATA[${givenTermId}]]></activiti:expression> </activiti:field> </extensionElements> </serviceTask> |
API v2 |
---|
<scriptTask id="scripttask1" name="Remove asset" scriptFormat="groovy" activiti:autoStoreVariables="false"> <script><![CDATA[ assetApi.removeAsset(givenAssetId); ]]></script> </scriptTask> |
AddComment
API v1 |
---|
<serviceTask id="servicetask1" name="Add comment" activiti:class="com.collibra.dgc.core.workflow.activiti.delegate.AddComment"> <extensionElements> <activiti:field name="comment"> <activiti:string>The content of the comment.</activiti:string> </activiti:field> </extensionElements> </serviceTask> |
API v2 |
---|
<scriptTask id="scripttask1" name="Store comment" scriptFormat="groovy" activiti:autoStoreVariables="false"> <script><![CDATA[ import com.collibra.dgc.core.api.dto.instance.comment.AddCommentRequest commentApi.addComment(AddCommentRequest.builder() .content("The content of the comment.") .baseResourceId(item.getId()) .baseResourceType(item.getType()) .build()) ]]></script> </scriptTask> |
AddDecisionVote
API v1 |
---|
<serviceTask id="servicetask1" name="Add vote outcome to list" activiti:class="com.collibra.dgc.core.workflow.activiti.delegate.AddDecisionVote"></serviceTask> |
API v2 |
---|
<scriptTask id="scripttask1" name="Add vote outcome to list" scriptFormat="groovy" activiti:autoStoreVariables="false"> <script><![CDATA[ def voter = execution.getVariable("voter"); Boolean approved = (Boolean) execution.getVariable("approve"); comment = execution.getVariable("comment"); vote = [ "name" : voter, "approved": approved, "comment": comment?.toString() ] voting = execution.getVariable("votingResult"); voting.add(vote); checkEarlyComplete(execution, voting); execution.setVariable("votingResult", voting); def checkEarlyComplete(execution, voting) { Boolean earlyComplete = (Boolean) execution.getVariable("earlyComplete"); if (earlyComplete) { Long percentage = (Long) execution.getVariable("votePercentage"); List<String> voters = (List<String>) execution.getVariable("voters"); double approved = 0; double disapproved = 0; double totalVoters = voters.size(); for (Map vote : voting) { if (vote.approved) { approved++; } else { disapproved++; } } if (approved / totalVoters >= percentage / 100.0) { execution.setVariable("completion", Boolean.TRUE); } else if (disapproved / totalVoters > (100 - percentage) / 100.0) { execution.setVariable("completion", Boolean.TRUE); } } } ]]></script> </scriptTask> |
ChangeIssueResponsibleCommunity
API v1 |
---|
<serviceTask id="servicetask1" name="Move the Issue" activiti:class="com.collibra.dgc.core.workflow.activiti.delegate.ChangeIssueResponsibleCommunity"> <extensionElements> <activiti:field name="responsibleCommunity"> <activiti:expression>${responsibleCommunity}</activiti:expression> </activiti:field> </extensionElements> </serviceTask> |
API v2 |
---|
<scriptTask id="scripttask1" name="Move the Issue" scriptFormat="groovy" activiti:autoStoreVariables="false"> <script> import com.collibra.dgc.core.api.dto.instance.issue.MoveIssueRequest issueApi.moveIssue(MoveIssueRequest.builder() .issueId(item.id) .communityId(responsibleCommunity) .build()) </script> </scriptTask> |
ChangeStatusDelegate
API v1 |
---|
<serviceTask id="servicetask1" name="Mark as Accepted" activiti:class="com.collibra.dgc.core.workflow.activiti.delegate.ChangeStatusDelegate" <extensionElements> <activiti:field name="targetStatusId"> <activiti:string><![CDATA[00000000-0000-0000-0000-000000005009]]></activiti:string> </activiti:field> </extensionElements> </serviceTask> |
API v2 |
---|
<scriptTask id="scripttask1" name="Mark as Accepted" scriptFormat="groovy" activiti:autoStoreVariables="false"> <script><![CDATA[ import com.collibra.dgc.core.api.dto.instance.asset.ChangeAssetRequest String acceptedStatusId = "00000000-0000-0000-0000-000000005009" assetApi.changeAsset(ChangeAssetRequest.builder() .id(item.id) .statusId(string2Uuid(acceptedStatusId)) .build()) ]]></script> </scriptTask> |
StateChanger
API v1 |
---|
<serviceTask id="servicetask1" name="Mark as Accepted" activiti:class="com.collibra.dgc.core.workflow.activiti.delegate.StateChanger" <extensionElements> <activiti:field name="targetStatusId"> <activiti:string><![CDATA[00000000-0000-0000-0000-000000005009]]></activiti:string> </activiti:field> </extensionElements> </serviceTask> |
API v2 |
---|
<scriptTask id="scripttask1" name="Mark as Accepted" scriptFormat="groovy" activiti:autoStoreVariables="false"> <script><![CDATA[ import com.collibra.dgc.core.api.dto.instance.asset.ChangeAssetRequest String acceptedStatusId = "00000000-0000-0000-0000-000000005009" assetApi.changeAsset(ChangeAssetRequest.builder() .id(item.id) .statusId(string2Uuid(acceptedStatusId)) .build()) ]]></script> </scriptTask> |
CountVoteResult
API v1 |
---|
<serviceTask id="servicetask1" name="Count voting result" activiti:class="com.collibra.dgc.core.workflow.activiti.delegate.CountVoteResult"></serviceTask> |
API v2 |
---|
<scriptTask id="scripttask1" name="Count voting result" scriptFormat="groovy" activiti:autoStoreVariables="false"> <script><![CDATA[ def voting = execution.getVariable("votingResult") boolean result = getResult(voting, execution) execution.setVariable("votingSuccess", result) def getResult(voting, execution) { Long percentage = (Long) execution.getVariable("votePercentage"); if (!voting.isEmpty()) { int requiredToVote = ((List<String>) execution.getVariable("voters")).size(); int approved = getNumberOfApprovals(voting); double fraction = percentage / 100.0; return approved >= requiredToVote * fraction; } return false; } def getNumberOfApprovals(List<Map> voting) { int approved = 0; for (Map vote : voting) { if (vote.approved) { approved++; } } return approved; } ]]></script> </scriptTask> |
CreateIssue
API v1 |
---|
<serviceTask id="servicetask1" name="Create issue" activiti:class="com.collibra.dgc.core.workflow.activiti.delegate.CreateIssue"> <extensionElements> <activiti:field name="subject"> <activiti:expression>${subject}</activiti:expression> </activiti:field> <activiti:field name="description"> <activiti:expression>${description}</activiti:expression> </activiti:field> <activiti:field name="priority"> <activiti:expression>${priority}</activiti:expression> </activiti:field> <activiti:field name="relations"> <activiti:expression>${relations}</activiti:expression> </activiti:field> <activiti:field name="classifications"> <activiti:expression>${classifications}</activiti:expression> </activiti:field> <activiti:field name="requester"> <activiti:expression>${requester}</activiti:expression> </activiti:field> <activiti:field name="responsibleCommunity"> <activiti:expression>${responsibleCommunity}</activiti:expression> </activiti:field> </extensionElements> </serviceTask> |
API v2 |
---|
<scriptTask id="scripttask1" name="Create issue" scriptFormat="groovy" activiti:autoStoreVariables="false"> <script><![CDATA[ import com.collibra.dgc.core.api.dto.instance.issue.RelatedAssetReference; import com.collibra.dgc.core.api.dto.instance.issue.AddIssueRequest; import com.collibra.dgc.core.api.dto.user.FindUsersRequest; def requesterId = userApi.getUserByUsername(requester).getId() def descriptionString = execution.getVariable("description")?.toString() ?: "" def communityId = responsibleCommunity def relatedAssets = execution.getVariable("relatedAssets") ?: [] def relatedAssetsList = [] relatedAssets.each{ relatedAssetId -> def relatedAssetRef = RelatedAssetReference.builder() .assetId(relatedAssetId) .direction(true) .relationTypeId(string2Uuid(impactsRelationId)) .build() relatedAssetsList.add(relatedAssetRef) } def newIssueUuid = issueApi.addIssue(AddIssueRequest.builder() .name(subject) .description(descriptionString) .priority(priority) .responsibleCommunityId(communityId) .relatedAssets(relatedAssetsList) .categoryIds(classifications) .typeId(string2Uuid(dataIssueId)) .requesterId(requesterId) .build()) .getId() execution.setVariable("outputCreatedTermId", newIssueUuid)) ]]></script> </scriptTask> |
CreateVotersList
API v1 |
---|
<serviceTask id="servicetask1" name="Create list of voters" activiti:class="com.collibra.dgc.core.workflow.activiti.delegate.CreateVotersList"> <extensionElements> <activiti:field name="voterUserExpression"> <activiti:expression><![CDATA[${voterUserExpression}]]></activiti:expression> </activiti:field> </extensionElements> </serviceTask> |
API v2 |
---|
<scriptTask id="scripttask1" name="Create list of voters" scriptFormat="groovy" activiti:autoStoreVariables="false"> <script><![CDATA[ def voterUserExpression = execution.getVariable("voterUserExpression") final Set<String> voters = new HashSet<>(); for (String userExpression : utility.toList(voterUserExpression)) { voters.addAll(users.getUserNamesWithError(userExpression)); } execution.setVariable("voters", new ArrayList<>(voters)); execution.setVariable("votingResult", []); execution.setVariable("completion", Boolean.FALSE); ]]></script> </scriptTask> |
GetModel
API v1 |
---|
<serviceTask id="servicetask1" name="Get Model" activiti:class="com.collibra.dgc.core.workflow.activiti.delegate.GetModel"> <extensionElements> <activiti:field name="viewConfig"> <activiti:expression>${viewConfig}</activiti:expression> </activiti:field> <activiti:field name="varNames"> <activiti:string>VOC_ID</activiti:string> </activiti:field> <activiti:field name="varValues"> <activiti:expression>${item.id}</activiti:expression> </activiti:field> <activiti:field name="resultVariable"> <activiti:string>assets</activiti:string> </activiti:field> </extensionElements> </serviceTask> |
API v2 |
---|
This delegate is not supported and there is no alternative or possibility to use it. |
GetRelatedTerms
API v1 |
---|
<serviceTask id="servicetask1" name="Get related terms" activiti:class="com.collibra.dgc.core.workflow.activiti.delegate.GetRelatedTerms"> <extensionElements> <activiti:field name="relationRole"> <activiti:expression>"role(Business Steward)"</activiti:expression> </activiti:field> <activiti:field name="resultVariable"> <activiti:string>relations</activiti:string> </activiti:field> </extensionElements> </serviceTask> |
API v2 |
---|
<scriptTask id="scripttask1" name="Get related terms" scriptFormat="groovy" activiti:autoStoreVariables="false"> <script><![CDATA[ import com.collibra.dgc.core.api.model.meta.type.RelationType; import com.collibra.dgc.core.api.dto.meta.relationtype.FindRelationTypesRequest; import com.collibra.dgc.core.api.model.instance.Relation; import com.collibra.dgc.core.api.dto.instance.relation.FindRelationsRequest; import com.collibra.dgc.core.api.model.reference.NamedResourceReference; import com.collibra.dgc.workflow.api.exception.WorkflowException; List<RelationType> relationTypes = relationTypeApi.findRelationTypes(FindRelationTypesRequest.builder() .role("groups") .build()) .getResults() if (relationTypes.isEmpty()) { throw new WorkflowException("No relation types for provided role 'groups'"); } List<UUID> relatedAssetIds = new ArrayList<>(); for (RelationType relationType : relationTypes) { List<Relation> relations = relationApi.findRelations(FindRelationsRequest.builder() .sourceId(item.id) .relationTypeId(relationType.getId()) .build()) .getResults(); for (Relation relation : relations) { relatedAssetIds.add(relation.getTarget().getId()); } } execution.setVariable("relations", relatedAssetIds); ]]></script> </scriptTask> |
GetRelatedTermsDelegate
API v1 |
---|
<serviceTask id="servicetask1" name="Get related terms" activiti:class="com.collibra.dgc.core.workflow.activiti.delegate.GetRelatedTermsDelegate"> <extensionElements> <activiti:field name="termId"> <activiti:expression><![CDATA[${item.id}]]></activiti:expression> </activiti:field> <activiti:field name="direction"> <activiti:string>true</activiti:string> </activiti:field> <activiti:field name="relationTypeId"> <activiti:string>"00000000-0000-0000-0000-000000007021"</activiti:string> </activiti:field> <activiti:field name="resultVariableName"> <activiti:string>"relatedAssets"</activiti:string> </activiti:field> </extensionElements> </serviceTask> |
API v2 |
---|
<scriptTask id="scripttask1" name="Get related terms" scriptFormat="groovy" activiti:autoStoreVariables="false"> <script><![CDATA[ import com.collibra.dgc.core.api.model.instance.Asset; import com.collibra.dgc.core.api.model.instance.Relation; import com.collibra.dgc.core.api.dto.instance.relation.FindRelationsRequest; assetId = item.id; direction = Boolean.TRUE; groupsRelationTypeId = string2Uuid("00000000-0000-0000-0000-000000007021"); List<Asset> relatedAssets = new ArrayList<>(); if (direction) { List<Relation> relations = relationApi.findRelations(FindRelationsRequest.builder() .sourceId(assetId) .relationTypeId(groupsRelationTypeId) .build()) .getResults(); for (Relation relation : relations) { relatedAssets.add(relation.getSource()); } } else { List<Relation> relations = relationApi.findRelations(FindRelationsRequest.builder() .targetId(assetId) .relationTypeId(groupsRelationTypeId) .build()) .getResults(); for (Relation relation : relations) { relatedAssets.add(relation.getTarget()); } } execution.setVariable("relatedAssets", relatedAssets); ]]></script> </scriptTask> |
GetUserNames
API v1 |
---|
<serviceTask id="servicetask1" name="Get user names" activiti:class="com.collibra.dgc.core.workflow.activiti.delegate.GetUserNames"> <extensionElements> <activiti:field name="userNames"> <activiti:expression><![CDATA[${userName}]]></activiti:expression> </activiti:field> <activiti:field name="userExpressions"> <activiti:expression><![CDATA[${role}]]></activiti:expression> </activiti:field> <activiti:field name="groupNames"> <activiti:expression><![CDATA[${group}]]></activiti:expression> </activiti:field> </extensionElements> </serviceTask> |
API v2 |
---|
<scriptTask id="scripttask1" name="Get user names" scriptFormat="groovy" activiti:autoStoreVariables="false"> <script><![CDATA[ import com.collibra.dgc.core.api.model.user.User; import com.collibra.dgc.core.api.model.usergroup.UserGroup; import com.collibra.dgc.core.api.dto.usergroup.FindUserGroupsRequest; Set<String> userNameResult = new HashSet<String>(); userNameResult.addAll(utility.toList("${userName}")); userNameResult.addAll(users.getUserNames("${role}")); List<UserGroup> userGroupList = userGroupApi.findUserGroups(FindUserGroupsRequest.builder() .name("${group}") .nameMatchMode(MatchMode.EXACT) .build()) .getResults() for (UserGroup userGroup : userGroupList) { List<User> userList = userApi.findUsers(FindUsersRequest.builder() .groupId(userGroup.getId()) .build()) .getResults() for (User user : userList) { userNameResult.add(user.getUserName()); } } execution.setVariable("assembledUserNames", userNameResult); ]]></script> </scriptTask> |
MailSender
API v1 |
---|
com.collibra.dgc.core.workflow.activiti.delegate.MailSender |
API v2 |
---|
com.collibra.dgc.workflow.api.listener.ActionMailSender |
ProvideDefaultsDelegate
API v1 |
---|
<serviceTask id="servicetask1" name="Check optional variables" activiti:class="com.collibra.dgc.core.workflow.activiti.delegate.ProvideDefaultsDelegate"> <extensionElements> <activiti:field name="names"> <activiti:string><![CDATA[resultTemplate,reminderTemplate]]></activiti:string> </activiti:field> <activiti:field name="defaults"> <activiti:string><![CDATA[result,reminder]]></activiti:string> </activiti:field> </extensionElements> </serviceTask> |
API v2 |
---|
<scriptTask id="scripttask1" name="Check Optional Variables" scriptFormat="groovy" activiti:autoStoreVariables="false"> <script><![CDATA[ import com.collibra.dgc.workflow.api.exception.WorkflowException List<String> namesList = utility.toList(execution.getVariable("names")) List<String> defaultsList = utility.toList(execution.getVariable("defaults")) if(namesList.size() != defaultsList.size()) { loggerApi.error("names list contains " + namesList.size() + " elements while the default values list contains " + defaultsList.size() + " elements. Those sizes should be equal.") String errorMessage = translation.getMessage("workflowNamesAndDefaultsSizeDontMatch",namesList.size(),defaultsList.size()) String errorTitle = translation.getMessage("workflowValueNotAllowed"); WorkflowException workflowException = new WorkflowException(errorMessage); ex.setTitleMessage(errorTitle); throw workflowException; } for (int i = 0; i < namesList.size(); i++) { String currentName = namesList.get(i).trim(); String currentDefault = defaultsList.get(i); if (!execution.hasVariable(currentName)) { execution.setVariable(currentName, currentDefault); } } ]]></script> </scriptTask> |
StartCollibraConnectFlowDelegate
API v1 |
---|
com.collibra.dgc.core.workflow.activiti.delegate.StartCollibraConnectFlowDelegate |
API v2 |
---|
com.collibra.dgc.workflow.api.delegate.StartCollibraConnectFlowDelegate |
StartWorkflowInstanceDelegate
API v1 |
---|
<serviceTask id="servicetask1" name="Start workflow" activiti:class="com.collibra.dgc.core.workflow.activiti.delegate.StartWorkflowInstanceDelegate"> <extensionElements> <activiti:field name="processId"> <activiti:string><![CDATA[subWorkflow]]></activiti:string> </activiti:field> <activiti:field name="resourceId"> <activiti:expression><![CDATA[${targetTermId}]]></activiti:expression> </activiti:field> <activiti:field name="resourceType"> <activiti:string><![CDATA[TE]]></activiti:string> </activiti:field> </extensionElements> </serviceTask> |
API v2 |
---|
<scriptTask id="scripttask1" name="Start workflow" scriptFormat="groovy" activiti:autoStoreVariables="false"> <script><![CDATA[ import com.collibra.dgc.core.api.dto.workflow.StartWorkflowInstancesRequest; import com.collibra.dgc.core.api.model.workflow.WorkflowBusinessItemType; def workflowDefinitionId = workflowDefinitionApi.getWorkflowDefinitionByProcessId(subWorkflow).getId(); workflowInstanceApi.startWorkflowInstances(StartWorkflowInstancesRequest.builder() .workflowDefinitionId(workflowDefinitionId) .addBusinessItemId(string2Uuid(${targetTermId})) .businessItemType(WorkflowBusinessItemType.valueOf("ASSET")) .build()) ]]></script> </scriptTask> |
TermIntakeDelegate
API v1 |
---|
<serviceTask id="servicetask1" name="Create Term" activiti:class="com.collibra.dgc.core.workflow.activiti.delegate.TermIntakeDelegate"> <extensionElements> <activiti:field name="signifier"> <activiti:expression>${signifier}</activiti:expression> </activiti:field> <activiti:field name="conceptType"> <activiti:expression>${conceptType}</activiti:expression> </activiti:field> <activiti:field name="vocabulary"> <activiti:expression>${intakeVocabulary}</activiti:expression> </activiti:field> <activiti:field name="definition"> <activiti:expression>${definition}</activiti:expression> </activiti:field> <activiti:field name="description"> <activiti:expression>${description}</activiti:expression> </activiti:field> <activiti:field name="example"> <activiti:expression>${example}</activiti:expression> </activiti:field> <activiti:field name="usesrelation"> <activiti:expression>${usesrelation}</activiti:expression> </activiti:field> <activiti:field name="note"> <activiti:expression>${note}</activiti:expression> </activiti:field> </extensionElements> </serviceTask> |
API v2 |
---|
<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> |