npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

alfresco-js-api-node

v4.0.0-beta1

Published

JavaScript client library for the Alfresco REST API

Downloads

486

Readme

Alfresco JavaScript API Client

This project provides a JavaScript client API into the Alfresco REST API and Activiti REST API.

Full documentation of all the methods of each API

Prerequisites

To correctly use the alfresco js api the minimal supported version are:

  • 5.2.a-EA Alfresco Platform Repository (version 5.2.a-EA or newer)
  • 1.5 Activiti

Node

To correctly use the alfresco-js-api in node check that on your machine is running Node version 5.0.0 or higher.

Api Modules complete methods list

Install

Installer for browser versions:

npm install --save alfresco-js-api

Installer for node versions:

npm install --save alfresco-js-api-node

Use

Import library for node projects

var AlfrescoApi = require('alfresco-js-api-node');

Import library for browser projects

    <script src="node_modules/alfresco-js-api/dist/alfresco-js-api.min.js"></script>

    or for not minify version

    <script src="node_modules/alfresco-js-api/dist/alfresco-js-api.js"></script>

Authentication JS-API

Login

AlfrescoApi({alfrescoHost, activitiHost, contextRoot, ticket});

Property | Description | default value| ------------- | ------------- | -------------| hostEcm| (Optional value The Ip or Name of the host where your Alfresco instance is running )|http://127.0.0.1:8080 | hostBpm| (Optional value The Ip or Name of the host where your Activiti instance is running )|http://127.0.0.1:9999 | authType| (Optional value can be 'BASIC' or 'OAUTH') | 'BASIC'| oauth2| (Optional configuration for SSO) || contextRoot| (Optional value that define the context Root of the Alfresco ECM API default value is alfresco )|alfresco | contextRootBpm| (Optional value that define the context Root of the Activiti API default value is activiti-app )|alfresco | provider| (Optional value default value is ECM. This parameter can accept as value ECM BPM or ALL to use the API and Login in the ECM, Activiti BPM or Both )|alfresco | ticket| (Optional only if you want login with the ticket see example below)| | disableCsrf| To disable CSRF Token to be submitted. Only for Activiti call.| false | withCredentials| (Optional configuration for SSO, requires CORS on ECM) |false

Login with Username and Password BPM and ECM

Example

this.alfrescoJsApi = new AlfrescoApi({ provider:'ALL' });

this.alfrescoJsApi.login('admin', 'admin').then(function (data) {
    console.log('API called successfully Login in  BPM and ECM performed ');
}, function (error) {
    console.error(error);
});

Login with Username and Password ECM

Example

this.alfrescoJsApi = new AlfrescoApi();

this.alfrescoJsApi.login('admin', 'admin').then(function (data) {
    console.log('API called successfully Login ticket:' + data);
}, function (error) {
    console.error(error);
});

//The output will be: API called successfully Login ticket: TICKET_4479f4d3bb155195879bfbb8d5206f433488a1b1

Login with ticket

If you already know thw ticket when you invoke the constructor you can pass it as parameter in the constructor otherwise you can call the login with ticket that will validate the ticket against the server

Login with ticket ECM

This authentication validate also the ticket against the server

Example

var ticket = 'TICKET_4479f4d3bb155195879bfbb8d5206f433488a1b1';

this.alfrescoJsApi.loginTicket(ticket).then(function (data) {
             console.log('valid ticket you are logged in');
         }, function (error) {
             console.error(error);
         });

Login with ticket ECM/BPM as parameter in the constructor

With this authentication the ticket is not validated against the server

Example

//Login ticket ECM
this.alfrescoJsApi = new AlfrescoApi({ ticketEcm:'TICKET_4479f4d3bb155195879bfbb8d5206f433488a1b1',  hostEcm:'http://127.0.0.1:8080'});

//Login ticket BPM
this.alfrescoJsApi = new AlfrescoApi({ ticketBpm: 'Basic YWRtaW46YWRtaW4=',  hostBpm:'http://127.0.0.1:9999'});

//Login ticket ECM and BPM
this.alfrescoJsApi = new AlfrescoApi({ ticketEcm:'TICKET_4479f4d3bb155195879bfbb8d5206f433488a1b1', ticketBpm: 'Basic YWRtaW46YWRtaW4=',  hostEcm:'http://127.0.0.1:8080',  hostBpm:'http://127.0.0.1:9999'});

