Workflow samples

For almost all examples has been used the Purchase workflow sample.

Methods

registerProcessDefinition

Description:

MethodReturn valuesDescription

registerProcessDefinition($content)

void

Register a new workflow.

Parameters:

$content string type is recommend using file_get_contents — Reads entire file into a string

Example:

<?php

include '../src/openkm/OpenKM.php';

ini_set('display_errors', true);
error_reporting(E_ALL);

use openkm\OKMWebServicesFactory;
use openkm\OpenKM;

class ExampleWorkflow {

    const HOST = "http://localhost:8080/OpenKM/";
    const USER = "okmAdmin";
    const PASSWORD = "admin";

    private $ws;

    public function __construct() {
        $this->ws = OKMWebServicesFactory::build(self::HOST, self::USER, self::PASSWORD);
    }

    public function testRegisterProcessDefinition() {
        try {
            $fileName = dirname(__FILE__) . '/workflow/Purchase.par';            
            $this->ws->registerProcessDefinition(file_get_contents($fileName));
            var_dump('Register Definition correct');
        } catch (Exception $e) {
            var_dump($e);
        }
    }

}

$openkm = new OpenKM(); //autoload
$exampleWorkflow = new ExampleWorkflow();
$exampleWorkflow->testRegisterProcessDefinition();
?>

deleteProcessDefinition

Description:

MethodReturn valuesDescription

deleteProcessDefinition($pdId)

void

Deletes a workflow.

Parameters:

$pdId integer type is a valid workflow process definition.

Example:

<?php

include '../src/openkm/OpenKM.php';

ini_set('display_errors', true);
error_reporting(E_ALL);

use openkm\OKMWebServicesFactory;
use openkm\OpenKM;

class ExampleWorkflow {

    const HOST = "http://localhost:8080/OpenKM/";
    const USER = "okmAdmin";
    const PASSWORD = "admin";

    private $ws;

    public function __construct() {
        $this->ws = OKMWebServicesFactory::build(self::HOST, self::USER, self::PASSWORD);
    }

    public function testDeleteProcessDefinition() {
        try {
            $pdId = 11; // Valid workflow process definition
            $this->ws->deleteProcessDefinition($pdId);
            var_dump('Delete Process Definition correct');
        } catch (Exception $e) {
            var_dump($e);
        }
    }

}

$openkm = new OpenKM(); //autoload
$exampleWorkflow = new ExampleWorkflow();
$exampleWorkflow->testDeleteProcessDefinition();
?>

getProcessDefinition

Description:

MethodReturn valuesDescription

getProcessDefinition($pdId)

ProcessDefinition

Returns a workflow process definition.

Parameters:

$pdId integer type is a valid workflow process definition.

Example:

<?php

include '../src/openkm/OpenKM.php';

ini_set('display_errors', true);
error_reporting(E_ALL);

use openkm\OKMWebServicesFactory;
use openkm\OpenKM;

class ExampleWorkflow {

    const HOST = "http://localhost:8080/OpenKM/";
    const USER = "okmAdmin";
    const PASSWORD = "admin";

    private $ws;

    public function __construct() {
        $this->ws = OKMWebServicesFactory::build(self::HOST, self::USER, self::PASSWORD);
    }

    public function testGetProcessDefinition() {
        try {
            $pdId = 83; // Valid workflow process definition
            $processDefiniton = $this->ws->getProcessDefinition($pdId);
            var_dump($processDefiniton);
        } catch (Exception $e) {
            var_dump($e);
        }
    }

}

$openkm = new OpenKM(); //autoload
$exampleWorkflow = new ExampleWorkflow();
$exampleWorkflow->testGetProcessDefinition();
?>

runProcessDefinition

Description:

MethodReturn valuesDescription

runProcessDefinition($pdId, $uuid, $formElements = array)

ProcessInstance

Executes a workflow on some node and Returns a workflow process instance

Parameters:

$pdId int type is a valid workflow process definition.

