Alfodoo Alfresco Web interface

by
Odoo

474.24

v 10.0 v 12.0 Third Party 2
Included Dependencies
Alfodoo CMIS Web interface (2120 lines of code)
CMIS for Alfresco (28 lines of code)
Alfodoo CMIS Field (279 lines of code)
CMIS (201 lines of code)
Lines of code 2780
Technical Name cmis_web_alf
LicenseAGPL-3
Websitehttp://alfodoo.org
Also available in version v 10.0
You bought this module and need support? Click here!
Included Dependencies
Alfodoo CMIS Web interface (2120 lines of code)
CMIS for Alfresco (28 lines of code)
Alfodoo CMIS Field (279 lines of code)
CMIS (201 lines of code)
Lines of code 2780
Technical Name cmis_web_alf
LicenseAGPL-3
Websitehttp://alfodoo.org
Also available in version v 10.0

Alfodoo, the Odoo-Alfresco connector

Streamline your business processes by managing your documents in their context within any Odoo app.


Alfodoo provides a unique solution to seamlessly integrate the open-source ECM Alfresco with Odoo and let the user manage his documents in Alfresco without leaving his Odoo work environment.


Benefits from the Alfodoo connector:

  • Manage your content/documents linked to your Odoo processes;

  • Make classification and indexing of content/documents easier and more qualitative;

  • Enrich documents with Odoo business record information to exploit the powerful Alfresco document management capabilities.


Alfodoo


A video is availabe on youtube at https://youtu.be/TK49kl0Viyk

Key features:
  • Easy to create Alfresco space folders for any Odoo business object
  • Drag&Drop of content (office document, image, mail, ….) in Alfresco from Odoo. Your content is immediately filed in the right location
  • Update your document (versioning) without leaving Odoo
  • Easy content preview and browsing (PDF, Image, Media preview)
  • Easy connector configuration– Everything can be done directly from the Odoo interface

In addition to these features, extensions can be implemented to add more advanced functionality such as:

Space template: possibility to create a dedicated space template linked to a type of Odoo object (project, ...).

Reporting: from an Odoo object, possibility to generate any kind of reports in most common formats (PDF, MS office, ...). The generated document is automatically classified in the appropriate folder and enriched with appropriate metadata

Proxy mode: with this mode, instead of using the actual user credentials for submitting Odoo widget requests (CMIS) to Alfresco, a proxy user is used.

Overview

Create folder ine DMS


The main part of the functionality is accessed through a "Documents" tab configurable on each Odoo model providing a “real-time” view on the Alfresco content.
This tab gives direct access to the items (documents lists, sub-folders, ...) linked to the Odoo object.
The items are stored in the related Alfresco folder.


First the user triggers the creation (button "Create folder ine DMS") of the related Alfresco folder.

Then the following functionality becomes available:

Folder Action Buttons

Still in the “Documents” tab, in the content part, you will see the list of documents and sub folders and the related options/functionalities.

Folder content

The following information is displayed for each item:

  • The item name;

  • The item description;

  • Last Modified date;

  • A “Plus” icon used to hide or unhide the item details (folder or document Alfresco metadata: cm:folder, cm:content, cm:title);

  • Icons of available functionalities:

Content Action Buttons

By buying this addon you contribute to make Alfodoo even better.

One hour of email or phone support from an Acsone Alfodoo expert is included in the price.

This addon is part of the Alfodoo addons suite.

Alfresco installation and configuration not included in this price.

Contact us for additional information about custom Alfodoo extensions.

Alfodoo Installation guide

To install the Alfodoo addons, there are several important steps:

  1. Install the dependencies (the Odoo cmis addon and the Python cmislib library).
  2. Make sure Alfresco is properly configured to accept AJAX requests. from your Odoo domain
  3. If your Alfresco is behind a reverse proxy, make sure all it's components are properly configured.
  4. Launch Odoo with the adequate options.
  5. Configure the Alfresco URL and credentials in your Odoo instance.

Please read the following sections carefully to ensure a smooth experience with Alfodoo.

Dependencies

The Alfodoo framework requires the following:

  • The Odoo cmis addon: provides the foundation for Odoo modules implementing different integration scenario with a CMIS server. It allows you to configure a CMIS backend. This addon is maintained by the OCA and is on the Odoo app store as well as on github as part of the connector-cmis repository.
  • cmislib the Apache Chemistry CMIS client library for Python: To be compliant with the latest version of CMIS (1.1), the connector uses the latest version of the python cmislib>=0.6. The library can be installed with:
pip install 'cmislib>=0.6'

Enable CORS in Alfresco 5.x