Login with Username and Password BPM

Example

this.alfrescoJsApi = new AlfrescoApi({ provider:'BPM' });

this.alfrescoJsApi.login('admin', 'admin').then(function (data) {
    console.log('API called successfully Login in Activiti BPM performed ');
}, function (error) {
    console.error(error);
});

Login with OAUTH2 Alfresco authorization server

Implicit Flow

If your want to be redirect to the authorization server and login there you can use the implicit flow to login

oauth2 properties

Property | Description | default value| ------------- | ------------- | -------------| host| Your oauth2 server URL| null | clientId| Your clientId oauth2 | null | secret| Your secret oauth2| null | scope| Your scope | null | implicitFlow| true/false | false | redirectUri| url to be redirect after login| null| redirectLogout| url to be redirect after logout optional, if is nor present the redirectUri will be used| null| refreshTokenTimeout| millisecond value, after how many millisecond youw ant refresh the token| 40000| redirectSilentIframeUri| url to be redirect after silent refresh login| /assets/silent-refresh.html | silentLogin| direct execute the implicit login without the need od call this.alfrescoJsApi.implicitLogin() method| false|

The alfresco-js-api will automatically redirect you to the login page anf refresh the token if necessary

Events

Property | Description | default value| ------------- | ------------- | -------------| implicit_redirect| triggered when the user is redirect to the auth server return url parameter of the redirect | | discovery| triggered when all the openId discovery url phase is terminated returnl an object with all the discovered url | | token_issued| triggered when a new token is issued| |

The alfresco-js-api will automatically redirect you to the login page anf refresh the token if necessary

Example

this.alfrescoJsApi = new AlfrescoApi({
        oauth2: {
            host: 'HOST_OAUTH2_SERVER',
            clientId: 'YOUR_CLIENT_ID',
            secret: 'SECRET',
            scope: 'openid',
            implicitFlow: true,
            redirectUri: 'YOUR_HOME_APP_URL',
            silentRefreshTimeout: '600000' //Optional parameter 10 minutes default value
        },
        authType: 'OAUTH',
        provider: 'ALL'
});

this.alfrescoJsApi.implicitLogin();

Example skip login form

this.alfrescoJsApi = new AlfrescoApi({
        oauth2: {
            host: 'HOST_OAUTH2_SERVER',
            clientId: 'YOUR_CLIENT_ID',
            secret: 'SECRET',
            scope: 'openid',
            implicitFlow: true,
            redirectUri: 'YOUR_HOME_APP_URL',
            silentRefreshTimeout: '600000' //Optional parameter 10 minutes default value,
            silentLogin: true
        },
        authType: 'OAUTH',
        provider: 'ALL'
});

Password Flow

If your auth endpoint is different from the standard one "/oauth/token" you can override it through the property authPath

Example

this.alfrescoJsApi = new AlfrescoApi({
        oauth2: {
            host: 'HOST_OAUTH2_SERVER',
            clientId: 'YOUR_CLIENT_ID',
            secret: 'SECRET',
            authPath:'my-custom-auth-endpoint/token'
        },
        authType: 'OAUTH',
        provider: 'ALL'
    });

this.alfrescoJsApi.login('admin', 'admin').then(function (data) {
   console.log('API called successfully Login in with authorization server performed ');
}, function (error) {
   console.error(error);
});

After the login if you want refresh your token you can use this call

Example

this.alfrescoJsApi.refreshToken()then(function (data) {
    console.log('Your token has been refreshed');
 }, function (error) {
    console.error(error);
 });

Logout

logout()

Example


this.alfrescoJsApi.logout().then(function (data) {
    console.log('Successfully Logout');
}, function (error) {
    console.error('Possible ticket already expired');
});

isLoggedIn

isLoggedIn()

return true if you are logged in false if you are not.

Example


var isLoggedIn = this.alfrescoJsApi.isLoggedIn();

if (isLoggedIn) {
    console.log('You are logged in');
} else {
    console.log('You are not logged in');
}

Get tickets

getTicketEcm()

After the log in you can retrieve you ECM ticket

 var ecmTicket = this.alfrescoJsApi.getTicketEcm() ;
 console.log('This is your  ECM ticket  ' + ecmTicket);

getTicketBpm()

