Working with Alfresco Community Edition 3.4D

Alfresco is an open source alternative for Enterprise Content Management (ECM).  It provides Document Management, Collaboration, Records Management, Knowledge Management, Web Content Management, and Imaging.  

Alfresco Share is a rich web-based collaboration environment for managing documents, wiki content, blogs and more. Alfresco Share leverages the Alfresco repository to provide content services and utilises the Alfresco Surf Platform to provide the underlying presentation framework.

As a framework, Alfresco provides you with the ability to:

  • Configure your environment to meet your needs
  • Extend its capabilities by creating and customising additional features
  • Utilise the skills of your Java developers by providing a programmable API

Configure your Alfresco Environment

After the initial installation of Alfresco it is advisable to review the default settings and configure these to ensure that they match your environment and meet your requirements.

Alfresco has a number of configuration files and these files are held in the WEB-INF classes folder. You can configure items such as permission changes and add additional roles and many more. It is important that these changes are documented and backed up as they can be over written when you upgrade to newer versions of Alfresco.

Examples

Alfresco Share uses the Lucene search engine to display records in a search folder. By default Alfresco only allows 1000 records to be processed and displayed.  If you want to increase this number, add the following lines of code into the alfresco-global.properties file:

# The maximum time spent pruning results system.acl.maxPermissionCheckTimeMillis=100000
# The maximum number of results to perform permission checks against system.acl.maxPermissionChecks=10000

Other properties such as enabling the inbound email, outbound email, IMAP configuration and Google docs checkout settingscan also be configured in the same alfresco-global.properties file.

Alfresco Customisation

Alfresco has a number of areas where you can customise and enhance the features provided by an Alfresco out of the box installation. These include:

  • Custom Meta Data
  • Custom Workflows
  • Custom Web Pages

Custom Meta data fields (fields that describe the piece of data) can be added to folders and files in two ways:

  1. By creating new content types
  2. By creating an aspect and applying it to an existing content type

One of the most powerful aspects of Alfresco is the workflows that allow for the processing of data through the system. In addition to the standard workflows you can also create your own custom workflows to meet specific needs. These can be created by using either the Jboss jBPM Process Designer or by manually  creating an XML file. Each workflow requires 4 files to be created and deployed:

  • <workflowname>_processdefinition.xml  - this file contains the various tasks and actions performed during, before and after execution of a task
  • <workflowname>-messages.properites – this file contains names of the tasks and stated defined in the previous file.
  • <workflowname>Model.xml - this files contains the tasks inside that custom workflow.
  • <workflowname>-workflow-context.xml - this file contains the references to the other 3 files and this file is used for deploying the workflows.

Alfresco Development

Although Alfresco is very powerful out of the box, there is always a need to develop additional functionality to meet user requirements. This is where the Alfresco developer enhances the system by developing their own features.

Alfresco Share can be further enhanced by the creation of dashlets, custom web pages and custom web scripts. The custom web scripts can be developed using either Java (if you need any database access) or light-weight JavaScript based web scripts for most other features.

For a developer to create this additional functionality they need to how Alfresco is structured and have a knowledge of:

  • FTL (Free Mark-up Text language)
  • Java
  • JavaScript (Web Scripts)
  •  XML

All custom developments are added to shared folder so they won’t be overwritten by any future updates of Alfresco.

The default Application Server installed with Alfresco is Apache Tomcat.  Alfresco can also use JBoss, WebLogic or  WebSphere.

Some Useful Links

Alfresco Blogs

http://blogs.alfresco.com/planet/

Alfresco Forums

http://forums.alfresco.com/en/

Alfresco Wiki

http://wiki.alfresco.com/wiki/Main_Page