/odooStep

Connect ProcessMaker with Odoo

Primary LanguagePHPGNU Affero General Public License v3.0AGPL-3.0

odooStep - An add-on to connect Process Maker with Odoo

This software is a final career project that intends to integrate a BPM tool (Process Maker) with the role of orchestration and a ERP software (Odoo) with the role of operations management. Both open source.

This software was developed to support Odoo 9 and Process Maker 3.1 as a Process Maker plugin.

You can see it in action on YouTube here and here.

Installation and configuration

You can download the plugin here.

And you can install in your ProcessMaker following this guidelines: http://wiki.processmaker.com/3.0/Plugins

Once installed, it must be configured in the "Odoo Config" menu with the data of the Odoo installation.

Configuration screen

Creating a step to connect with Odoo at a glance

By clicking on "Odoo Steps Creator" we access the management interface. Here we can see, create and edit the steps of Odoo.

Odoo Steps Creator

If we click on "New" we will see the creation form.

Creation form

The necessary fields are the following:

  • Method: Of the XML-RPC Odoo API. You can consult here.

  • Model: Model of Odoo, These models can be consulted in the Odoo itself, activating the developer mode and navigating in the side menu to "Database structure""Models" from the main "Settings" menu.

  • Parameters: Paramtros of the method. You can consult here. The format is like this:

    value, value, value ...

    value, value ...

    ...

  • Parameters KW: Parameters key-value of the method. You can consult here. The format is like this:

    key: value, value ...

    key: value ...

    ...

  • Output: A ProcessMaker variable previously created to save the return.

You can reference ProcessMaker variables in key-value parameters and parameters using the prefix "@@"

Parameters example

Once the step is created, it can be assigned to a task like any other step.

Extending the plugin

The plugin does not have all the combinations of variable types of input and output encoded for the different methods. For the cases not contemplated (which are many), the plugin can be easily extended both pre and postprocessors.

These functions must be created in the "SosApp.class.php" file within the "SosApp" class. The plugin detects the signature of these functions (such as Drupal hooks) and executes them when appropriate.

The format of the preprocessors is:

public function preprocess_method($ p, $ kwp)

And of the postprocessors:

public function postprocess_method_type($ output)

The words "method" and "type" must be replaced by the method and type of variable. There are several of these functions already written in the class that can serve as an example.

License

GNU Affero General Public License v3.0

You can check it here.

Please consider contributing to the code if it was helpful in your purpose.