After the log in you can retrieve you BPM ticket


 var bpmTicket  = this.alfrescoJsApi.getTicketBpm();
 console.log('This is your BPM ticket ' + bpmTicket);

Events login/logout

The login/logout are also an EventEmitter which you can register to listen to any of the following event types:

  • unauthorized (If this event is triggered a call to the Api was unauthorized)
  • success (If this event is triggered the login was success you can use this event instead the login promise)
  • logout (If this event is triggered the client is successfully logout)

Example


this.alfrescoJsApi.login('admin', 'admin').on('unauthorized', function(){
    console.log('You are unauthorized you can use this event to redirect to login');
});

this.alfrescoJsApi.login('admin', 'admin').on('success', function(){
    console.log('Success Login');
});

this.alfrescoJsApi.logout().on('logout', function(){
    console.log('Successfully Logout');
});

Custom Endpoint

Content service and process service has two different clients:

  • this.alfrescoJsApi.bpmClient
  • this.alfrescoJsApi.ecmClient

Both client expose a method *callApi

    callApi(path: string, httpMethod: string, pathParams?: any, queryParams?: any, headerParams?: any, formParams?: any, bodyParam?: any, authNames?: string[], contentTypes?: string[], accepts?: string[], returnType?: any, contextRoot?: string, responseType?: string): Promise<any>;

If you want call your custom rest point in one of those two service use the corrispondin client.

Example


    this.alfrescoJsApi.bpmClient.callApi(
        '/api/enterprise/app-version', 'GET',
        {}, {}, {}, {}, {},
        [],  ['application/json'], ['application/json'], {'String': 'String'}
    )

ECM

A complete list of all the ECM methods is available here : Core API. Below you can find some common examples.

Get Node content

getFileContent(nodeId, opts)

Returns the file content of the node with identifier nodeId.

Example


var nodeId = '80a94ac8-3ece-47ad-864e-5d939424c47c';

this.alfrescoJsApi.core.nodesApi.getFileContent(nodeId).then(function(data) {
    fs.writeFile('./test/grass.jpg', data, function(error) {
        if (error) {
            console.error(error);
            return;
        }
        console.log('The file was saved!');
    });
}, function(error) {
    console.error(error);
});

Get File or Folder Info

getNodeInfo(fileOrFolderId, opts)

Get information for the File/Folder with the identifier nodeId. The identifier of a node. You can also use one of these well-known aliases: -my- , -shared- or -root- as NodeId

Example


var fileOrFolderId = '80a94ac8-3ece-47ad-864e-5d939424c47c';

this.alfrescoJsApi.nodes.getNodeInfo(fileOrFolderId).then(function (data) {
    console.log('This is the name' + data.name );
}, function (error) {
    console.log('This node does not exist');
});

Get Folder Children Info

getNodeChildren(fileOrFolderId, opts)

Minimal information for each child is returned by default. You can use the include parameter to return additional information. returns a promise with the Info about the children of the node if resolved and {error} if rejected. You can also use one of these well-known aliases: -my- , -shared- or -root- as NodeId

Example


var folderNodeId = '80a94ac8-3ece-47ad-864e-5d939424c47c';

this.alfrescoJsApi.nodes.getNodeChildren(folderNodeId).then(function (data) {
    console.log('The number of children in this folder are ' + data.list.pagination.count );
}, function (error) {
    console.log('This node does not exist');
});

Create Folder

createFolder(name, relativePath, nodeIdParentFolder, opts)

createFolder return a promise that is resolved if the folder is created and {error} if rejected. You can also use one of these well-known aliases: -my- , -shared- or -root- as nodeIdParentFolder

Example


this.alfrescoJsApi.nodes.createFolder('newFolderName').then(function (data) {
    console.log('The folder is created in root');
}, function (error) {
    console.log('Error in creation of this folder or folder already exist' + error);
});


this.alfrescoJsApi.nodes.createFolder('newFolderName', 'folderA/folderB').then(function (data) {
    console.log('The folder is created in  folderA/folderB from root');
}, function (error) {
    console.log('Error in creation of this folder or folder already exist' + error);
});


var parentFolder = '80a94ac8-3ece-47ad-864e-5d939424c47c'

this.alfrescoJsApi.nodes.createFolder('newFolderName', 'folderA/folderB', parentFolder).then(function (data) {
    console.log('The folder is created in  folderA/folderB from parentFolder:' + parentFolder);
}, function (error) {
    console.log('Error in creation of this folder or folder already exist' + error);
});

