Month: February 2014

Updated tutorial: Creating custom advanced workflows in Alfresco

I have published a major revision of my “Creating custom advanced workflows in Alfresco” tutorial. Major changes include:

  • The tutorial now uses the Alfresco Maven SDK to instantiate the projects and to produce and install AMPs.
  • The tutorial no longer refers to jBPM, except to give brief historical context as to why the platforms includes both jBPM and Activiti.
  • The tutorial no longer includes any references to the old Alfresco Explorer client, except where it pertains to using the Alfresco Workflow Console, which is only available as part of the Alfresco Explorer Client.
  • Significant wordsmithing and re-organization to improve style and clarity.

I have tested the steps and the code against Alfresco 4.2.e Community Edition and version 5.14 of the Activiti Process Designer for Eclipse.

By the end of the tutorial, you will know how to:

  • Create, deploy, and run business processes using Activiti embedded within Alfresco.
  • Configure Alfresco Share to display custom forms when starting Activiti workflows or managing workflow tasks.
  • Use the Alfresco Workflow Console to deploy process definitions, start workflows, and delete workflows.
  • Add business logic to your process definitions using JavaScript and Java.
  • Assign workflow tasks to users and groups.
  • Add timers to your process definitions to take an action automatically after a specific time period.

The tutorial assumes you already know how to use the Alfresco Maven SDK. If you have never used it, take a look at this tutorial. The workflow tutorial also assumes you have worked through the Custom Content Types, Custom Actions, and Intro to Web Scripts tutorials.

The source code and the tutorial itself reside in GitHub. If you find problems or want to make improvements, please fork the project, make the change, and send me a pull request.

Notes from last week’s office hours

UPDATE: Corrected the Alfresco Summit dates which have changed since this was posted

In case you missed last week’s live Alfresco office hours, here is the re-play:

And here are my notes from the session…

Follow-up items from last office hours

Worldwide, Virtual Hack-a-thon is happening May 9

  • Sign up on the wiki
  • Alfresco team members in all three regions will participate
  • 24 hours

Sign-up for the Alfresco quarterly community newsletter. The next one should be coming out in March.

The new Alfresco Community Landing Page should be live on by the end of this week.

IRC improvements

  • Join the live conversation at #alfresco on freenode IRC
  • The chat room is now logged
  • We’ll move the logs to an Alfresco server and domain at some point

Kicking off the Alfresco Community Profile project

  • At a minimum, will provide the ability to use the same credentials for all Alfresco community properties
  • Vision is to use it as each community member’s “face” to the rest of the community

Community translations going strong

  • Get started by reading this wiki page
  • Work on a community-contributed language pack at CrowdIn
  • File patches for officially supported language packs in Jira

The last of the ECM Architect tutorials that still needs a revision (Advanced Workflows) is almost done

  • Tutorials now use Alfresco Maven SDK
  • Tutorials now produce AMPs instead of using the overlay approach
  • All references to old technologies such as Alfresco Explorer, the native Alfresco Web Services API, and jBPM have been removed.
  • Tutorial text and source code are on GitHub

Alfresco Summit Save-the-Date:

  • Two months earlier
  • EMEA: 9/9, 9/10, 9/11 in London Alfresco Summit EMEA
    October 7, 8, & 9 (T, W, R) in London
  • Americas: 9/23, 9/24, 9/25 in San FranciscoAlfresco Summit Americas
    September 22, 23, & 24 (M, T, W) in San Francisco
  • Shorter: Two days (plus the optional workshop day), otherwise roughly the same format
  • Call for papers coming soon

The next Alfresco Office Hours will be March 21. The next Tech Talk Live is March 5. We’ll be reviewing several projects that were created as a result of the Alfresco Summit Hack-a-Thon back in November.

Updated tutorial: Introduction to Alfresco Web Scripts

I have published a new version of my Introduction to Web Scripts tutorial. This is a major revision that refactors the tutorial to leverage the Alfresco Maven SDK and AMPs. In addition, I have done a little bit of reorganization to improve clarity and a lot of wordsmithing to make the tutorial more consistent with the others in the Alfresco Developer Series.

By the end of this tutorial, you will know how to:

  • Extend Alfresco with your own custom RESTful API.
  • Write web scripts that respond to GET, POST, and DELETE requests over HTTP/S and return data in both HTML and JSON.
  • Use the web scripts console to display documentation and debug info on your custom and out-of-the-box web scripts.
  • Make AJAX calls to your custom web scripts.

The tutorial assumes you already know how to use the Alfresco Maven SDK. If you don’t, take a look this tutorial.

The tutorial text and all of the source code related to it are on GitHub. If you see problems or opportunities for improvement, please fork the project and send me a pull request.

Combine the qualitative and the quantitative with Alfresco and Pentaho

Yesterday we had our monthly Tech Talk Live session. The topic was “Business Intelligence for ECM Practitioners” and it was all about how BI can be applied to the data that lives in your Alfresco repository. We were joined on the panel by Francesco Corti, who is experienced in both ECM and BI, as well as John Iball, the product manager for Alfresco One.

Here is the broadcast in case you missed it:

During the broadcast we saw Francesco’s AAAR solution which extracts data from Alfresco and puts in a data warehouse. Pentaho, an open source Business Intelligence platform, is then used to create a dynamic dashboard that end users can use to interactively answer business questions about that data. Francesco showed a live demo of reporting using Alfresco auditing data, but with his CMIS connector for Pentaho, you could report on anything stored in the repository.

John Iball shared with us that reporting and analytics was one of the top features requested during a recent discussion with 70 or so Alfresco customers. Rather than very basic reporting features, John said that customers want the ability to do deeper analytics on the data stored in Alfresco. Some will already have BI platforms in place. Others will benefit from a complete solution. Either way, John says that meeting this need is high on Alfresco’s roadmap right now.

About Tech Talk Live

Tech Talk Live occurs on the first Wednesday of every month barring a holiday or some other conflict. During each episode, the Alfresco community team focuses on a specific topic and invites panelists from Alfresco, partners, and the broader community to take part in the conversation. The session is broadcast to the public live on Google Hangouts on Air with Q&A taking place simultaneously in #alfresco on freenode IRC. Check the wiki for links to prior and future episodes. The Alfresco events page also has entries for Tech Talk Live.

Our next episode will be on March 5 when Nathan McMinn joins us to recap some of the killer projects that were created during the Alfresco Summit 2013 hack-a-thon.

Updated tutorial: Implementing Custom Behaviors in Alfresco

I have published a major revision to my Implementing Custom Behaviors in Alfresco tutorial. I hadn’t really touched it since 2007–behaviors, the ability to bind programming logic to types, aspects, and events in Alfresco, haven’t changed at all since then.

The changes are mainly around using the Alfresco Maven SDK to produce AMPs and the addition of unit tests to the project. I also gave it a bit of a style scrub to make it more consistent with other tutorials.

The tutorial continues with the SomeCo example. In this tutorial you will create the content model and behavior needed to implement the back-end for SomeCo’s five star rating functionality. By the end of this tutorial you will know:

  • What a behavior is
  • How to bind a behavior to specific policies such as onCreateNode and onDeleteNode
  • How to write behaviors in Java as well as server-side JavaScript
  • How to write a unit test that tests your behavior

This tutorial, the source code that accompanies it, and the rest of the tutorials in the Alfresco Developer Series reside on GitHub. If you want to help with improvements, fork the project and send me a pull request.

Next week I hope to publish a major revision of the Introduction to Web Scripts tutorial.