$uuid string type is the uuid or path of the document, folder, mail or record.

$formElements array type are form element values needed for starting the workflow ( not all workflows need form values for starting ).

Example:

<?php

include '../src/openkm/OpenKM.php';

ini_set('display_errors', true);
error_reporting(E_ALL);

use openkm\OKMWebServicesFactory;
use openkm\OpenKM;

class ExampleWorkflow {

    const HOST = "http://localhost:8080/OpenKM/";
    const USER = "okmAdmin";
    const PASSWORD = "admin";

    private $ws;

    public function __construct() {
        $this->ws = OKMWebServicesFactory::build(self::HOST, self::USER, self::PASSWORD);
    }

    public function testRunProcessDefinition() {
        try {
            $pdId = 91; // Valid workflow process definition
            // Same modification with only affected FormElement
            $formElements = array();
            $price = new \openkm\bean\form\Input();
            $price->setName("price");
            $price->setValue(1000);
            $formElements[] = $price;
            
            $textArea = new \openkm\bean\form\TextArea();
            $textArea->setName("description");
            $textArea->setValue("some description here");
            $formElements[] = $textArea;            

            $processInstance = $this->ws->runProcessDefinition($pdId, '8e66f95b-90b4-474b-b70b-92b0f290e0b2', $formElements);
            var_dump($processInstance);
        } catch (Exception $e) {
            var_dump($e);
        }
    }
}

$openkm = new OpenKM(); //autoload
$exampleWorkflow = new ExampleWorkflow();
$exampleWorkflow->testRunProcessDefinition();
?>

FindAllProcessDefinitions

Description:

MethodReturn valuesDescription

findAllProcessDefinitions()

array(ProcessDefinition)

Retrieves a list of all registered workflows definitions.

Example:

<?php

include '../src/openkm/OpenKM.php';

use openkm\OKMWebServicesFactory;
use openkm\OpenKM;

class ExampleWorkflow {

    const HOST = "http://localhost:8080/OpenKM/";
    const USER = "okmAdmin";
    const PASSWORD = "admin";

    private $ws;

    public function __construct() {
        $this->ws = OKMWebServicesFactory::build(self::HOST, self::USER, self::PASSWORD);
    }

    public function testFindAllProcessDefinitions() {
        try {
            $processDefinitions = $this->ws->findAllProcessDefinitions();
            foreach ($processDefinitions as $processDefinition){
                var_dump($processDefinition);
            }
        } catch (Exception $e) {
            var_dump($e);
        }
    }

}

$openkm = new OpenKM(); //autoload
$exampleWorkflow = new ExampleWorkflow();
$exampleWorkflow->testFindAllProcessDefinitions();
?>

findProcessInstances

Description:

MethodReturn valuesDescription

findProcessInstances($pdId)

array(ProcessInstance)

Retrieves a list of all process instances of some registered workflows definition.

Parameters:

$pdId int type is a valid workflow process definition.

Example:

<?php

include '../src/openkm/OpenKM.php';

ini_set('display_errors', true);
error_reporting(E_ALL);

use openkm\OKMWebServicesFactory;
use openkm\OpenKM;

class ExampleWorkflow {

    const HOST = "http://localhost:8080/OpenKM/";
    const USER = "okmAdmin";
    const PASSWORD = "admin";

    private $ws;

    public function __construct() {
        $this->ws = OKMWebServicesFactory::build(self::HOST, self::USER, self::PASSWORD);
    }

    public function testFindProcessInstances() {
        try {
            // Get all workflow definitions
            $processDefinitions = $this->ws->findAllProcessDefinitions();
            foreach ($processDefinitions as $processDefinition) {
                echo '<h2>WF definition</h2>';
                var_dump($processDefinition);  
                // Get all process of some workflow definition              
                $processInstances = $this->ws->findProcessInstances($processDefinition->getId());
                foreach ($processInstances as $processInstance) {
                    echo '<h2>Process Instance</h2>';
                    var_dump($processInstance);
                }
            }
        } catch (Exception $e) {
            var_dump($e);
        }
    }
   
}