CreateFolder With Auto Rename

createFolderAutoRename(name, relativePath, nodeIdParentFolder, opts)

is the same of createFolder(name, relativePath, nodeId, {autoRename: true}) is just syntactic sugar You can also use one of these well-known aliases: -my- , -shared- or -root- as nodeIdParentFolder

Example


this.alfrescoJsApi.nodes.createFolderAutoRename('newFolderName').then(function (data) {
    console.log('The folder is created in root');
}, function (error) {
    console.log('Error in creation of this folder' + error);
});

Upload File

uploadFile(fileDefinition, relativePath, nodeId, nodeBody, opts)

uploadFile return a promise that is resolved if the file is successful uploaded and {error} if rejected.

The fileDefinition provides information about files and allows JavaScript to access their content.

*Web File Definition File Definition are generally retrieved from a FileList object returned as a result of a user selecting files using the element

*Node File Definition File Definition are generally retrieved from a read Stram

Example


var fs = require('fs');

var fileToUpload = fs.createReadStream('./folderA/folderB/newFile.txt');

this.alfrescoJsApi.upload.uploadFile(fileToUpload)
    .then(function () {
        console.log('File Uploaded in the root');
    }, function (error) {
        console.log('Error during the upload' + error);
    });


this.alfrescoJsApi.upload.uploadFile(fileToUpload, null, null, null, {autoRename: true})
    .then(function () {
        console.log('File Uploaded in the root');
    }, function (error) {
        console.log('Error during the upload' + error);
    });


this.alfrescoJsApi.upload.uploadFile(fileToUpload, 'folderX/folderY/folderZ')
    .then(function () {
        console.log('File Uploaded in the from root folderX/folderY/folderZ');
    }, function (error) {
        console.log('Error during the upload' + error);
    });


var parentFolder = '80a94ac8-3ece-47ad-864e-5d939424c47c';

this.alfrescoJsApi.upload.uploadFile(fileToUpload, 'folderX/folderY/folderZ', parentFolder )
    .then(function () {
        console.log('File Uploaded in the from parentFolder ' + parentFolder + ' n folderX/folderY/folderZ');
    }, function (error) {
        console.log('Error during the upload' + error);
    });

The default behaviour of the Upload API will not create any thumbnail. In order to create a thumbnail you have to perform to pass the parameter javascript{renditions: 'doclib'} as in the example below. This parameter will basically perform also a call to the Rendition API. For more information about the Rendition API :


var fs = require('fs');

var fileToUpload = fs.createReadStream('./folderA/folderB/newFile.txt');

this.alfrescoJsApi.upload.uploadFile(fileToUpload, null, null, null, {renditions: 'doclib'})
    .then(function () {
        console.log('File Uploaded in the root');
    }, function (error) {
        console.log('Error during the upload' + error);
    });
  • To abort a file uploading

var fs = require('fs');

var fileToUpload = fs.createReadStream('./folderA/folderB/newFile.txt');

var promiseUpload = this.alfrescoJsApi.upload.uploadFile(fileToUpload)
    .once('abort', function () {
        console.log('File Uploaded aborted');
    });

promiseUpload.abort();

Events Upload File

The uploadFile is also an EventEmitter which you can register to listen to any of the following event types:

  • progress
  • success
  • abort
  • error
  • unauthorized

Example

var fs = require('fs');

var fileToUpload = fs.createReadStream('./folderA/folderB/newFile.txt');

this.alfrescoJsApi.upload.uploadFile(fileToUpload)
    .on('progress', (progress) => {
        console.log( 'Total :' + progress.total );
        console.log( 'Loaded :' + progress.loaded );
        console.log( 'Percent :' + progress.percent );
    })
    .on('success', () => {
       console.log( 'Your File is uploaded');
    });
    .on('abort', () => {
      console.log( 'Upload Aborted');
    })
    .on('error', () => {
      console.log( 'Error during the upload');
    })
    .on('unauthorized', () => {
    console.log('You are unauthorized');
    })

Delete File or Folder

deleteNode(fileOrFolderId)

Delete File/Folder with the identifier nodeId, if the nodeId is a folder, then its children are also deleted Deleted nodes move to the trash bin is still possible to recover it

Example


var fileOrFolderId = '80a94ac8-3ece-47ad-864e-5d939424c47c';

this.alfrescoJsApi.nodes.deleteNode(fileOrFolderId).then(function (data) {
    console.log('The file/folder is deleted');
}, function (error) {
    console.log('This node does not exist');
});

Delete File or Folder Permanent

deleteNodePermanent(fileOrFolderId)

Delete File/Folder with the identifier nodeId, if the nodeId is a folder, then its children are also deleted If Deleted Permanent is used will not be possible recover the files

Example


var fileOrFolderId = '80a94ac8-3ece-47ad-864e-5d939424c47c';

this.alfrescoJsApi.nodes.deleteNodePermanent(fileOrFolderId).then(function (data) {
    console.log('The file/folder is deleted');
}, function (error) {
    console.log('This node does not exist');
});

Get thumbnail Url

getDocumentThumbnailUrl(documentId)

Example


var thumbnailUrl = this.alfrescoJsApi.content.getDocumentThumbnailUrl('1a0b110f-1e09-4ca2-b367-fe25e4964a4');

Get preview Url

getDocumentPreviewUrl(documentId)

Example


var previewUrl = this.alfrescoJsApi.content.getDocumentPreviewUrl('1a0b110f-1e09-4ca2-b367-fe25e4964a4');

Get content Url

getContentUrl(documentId)

Example


var contentUrl = this.alfrescoJsApi.content.getContentUrl('1a0b110f-1e09-4ca2-b367-fe25e4964a4');

Custom web scripts call

For mor information about web scripts read the Wiki and the Wiki with Web ScriptsExamples

executeWebScript(httpMethod, scriptPath, scriptArgs, contextRoot, servicePath, postBody)

Anatomy of a Web Script URI http(s)://(host):(port)/(contextPath)/(servicePath)/(scriptPath)?(scriptArgs) A Web Script is simply a service bound to a URI which responds to HTTP methods such as GET, POST, PUT and DELETE. While using the same underlying code, there are broadly two kinds of Web Scripts.

Parameters

Name | Description ------------- | ------------- httpMethod | possible value GET, POST, PUT and DELETE scriptPath |path to Web Script (as defined by Web Script) scriptArgs |arguments to pass to Web Script contextRoot |path where application is deployed default value 'alfresco' servicePath |path where Web Script service is mapped default value 'service' postBody | post body


//Call a GET on a Web Scripts available at the following URIs: http://127.0.01:8080/alfresco/service/mytasks

this.alfrescoJsApi.core.webscriptApi.executeWebScript('GET', 'mytasks').then(function (data) {
   console.log('Data received form http://127.0.01:8080/alfresco/service/mytasks' + data);
}, function (error) {
   console.log('Error' + error);
});

//Call a GET on a Web Scripts available at the following URIs: http://127.0.01:8080/share/service/mytasks

this.alfrescoJsApi.core.webscriptApi.executeWebScript('GET', 'mytasks', null, 'share').then(function (data) {
   console.log('Data received form http://127.0.01:8080/share/service/mytasks' + data);
}, function (error) {
   console.log('Error' + error);
});

//Call a GET on a Web Scripts available at the following URIs: http://127.0.01:8080/share/differentServiceSlug/mytasks

this.alfrescoJsApi.core.webscriptApi.executeWebScript('GET', 'mytasks', null, 'share', 'differentServiceSlug').then(function (data) {
   console.log('Data received form http://127.0.01:8080/share/differentServiceSlug/mytasks' + data);
}, function (error) {
   console.log('Error' + error);
});

BPM

A complete list of all the BPM methods is available herActiviti API. Below you can find some common examples.

Task Api

Below you can find some example relative to the Activiti process api for all the possible method go to Task Api documentation

List Task

listTasks(requestNode)

return a list of task based on the requestNode query

Parameters

Name | Type | Description ------------- | ------------- | ------------- requestNode | Representation| requestNode

Example

var requestTasks = new this.alfrescoJsApi.activiti.TaskQueryRequestRepresentation();

this.alfrescoJsApi.activiti.taskApi.listTasks(requestTasks).then(function (data) {
 console.log('listTasks ' + data);
}, function (error) {
 console.log('Error' + error);
});

Get Task

getTask(taskId)

return the TaskRepresentation of single task by id

Parameters

