> For the complete documentation index, see [llms.txt](https://developer.collibra.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.collibra.com/workflows/designing-workflows/processes/shape-repository/service-task/delegates/addrelation-delegate.md).

# AddRelation delegate

The **AddRelation** delegate adds relation of given type between source and term. Added relation is returned with output variable.

| Field name         | Required | Description                                                                                                                  |
| ------------------ | -------- | ---------------------------------------------------------------------------------------------------------------------------- |
| sourceTermId       | Yes      | Id of the source term of the relation.                                                                                       |
| targetTermId       | Yes      | Id of the target term of the relation.                                                                                       |
| binaryFactTypeId   | Yes      | Id of the BinaryFactType, this is the ID of the relation type.                                                               |
| resultVariableName | No       | 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="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>
```