$openkm = new OpenKM(); //autoload
$exampleWorkflow = new ExampleWorkflow();
$exampleWorkflow->testFindProcessInstances();
?>

findLatestProcessDefinitions

Description:

MethodReturn valuesDescription

findLatestProcessDefinitions()

array(ProcessDefinition)

Retrieves a list of the last workflows definitions.

Can be several versions of the same workflow registered.

Example:

<?php

include '../src/openkm/OpenKM.php';

use openkm\OKMWebServicesFactory;
use openkm\OpenKM;

class ExampleWorkflow {

    const HOST = "http://localhost:8080/OpenKM/";
    const USER = "okmAdmin";
    const PASSWORD = "admin";

    private $ws;

    public function __construct() {
        $this->ws = OKMWebServicesFactory::build(self::HOST, self::USER, self::PASSWORD);
    }

    public function testFindLatestProcessDefinitions() {
        try {
            // Get all latest workflow definitions
            $processDefinitions = $this->ws->findLatestProcessDefinitions();
            foreach ($processDefinitions as $processDefinition){
                var_dump($processDefinition);
            }
        } catch (Exception $e) {
            var_dump($e);
        }
    }

}

$openkm = new OpenKM(); //autoload
$exampleWorkflow = new ExampleWorkflow();
$exampleWorkflow->testFindLatestProcessDefinitions();
?>

findLastProcessDefinition

Description:

MethodReturn valuesDescription

findLastProcessDefinition($name)

ProcessDefinition

Retrieves last workflow definition of some specific workflow.

Parameters:

$name string type Identify an specific workflow definitions group.

Several workflow definition versions they have the same name.

Example:

<?php

include '../src/openkm/OpenKM.php';

use openkm\OKMWebServicesFactory;
use openkm\OpenKM;

class ExampleWorkflow {

    const HOST = "http://localhost:8080/OpenKM/";
    const USER = "okmAdmin";
    const PASSWORD = "admin";

    private $ws;

    public function __construct() {
        $this->ws = OKMWebServicesFactory::build(self::HOST, self::USER, self::PASSWORD);
    }

    public function testFindLastProcessDefinition() {
        try {
            $processInstance = $this->ws->findLastProcessDefinition("purchase");
            var_dump($processInstance);
        } catch (Exception $e) {
            var_dump($e);
        }
    }       

}

$openkm = new OpenKM(); //autoload
$exampleWorkflow = new ExampleWorkflow();
$exampleWorkflow->testFindLastProcessDefinition();
?>

getProcessInstance

Description:

MethodReturn valuesDescription

getProcessInstance($piId)

ProcessInstance

Returns the process instance.

Parameters:

$pdId string type is a valid process instance id.

Example:

<?php

include '../src/openkm/OpenKM.php';

use openkm\OKMWebServicesFactory;
use openkm\OpenKM;

class ExampleWorkflow {

    const HOST = "http://localhost:8080/OpenKM/";
    const USER = "okmAdmin";
    const PASSWORD = "admin";

    private $ws;

    public function __construct() {
        $this->ws = OKMWebServicesFactory::build(self::HOST, self::USER, self::PASSWORD);
    }

    public function testGetProcessInstance() {
        try {
            $piId = 77; // Some valid process instance id
            $processInstance = $this->ws->getProcessInstance($piId);            
            var_dump($processInstance);
        } catch (Exception $e) {
            var_dump($e);
        }
    }     

}

$openkm = new OpenKM(); //autoload
$exampleWorkflow = new ExampleWorkflow();
$exampleWorkflow->testGetProcessInstance();
?>

findUserTaskInstances

Description:

MethodReturn valuesDescription

findUserTaskInstances()

array(TaskInstance)

Retrieves a list of task instances assigned to the user.

Example:

<?php

include '../src/openkm/OpenKM.php';