Name | Type | Description ------------- | ------------- | ------------- taskId | String| taskId

Example


var taskId = '10'; // String | taskId

this.alfrescoJsApi.activiti.taskApi.getTask(taskId).then(function (data) {
    console.log('Task representation ' + data);
}, function (error) {
    console.log('Error' + error);
});

Filter Task

filterTasks(requestTasks)

return the ResultListDataRepresentation that is a list of all the task filered

Parameters

Name | Type | Description ------------- | ------------- | ------------- requestTasks | TaskFilterRequestRepresentation| requestTasks

Example


var requestTasks = new this.alfrescoJsApi.activiti.TaskFilterRequestRepresentation();
requestTasks.appDefinitionId = 1;

this.alfrescoJsApi.activiti.taskApi.filterTasks(requestTasks).then(function (data) {
    console.log('Task filter list ' + data);
}, function (error) {
    console.log('Error' + error);
});

Complete Task

completeTask(taskId)

To complete a task (standalone or without a task form) :

Parameters

Name | Type | Description ------------- | ------------- | ------------- taskId | String| taskId

Example


var taskId = '10'; // String | taskId

this.alfrescoJsApi.activiti.taskApi.completeTask(taskId).then(function () {
    console.log('Task completed');
}, function (error) {
    console.log('Error' + error);
});

Get Task Form

getTaskForm(taskId)

Retrieve the Task Form representation. FormDefinitionRepresentation

Parameters

Name | Type | Description ------------- | ------------- | ------------- taskId | String| taskId

Example


var taskId = '10'; // String | taskId

this.alfrescoJsApi.activiti.taskApi.getTaskForm(taskId).then(function (data) {
   console.log('Task form representation' + data);
}, function (error) {
   console.log('Error' + error);
});

Complete Task Form

completeTaskForm(taskId, completeTaskFormRepresentation)

Complete a Task Form

Parameters

Name | Type | Description ------------- | ------------- | ------------- taskId | String| taskId completeTaskFormRepresentation | CompleteFormRepresentation| completeTaskFormRepresentation

Example


var taskId = '10'; // String | taskId

this.alfrescoJsApi.activiti.taskApi.completeTaskForm(taskId, completeTaskFormRepresentation).then(function () {
    console.log('Task completed');
}, function (error) {
    console.log('Error' + error);
});

Process Api

Below you can find some example relative to the Activiti process api for all the possible method go to Process Api documentation

Get Process Instances

getProcessInstances(requestNode)

Retrieve a list of process instances ResultListDataRepresentation

Parameters

Name | Type | Description ------------- | ------------- | ------------- requestNode | ProcessFilterRequestRepresentation| requestNode

Example

var requestNode = new this.alfrescoJsApi.activiti.ProcessFilterRequestRepresentation();

this.alfrescoJsApi.activiti.processApi.getProcessInstances(requestNode).then(function (data) {
    console.log('All processes' + data);
}, function (error) {
    console.log('Error' + error);
});

Filtered process:

 var requestNode = new this.alfrescoJsApi.activiti.ProcessFilterRequestRepresentation();

requestNode.page = 0;
requestNode.sort = 'created-desc';
requestNode.state = 'completed';

this.alfrescoJsApi.activiti.processApi.getProcessInstances(requestNode).then(function (data) {
   console.log('All processes completed' + data);
}, function (error) {
   console.log('Error' + error);
});

Models Api

Below you can find some example relative to the Activiti process api for all the possible method go to Task Api documentation

Get Model

getModel(modelId, opts)

To retrieve details about a particular model (process, form, decision rule or app) return a ModelRepresentation

Parameters

Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- modelId | Integer| modelId | includePermissions | Boolean| includePermissions | [optional]

Example


var opts = {
    'filter': 'myReusableForms',
    'modelType': 2
};

this.alfrescoJsApi.activiti.modelsApi.getModels(opts).then(function (data) {
    console.log('All your reusable forms' + data);
 }, function (error) {
    console.log('Error' + error);
 });

Report Api

Below you can find some example relative to the Activiti report api for all the possible method go to Report Api documentation

Create default Reports

createDefaultReports()

Create the default reports

Parameters

No parameters required.

Example


this.alfrescoJsApi.activiti.reportApi.createDefaultReports();

Get Reports

getReportList()

Retrieve the available report list

Parameters

