Relation samples

Basics

On most methods, you'll see the parameter named "nodeId". The value of this parameter can be a valid document, folder, mail or record UUID or path.

Example of nodeId:

  • Using UUID -> "f123a950-0329-4d62-8328-0ff500fd42db"

Suggested code sample

First, you must create the webservice object:

OKMWebservices ws = OKMWebservicesFactory.newInstance(host);

Then you should log in using the method "login". You can access the "login" method from the webservice object "ws" as shown below:

ws.login(user, password);

Once logged in to the webservice, the session is kept in the webservice object. Then you can use the other API methods.

At this point, you can use all the Relation methods from the "relation" class as shown below:

ws.relation.getRelationTypes(RelationType.BIDIRECTIONAL);

Methods

getRelationTypes

Description:

MethodReturn valuesDescription

getRelationTypes(String type)

List<RelationType>

Retrieves a list of all relations defined for a type.

Available types:

  • RelationType.BIDIRECTIONAL
  • RelationType.PARENT_CHILD
  • RelationType.MANY_TO_MANY

More information on Relation types.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
             try {
ws.login(user, password); foreach (RelationType type in ws.relation.getRelationTypes(RelationType.PARENT_CHILD)) { System.Console.WriteLine(type); } } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

add

Description:

MethodReturn valuesDescription

add(String nodeAId, String nodeBId, long relTypeId)

void

Sets a relation between two nodes.

The parameters nodeAId and nodeBId should be any valid document, folder, mail, or record UUID.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
             try {
ws.login(user, password); foreach (RelationType type in ws.relation.getRelationTypes(RelationType.BIDIRECTIONAL)) { // looking for a relation named invoice if (type.title.Equals("invoice")) { ws.relation.add("50b7a5b9-89d2-430e-bbc9-6a6e01662a71", "055e4384-7c70-4456-b32b-f5a55a79861f", type.id); } } } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

delete

Description:

MethodReturn valuesDescription

delete(long relationId)

void

Deletes a relationship.

A relation can be deleted only when no node uses it. Otherwise, you'll get an error.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
             try {
ws.login(user, password); foreach (RelationType type in ws.relation.getRelationTypes(RelationType.BIDIRECTIONAL)) { // looking for a relation named invoice if (type.title.Equals("invoice")) { ws.relation.delete(type.id); } } } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

getRelations

Description:

MethodReturn valuesDescription

getRelations(String uuid)

List<Relation>

Retrieves a list of all relations of a node.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host);
             try {
ws.login(user, password); foreach (Relation relation in ws.relation.getRelations("055e4384-7c70-4456-b32b-f5a55a79861f")) { System.Console.WriteLine(relation); } } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

getRelationGroups

Description:

MethodReturn valuesDescription

getRelationGroups(String uuid)

List<RelationGroup>

Retrieves a list of all relation groups for a node.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
             try {
ws.login(user, password); foreach (RelationGroup rGroup in ws.relation.getRelationGroups("055e4384-7c70-4456-b32b-f5a55a79861f")) { System.Console.WriteLine(rGroup.toString()); } } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

addGroup

Description:

MethodReturn valuesDescription

addGroup(String nodeId, String groupName, long type)

void

Adds a relation group to a node.

For a relation group, it only makes sense to apply the relation type RelationType.MANY_TO_MANY.

More information on Relation types.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
             try {
ws.login(user, password); foreach (RelationType type in ws.relation.getRelationTypes(RelationType.MANY_TO_MANY)) { if (type.title.Equals("staple")) { ws.relation.addGroup("055e4384-7c70-4456-b32b-f5a55a79861f", "staple group", type.id); } } } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

addNodeToGroup

Description:

MethodReturn valuesDescription

addNodeToGroup(String nodeId, long groupId)

void

Adds a node to an existing relation group.

A relation group only makes sense with the relation type RelationType.MANY_TO_MANY.

More information on Relation types.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host);
             try {
ws.login(user, password); foreach (RelationGroup rGroup in ws.relation.getRelationGroups("055e4384-7c70-4456-b32b-f5a55a79861f")) { if (rGroup.name.Equals("staple group")) { ws.relation.addNodeToGroup("50b7a5b9-89d2-430e-bbc9-6a6e01662a71", rGroup.id); } } } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

deleteGroup

Description:

MethodReturn valuesDescription

deleteGroup(long groupId)

void

Removes a node from a relation group.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host);
             try {
ws.login(user, password); foreach (RelationGroup rGroup in ws.relation.getRelationGroups("50b7a5b9-89d2-430e-bbc9-6a6e01662a71")) { if (rGroup.name.Equals("staple group")) { ws.relation.deleteGroup(rGroup.id); } } } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

getGroup

Description:

MethodReturn valuesDescription

getGroup(long groupId)

RelationGroup

Finds a relation group by ID.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host);  
             try {
ws.login(user, password);
RelationGroup rg = new RelationGroup();
foreach (RelationGroup rGroup in ws.getRelationGroups("50b7a5b9-89d2-430e-bbc9-6a6e01662a71"))
{
if (rGroup.name.Equals("staple group3"))
{
rg = ws.relation.getGroup(rGroup.id);
break;
}
} } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

setGroupName

Description:

MethodReturn valuesDescription

setGroupName(long groupId, String groupName)

void

Changes the relation group name.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host);
             try {
ws.login(user, password);
RelationGroup rg = new RelationGroup();
foreach (RelationGroup rGroup in ws.relation.getRelationGroups("50b7a5b9-89d2-430e-bbc9-6a6e01662a71"))
{
if (rGroup.name.Equals("staple group3"))
{
ws.relation.setGroupName(rGroup.id, "newGroup");
rg = ws.relation.getGroup(rGroup.id);
break;
}
} } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

getAllRelationGroups

Description:

MethodReturn valuesDescription

getAllRelationGroups(int relationTypeId, String filter, int offset, int limit)

RelationGroupResultSet

Retrieves a list of all relation groups.

The parameters "limit" and "offset" allow you to retrieve just a portion of the results of a query.

  • The parameter "limit" limits the number of results returned.
  • The parameter "offset" specifies how many results to skip before beginning to return results.

For example, if your query has 1000 results, but you only want to return the first 10, you should use these values:

  • limit=10
  • offset=0

Now suppose you want to show the results from 11-20; you should use these values:

  • limit=10
  • offset=10

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
             try {
ws.login(user, password);
int relationTypeId = 1;
String filter = ""; RelationGroupResultSet resultSet = ws.relation.getAllRelationGroups(relationTypeId, filter, 0, 10);
foreach (RelationGroup relationGroup in resultSet.results)
{
Console.WriteLine(relationGroup.toString());
} } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

deleteItemFromGroup

Description:

MethodReturn valuesDescription

deleteItemFromGroup(String nodeId, long groupId)

void

Removes a node from a relation group.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
             try {
ws.login(user, password); foreach (RelationGroup rGroup in ws.relation.getRelationGroups("50b7a5b9-89d2-430e-bbc9-6a6e01662a71"))
{
if (rGroup.name.Equals("staple group3"))
{
ws.relation.deleteItemFromGroup("50b7a5b9-89d2-430e-bbc9-6a6e01662a71", rGroup.id);
}
} } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }