Basic concepts

Authentication

The first lines in your .NET code should be used to create the Webservices object.

We suggest using this method:

OKMWebservices ws = OKMWebservicesFactory.newInstance(host);

ws.login(user,password);

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

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); System.Console.WriteLine(ws.getAppVersion().getVersion()); } catch (RepositoryException e) { System.Console.WriteLine(e.ToString()); } catch (DatabaseException e) { System.Console.WriteLine(e.ToString()); } catch (UnknowException e) { System.Console.WriteLine(e.ToString()); } catch (WebserviceException e) { System.Console.WriteLine(e.ToString()); }
System.Console.ReadKey(); } } }

Accessing API

OpenKM API classes are under com.openkm package, as can shown at this javadoc API summary.

At main url http://docs.openkm.com/javadoc/ you'll see all available javadoc documentation.

At the moment of writing this page, the actual OpenKM version was 7.1.5 what can change on time.

There is a direct correspondence between the classes and methods into, implemented at com.openkm.api packages and available from SDK for .NET.

OpenKM API classes:

OpenKM API classDescriptionSupportedImplementationInterface

OKMActivity

Manages the activity log.

Yes

ActivityImpl.cs

BaseActivity.cs

OKMAuth

Manages security and users. For example, add or remove grants on a node, create or modify users or getting the profiles.

Yes

AuthImpl.cs

BaseAuth.cs

OKMBookmark

Manages the user bookmarks.

Yes

(*)

 

OKMDashboard

Manages all data shown at dashboard.

Yes

(*)

 

OKMDocument

Manages documents. For example create, move or delete a document.

Yes

DocumentImpl.cs

BaseDocument.cs

OKMFolder

Manages folders. For example create, move or delete a folder.

Yes

FolderImpl.cs

BaseFolder.cs

OKMMail

Manages mails. For example create, move or delete a mails.

Yes

MailImpl.cs

BaseMail.cs

OKMNode

Manages general purpose node actions.

Yes

(*)

 

OKMNote

Manages notes on any node type. For example create, edit or delete a note on a document, folder, mail or record.

Yes

NoteImpl.cs

BaseNote.cs

OKMNotification

Manages notifications. For example add or remove subscriptions on a document or a folder.

Yes

NotificationImpl.cs

BaseNotification.cs

OKMProperty

Manages categories and keywords. For example add or remove keywords on a document, folder, mail or record.

Yes

PropertyImpl.cs

BaseProperty.cs

OKMPropertyGroup

Manages metadata. For example add metadata group, set metadata fields.

Yes

PropertyGroupImpl.cs

BasePropertyGroup.cs

OKMRecord

Manages records. For example create, move or delete a record. 

Yes

RecordImpl.cs

BaseRecord.cs

OKMRelation

Manages relations between nodes. For example create a relation ( parent-child ) between two documents.

Yes

RelationImpl.cs

BaseRelation.cs

OKMRepository

A lot of material related with repository. For example get the properties of main root node ( /okm:root ).

Yes

RepositoryImpl.cs

BaseRepository.cs

OKMReport

Manages reports. For example execute reports.

Yes

(*) 

 

OKMSearch

Manages search feature. For example manage saved queries or perform a new query to the repository.

Yes

SearchImpl.cs

BaseSearch.cs

OKMStamp

Manages stamp.

Yes

(*)

 

OKMStats

General stats of the repository.

No

   

OKMTask

Manages task. For example create a new task.

Yes

(*)

 

OKMUserConfig

Manages user home configuration.

No

   

OKMWorkflow

Manages workflows. For example execute a new workflow.

Yes

WorkflowImpl.cs

BaseWorkflow.cs

 (*) Indicate that exist REST support for it, but still not implemented into the SDK.

Class Hierarchy

Packages detail:

NameDescription

com.openkm.sdk4csharp

The  com.openkm.OKMWebservicesFactory that returns an com.openkm.OKMWebservices object which implements all interfaces.

OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);

com.openkm.sdk4csharp.bean

Contains all classes result of unmarshalling REST objects.

com.openkm.sdk4csharp.definition

All interface classes:

  • com.openkm.sdk4csharp.definition.BaseActivity
  • com.openkm.sdk4csharp.definition.BaseAuth
  • com.openkm.sdk4csharp.definition.BaseDocument
  • com.openkm.sdk4csharp.definition.BaseFolder
  • com.openkm.sdk4csharp.definition.BaseMail
  • com.openkm.sdk4csharp.definition.BaseNote
  • com.openkm.sdk4csharp.definition.BaseProperty
  • com.openkm.sdk4csharp.definition.BasePropertyGroup
  • com.openkm.sdk4csharp.definition.BaseRecord
  • com.openkm.sdk4csharp.definition.BaseRelation
  • com.openkm.sdk4csharp.definition.BaseRepository
  • com.openkm.sdk4csharp.definition.BaseSearch
  • com.openkm.sdk4csharp.definition.BaseWorkflow

com.openkm.sdk4csharp.impl

All interface implementation classes:

  • com.openkm.sdk4csharp.impl.AuthImpl
  • com.openkm.sdk4csharp.impl.DocumentImpl
  • com.openkm.sdk4csharp.impl.FolderImpl
  • com.openkm.sdk4csharp.impl.MailImpl
  • com.openkm.sdk4csharp.impl.NoteImpl
  • com.openkm.sdk4csharp.impl.PropertyGroupImpl
  • com.openkm.sdk4csharp.impl.PropertyImpl
  • com.openkm.sdk4csharp.impl.RecordImpl
  • com.openkm.sdk4csharp.impl.RelationImpl
  • com.openkm.sdk4csharp.impl.RepositoryImpl
  • com.openkm.sdk4csharp.impl.SearchImpl
  • com.openkm.sdk4csharp.impl.WorkflowImpl

com.openkm.sdk4csharp.util

A couple of utilities.

The class com.openkm.sdk4csharp.util.ISO8601 should be used to set and parse metadata date fields.

com.openkm.sdk4csharp.exception

All exception classes.