use openkm\OKMWebServicesFactory;
use openkm\OpenKM;

class ExampleWorkflow {

    const HOST = "http://localhost:8080/OpenKM/";
    const USER = "okmAdmin";
    const PASSWORD = "admin";

    private $ws;

    public function __construct() {
        $this->ws = OKMWebServicesFactory::build(self::HOST, self::USER, self::PASSWORD);
    }

    public function testFindUserTaskInstances() {
        try {
            // Get all user task intances
            $taskInstances = $this->ws->findUserTaskInstances();
            foreach ($taskInstances as $taskInstance) {
                var_dump($taskInstance);
            }
        } catch (Exception $e) {
            var_dump($e);
        }
    }

}

$openkm = new OpenKM(); //autoload
$exampleWorkflow = new ExampleWorkflow();
$exampleWorkflow->testFindUserTaskInstances();
?>

findTaskInstances

Description:

MethodReturn valuesDescription

findTaskInstances($piId)

array(TaskInstance)

Retrieves a list of task instances of some process instance id.

Parameters:

$pdId string type is a valid process instance id.

Example:

<?php

include '../src/openkm/OpenKM.php';

use openkm\OKMWebServicesFactory;
use openkm\OpenKM;

class ExampleWorkflow {

    const HOST = "http://localhost:8080/OpenKM/";
    const USER = "okmAdmin";
    const PASSWORD = "admin";

    private $ws;

    public function __construct() {
        $this->ws = OKMWebServicesFactory::build(self::HOST, self::USER, self::PASSWORD);
    }

    public function testFindTaskInstances() {
        try {
            // Get all task instances of some process instance
            $piId = 77; // Some valid process instance id
            $taskInstances = $this->ws->findTaskInstances($piId);
            foreach ($taskInstances as $taskInstance) {
                var_dump($taskInstance);
            }
        } catch (Exception $e) {
            var_dump($e);
        }
    }    

}

$openkm = new OpenKM(); //autoload
$exampleWorkflow = new ExampleWorkflow();
$exampleWorkflow->testFindTaskInstances();
?>

setTaskInstanceValues

Description:

MethodReturn valuesDescription

setTaskInstanceValues($tiId, $transName, formElements = array())

void

Retrieves a list of task instances of some process instance id.

Parameters:

$tdId string type is a valid task instance id.

$transName string type is the chosen transaction.

$formElements array type are form element values needed for starting the workflow ( not all workflows need form values for starting).

Example:

<?php

include '../src/openkm/OpenKM.php';

use openkm\OKMWebServicesFactory;
use openkm\OpenKM;

class ExampleWorkflow {

    const HOST = "http://localhost:8080/OpenKM/";
    const USER = "okmAdmin";
    const PASSWORD = "admin";

    private $ws;

    public function __construct() {
        $this->ws = OKMWebServicesFactory::build(self::HOST, self::USER, self::PASSWORD);
    }

    public function testSetTaskInstanceValues() {
        try {
            $tiId = 5; // Some valid task instance id
            $formElements = array();
            $this->ws->setTaskInstanceValues($tiId, 'approve', $formElements);
            echo '<p>Set task Instance value</p>';
        } catch (Exception $e) {
            var_dump($e);
        }
    }    

}

$openkm = new OpenKM(); //autoload
$exampleWorkflow = new ExampleWorkflow();
$exampleWorkflow->testSetTaskInstanceValues();
?>

getTaskInstance

Description:

MethodReturn valuesDescription

getTaskInstance($tiId)

TaskInstance

Returns a task instance.

Parameters:

$tdId string type is a valid task instance id.

Example:

<?php

include '../src/openkm/OpenKM.php';

use openkm\OKMWebServicesFactory;
use openkm\OpenKM;

class ExampleWorkflow {

    const HOST = "http://localhost:8080/OpenKM/";
    const USER = "okmAdmin";
    const PASSWORD = "admin";

    private $ws;