The CMIS Viewer widget will be loaded from a different web server than the Alfresco Platform is running on. So we need to tell the Alfresco server that any request that comes in from this custom web client should be allowed access to the Content Repository. This is done by enabling CORS.

To enable CORS in the Alfresco Platform, you should do the following:

Modify tomcat/conf/web.xml and add the following sections to allow requests from http://localhost:8069 in addition to http://my.public.alfresco.hostname. When specifying the cors.allowOrigin URL make sure to use the URL that will be used by the web client.

<!-- CORS Filter Begin -->
<filter>
    <filter-name>CORS</filter-name>
    <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
    <init-param>
      <param-name>cors.allowed.origins</param-name>
      <param-value>http://localhost:8069,https://my.public.alfresco.hostname</param-value>
    </init-param>
    <init-param>
      <param-name>cors.allowed.methods</param-name>
      <param-value>GET,POST,HEAD,OPTIONS,PUT,DELETE</param-value>
    </init-param>
    <init-param>
      <param-name>cors.allowed.headers</param-name>
      <param-value>origin, authorization, x-file-size, x-file-name, content-type, accept, x-file-type, DNT, x-customheader ,keep-alive ,user-agent ,x-requested-with ,if-modified-since, cache-control,accept-ranges,content-encoding,content-length</param-value>
    </init-param>
    <init-param>
      <param-name>cors.exposed.headers</param-name>
      <param-value>origin, authorization, x-file-size, x-file-name, content-type, accept, x-file-type, DNT, x-customheader ,keep-alive ,user-agent ,x-requested-with ,if-modified-since, cache-control,accept-ranges,content-encoding,content-length</param-value>
    </init-param>
    <init-param>
      <param-name>cors.support.credentials</param-name>
      <param-value>true</param-value>
    </init-param>
    <init-param>
      <param-name>cors.preflight.maxage</param-name>
      <param-value>3600</param-value>
    </init-param>
 </filter>
 <!-- CORS Filter End -->

 <!-- CORS Filter Mappings Begin -->
 <filter-mapping>
    <filter-name>CORS</filter-name>
    <url-pattern>/api/*</url-pattern>
    <url-pattern>/service/*</url-pattern>
    <url-pattern>/s/*</url-pattern>
    <url-pattern>/cmisbrowser/*</url-pattern>
 </filter-mapping>

Alfresco Behind a a Proxy

The CMIS discovery document returns absolute template URLs that have to be used to navigate the repository and retrieve node information. This service is the first one called when a cmis session is initialized and the next calls will use the url received into the result. By default the hostname of the server is returned in the URLs, if the server is behind a proxy the hostname needs to be configured to return the publicly accessible hostname. If you are in this case you must add the following lines into the alfresco config file in <tomcat>/shared/classes/alfresco-global.properties

# if true, the context path of OpenCMIS generated urls will be set to "opencmis.context.value", otherwise it will be taken from the request url
opencmis.context.override=true
opencmis.context.value=
# if true, the servlet path of OpenCMIS generated urls will be set to "opencmis.servletpath.value", otherwise it will be taken from the request url
opencmis.servletpath.override=true
opencmis.servletpath.value=
opencmis.server.override=true
opencmis.server.value=https://my.public.alfresco.hostname/alfresco/api

Configure python SSL certificates

Moreover if alfresco is available over SSL (HTTPS) you must also take care of trusting the SSL certificate in your Odoo instance. This can be done by adding the following lines in your custom odoo addon.

import httplib2
import functools

# Set system CA Certificates based SSL Certificate Validation by python code
httplib2.Http = functools.partial(
    httplib2.Http,
    ca_certs="/etc/ssl/certs/ca-certificates.crt"
)

Launch Odoo

The cmis_field addon defines a new field and a specific web controller providing some functionalities to the web. In order to get the new field desciption registered at the early stage in the statup process and to register the controller you must start Odoo with:

--load web,web_gantt,cmis_field

Configure the CMIS connector

In Odoo, go to Settings > CMIS > Backends and create a new backend.

Populate the following fields:

  • Location: the CMIS root URL, example https://my.public.alfresco.hostname/alfresco/api/-default-/public/cmis/versions/1.1/browser/
  • Username, Password: the Alfresco credentials that Odoo will use to create new folders and associate their object reference to the Odoo record. It is recommanded to create a dedicated Alfresco user for this.
  • Inital directory for writing: the base Alfresco directory where Odoo will create folders and store documents (eg /odoo).
  • Alfresco Api Url: usually https://my.public.alfresco.hostname/alfresco/s/api.
  • Alfresco Share Url: usually https://my.public.alfresco.hostname/share.

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.