As part of the AMSeT toolkit, deliverables include a set of Alfresco BPEL workflows that are intended to lower the entry barrier to future projects whose aims include the use of Alfresco in a repository or learning design project.

The workflows will incorporate workspace, user, group and content management functions. A set of short ('atomic') workflows with simple functionality will be created first, then these will be used to create examples with wider scope.

This page provides a list of the atomic workflows with links to more information on each.

As a shorthand, workflows will sometimes be referred to in truncated form, amset1 for amset1authentication, for example.

Initial workflows are investigations of basic content, user and group functionality and are synchronous. Later examples will introduce asynchronous workflow and the concept of BPEL correlation.

Workflow List#

amset1authentication

amset2createstore

amset3securityheadertest

amset4createnode

amset5writecontent1

amset6createandwrite

amset7writecontent2

amset8clearcontent

amset9copynode

amset10deletenode

amset11movenode

amset12createuser

amset13createusers

amset14getuser

amset15deleteusers

amset16queryusers

amset17getpermissions

amset18haspermissions

amset19addaces

amset20removeaces

amset21getacls

amset22getallauthorities

amset23getauthorities

amset24createauthorities

amset25deleteauthorities

amset26addchildauthorities

amset27getchildauthorities

amset28removechildauthorities

amset29getparentauthorities

amset30getowners

amset31setowners

amset32getclassifications

amset33getcategories

amset34get

amset35read

Although the functionality is more limited than with a product like JForum or mvnForum, it is possible to create discussion forums in Alfresco using the Web service interface. All basic Alfresco resources are repository nodes and the forums are defined by an XML data model given in the snippet below.

Code snippet Forums 1. The Alfresco forums data model.

<?xml version="1.0" encoding="UTF-8"?>

<model name="fm:forummodel" xmlns="http://www.alfresco.org/model/dictionary/1.0">

   <description>Forum Model</description>
   <author></author>
   <version>1.0</version>

   <!-- Imports are required to allow references to definitions in other models -->   
   <imports>
      <!-- Import Alfresco Dictionary Definitions -->
      <import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
      <!-- Import Alfresco Content Domain Model Definitions -->
      <import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
   </imports>

   <namespaces>
      <namespace uri="http://www.alfresco.org/model/forum/1.0" prefix="fm"/>
   </namespaces>
   
   <types>
      <type name="fm:forums">
         <parent>cm:folder</parent>
      </type>
      
      <type name="fm:forum">
         <parent>cm:folder</parent>
      </type>
      
      <type name="fm:topic">
         <parent>cm:folder</parent>
      </type>
      
      <type name="fm:post">
         <parent>cm:content</parent>
      </type>
    </types>
    
    <aspects>
      <aspect name="fm:discussable">
         <associations>
            <child-association name="fm:discussion">
               <source>
                  <mandatory>false</mandatory>
                  <many>false</many>
               </source>
               <target>
                  <class>fm:forum</class>
                  <mandatory enforced="true">true</mandatory>
                  <many>false</many>
               </target>
               <duplicate>false</duplicate>
            </child-association>
         </associations>
      </aspect>
   </aspects>
</model>

The key point here is that there are 4 datatypes in total: forums, forum, topic & post.

forums is a child of the folder datatype: it is a folder that holds discussion forums (although it is not mandatory to place a forum in a forums folder).

These types are all nodes so the RepositoryService.update() operation has the power over them.

There are several forum possibilities that might prove useful for teaching and learning workflows. Alerts can be programmed to trigger when posts are made to the forum. These alerts could take the form of an email, or of posting a message on someone's folder.

Also, whole discussions can be harvested as XML by a getContent() Web service. It is then a straightforward matter in the BPEL process to transform the XML using XSLT to a convenient format before distribution to interested parties. HTML, OpenOffice or PDF documents might be produced. XSLT could also be used to anonymise discussions.

Basic forum workflows are labelled amsetf1workflow, amsetf2workflow ...

Workflows#

amsetf1createforumspace

amsetf2createforum

Add new attachment

Only authorized users are allowed to upload new attachments.
« This page (revision-) was last changed on 17-Nov-2009 13:25 by clayton