> 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/getrelations-and-removerelations-delegates.md).

# GetRelations and RemoveRelations delegates

The **GetRelations** and **RemoveRelations** delegate respectively gets and removes relations that can be identified by ID or source, term and type. Affected relations are returned with output variable.

| Field name           | Required                                                       | Description                                                                                                                 |
| -------------------- | -------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| relationId           | No                                                             | Id of the relation.                                                                                                         |
| sourceTermId         | No                                                             | Id of the source term of the relation.                                                                                      |
| targetTermId         | Id of the target term of the relation.                         |                                                                                                                             |
| binaryFactTypeId     | Id of the BinaryFactType, this is the ID of the relation type. |                                                                                                                             |
| resourceVariableName | 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:

* Get relations:

  ```
  \<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\>
  ```
* Remove relations:

  ```
  \<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\>
  ```