No parameters required.

Example


this.alfrescoJsApi.activiti.reportApi.getReportList();

Report Params

getReportParams(reportId)

Retrieve the parameters referring to the reportId.

Parameters

Name | Type | Description | Notes| ------------- | ------------- | ------------- | -------------| reportId | String| reportId ||

Example


var reportId = "1"; // String | reportId

this.alfrescoJsApi.activiti.reportApi.getReportParams(reportId);

Report Process Definitions

getProcessDefinitions()

Retrieve the process definition list for all the apps.

Parameters

No parameters required.

Example


this.alfrescoJsApi.activiti.reportApi.getProcessDefinitions();

Tasks of process definition

getTasksByProcessDefinitionId(reportId, processDefinitionId)

Retrieves all tasks that refer to the processDefinitionId

Parameters

Name | Type | Description | Notes| ------------- | ------------- | ------------- | -------------| reportId | String| reportId || processDefinitionId | String| process definition id ||

Example


var reportId = "1"; // String | reportId
var processDefinitionId = "1"; // String | processDefinitionId

this.alfrescoJsApi.activiti.reportApi.getTasksByProcessDefinitionId(reportId, processDefinitionId);

Generate reports

getReportsByParams(reportId, paramsQuery)

Generate the reports based on the input parameters

Parameters

Name | Type | Description | Notes| ------------- | ------------- | ------------- | -------------| reportId | String| reportId || paramsQuery | Object| Query parameters ||

Example


var reportId = "1"; // String | reportId
var paramsQuery = {status: 'ALL'}; // Object | paramsQuery

this.alfrescoJsApi.activiti.reportApi.getReportsByParams(reportId, paramsQuery);

Update report details

updateReport(reportId, name)

Update the report details

Parameters

Name | Type | Description | Notes ------------- | ------------- | ------------- | -------------| reportId | String| reportId || name | String| The report name ||

Example


var reportId = "1"; // String | reportId
var name = "new Fake name"; // String | reportId

this.alfrescoJsApi.activiti.reportApi.updateReport(reportId, name);

Export to csv

exportToCsv(reportId, queryParms)

Export a report as csv

Parameters

Name | Type | Description | Notes ------------- | ------------- | ------------- | -------------| reportId | String| reportId || queryParms | Object| Query parameters ||

Example


var reportId = "1"; // String | reportId
var queryParms = {
            'processDefinitionId': 'TEST:99:999',
            'dateRange': {
                'startDate': '2017-01-01T00:00:00.000Z',
                'endDate': '2017-01-24T23:59:59.999Z',
                'rangeId': 'currentYear'
            },
            'slowProcessInstanceInteger': 10,
            'status': 'All',
            '__reportName': 'FAKE_REPORT_NAME'
        };

this.alfrescoJsApi.activiti.reportApi.exportToCsv(reportId, queryParms);

Save Report

saveReport(reportId, queryParams)

Save a report

Parameters

Name | Type | Description | Notes ------------- | ------------- | ------------- | -------------| reportId | String| reportId || queryParms | Object| Query parameters ||

Example


var reportId = "1"; // String | reportId
var queryParms = {
            'processDefinitionId': 'TEST:99:999',
            'dateRange': {
                'startDate': '2017-01-01T00:00:00.000Z',
                'endDate': '2017-01-24T23:59:59.999Z',
                'rangeId': 'currentYear'
            },
            'slowProcessInstanceInteger': 10,
            'status': 'All',
            '__reportName': 'FAKE_REPORT_NAME'
        };

this.alfrescoJsApi.activiti.reportApi.saveReport(reportId, queryParms);

Delete report

deleteReport(reportId)

Delete a report

Parameters

Name | Type | Description | Notes | ------------- | ------------- | ------------- | ------------- | reportId | String| reportId | |

Example


var reportId = "1"; // String | reportId

this.alfrescoJsApi.activiti.reportApi.deleteReport(reportId);

Error Events

The alfresco-js-api has an error handler event where you can subscribe

Example

    this.alfrescoJsApi.on('error', (error) => {
        console.log(error)
    })

Development

  • To run the build

    $ npm run build

  • To run the build in watch mode

    $ npm run watchify

  • To run the test

    $ npm run test

  • To run the test coverage

    $ npm run coverage

Release History

Read the [Changelog] (./CHANGELOG.md)