    public function __construct() {
        $this->ws = OKMWebServicesFactory::build(self::HOST, self::USER, self::PASSWORD);
    }

    public function testGetTaskInstance() {
        try {
            $tiId = 282; // Some valid task instance id
            $taskInstance = $this->ws->getTaskInstance($tiId);
            var_dump($taskInstance);
        } catch (Exception $e) {
            var_dump($e);
        }
    }   

}

$openkm = new OpenKM(); //autoload
$exampleWorkflow = new ExampleWorkflow();
$exampleWorkflow->testGetTaskInstance();
?>

setTaskInstanceActorId

Description:

MethodReturn valuesDescription

setTaskInstanceActorId($tiId, $actorId)

void

Starts a task instance.

Parameters:

$tdId string type is a valid task instance id.

$actorId string type must be some valid OpenKM userId.

Example:

<?php

include '../src/openkm/OpenKM.php';

use openkm\OKMWebServicesFactory;
use openkm\OpenKM;

class ExampleWorkflow {

    const HOST = "http://localhost:8080/OpenKM/";
    const USER = "okmAdmin";
    const PASSWORD = "admin";

    private $ws;

    public function __construct() {
        $this->ws = OKMWebServicesFactory::build(self::HOST, self::USER, self::PASSWORD);
    }

    public function testSetTaskInstanceActorId() {
        try {
            $tiId = 4; // Some valid task instance id            
            $this->ws->setTaskInstanceActorId($tiId,'okmAdmin');
            echo '<p>Set task Instance actorid</p>';
        } catch (Exception $e) {
            var_dump($e);
        }
    }

}

$openkm = new OpenKM(); //autoload
$exampleWorkflow = new ExampleWorkflow();
$exampleWorkflow->testSetTaskInstanceActorId();
?>

startTaskInstance

Description:

MethodReturn valuesDescription

startTaskInstance($tiId)

void

Starts a task instance.

Parameters:

$tdId string type is a valid task instance id.

Example:

<?php

include '../src/openkm/OpenKM.php';

use openkm\OKMWebServicesFactory;
use openkm\OpenKM;

class ExampleWorkflow {

    const HOST = "http://localhost:8080/OpenKM/";
    const USER = "okmAdmin";
    const PASSWORD = "admin";

    private $ws;

    public function __construct() {
        $this->ws = OKMWebServicesFactory::build(self::HOST, self::USER, self::PASSWORD);
    }

    public function testStartTaskInstance() {
        try {
            $tiId = 4; // Some valid task instance id            
            $this->ws->startTaskInstance($tiId);
            echo '<p>Start task Instance</p>';
        } catch (Exception $e) {
            var_dump($e);
        }
    }

}

$openkm = new OpenKM(); //autoload
$exampleWorkflow = new ExampleWorkflow();
$exampleWorkflow->testStartTaskInstance();
?>

endTaskInstance

Description:

MethodReturn valuesDescription

endTaskInstance($tiId, $transName)

void

Ends a task instance.

Parameters:

$tdId string type is a valid task instance id.

$transName string type is the chosen transaction.

Example:

<?php

include '../src/openkm/OpenKM.php';

use openkm\OKMWebServicesFactory;
use openkm\OpenKM;

class ExampleWorkflow {

    const HOST = "http://localhost:8080/OpenKM/";
    const USER = "okmAdmin";
    const PASSWORD = "admin";

    private $ws;

    public function __construct() {
        $this->ws = OKMWebServicesFactory::build(self::HOST, self::USER, self::PASSWORD);
    }

    public function testEndTaskInstance() {
        try {
            $tiId = 6; // Some valid task instance id            
            $this->ws->endTaskInstance($tiId, 'end');
            echo '<p>End task Instance</p>';
        } catch (Exception $e) {
            var_dump($e);
        }
    }

}

$openkm = new OpenKM(); //autoload
$exampleWorkflow = new ExampleWorkflow();
$exampleWorkflow->testEndTaskInstance();
?>