%%tabbedSection 
%%tab-Atomics
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|amset1authentication]

[amset2createstore|amset2createstore]

[amset3securityheadertest|amset3securityheadertest]

[amset4createnode|amset4createnode]

[amset5writecontent1|amset5writecontent1]

[amset6createandwrite|amset6createandwrite]

[amset7writecontent2|amset7writecontent2]

[amset8clearcontent|amset8clearcontent]

[amset9copynode|amset9copynode]

[amset10deletenode|amset10deletenode]

[amset11movenode|amset11movenode]

[amset12createuser|amset12createuser]

[amset13createusers|amset13createusers]

[amset14getuser|amset14getuser]

[amset15deleteusers|amset15deleteusers]

[amset16queryusers|amset16queryusers]

[amset17getpermissions|amset17getpermissions]

[amset18haspermissions|amset18haspermissions]

[amset19addaces|amset19addaces]

[amset20removeaces|amset20removeaces]

[amset21getacls|amset21getacls]

[amset22getallauthorities|amset22getallauthorities]

[amset23getauthorities|amset23getauthorities]

[amset24createauthorities|amset24createauthorities]

[amset25deleteauthorities|amset25deleteauthorities]

[amset26addchildauthorities|amset26addchildauthorities]

[amset27getchildauthorities|amset27getchildauthorities]

[amset28removechildauthorities|amset28removechildauthorities]

[amset29getparentauthorities|amset29getparentauthorities]

[amset30getowners|amset30getowners]

[amset31setowners|amse31setowners]

[amset32getclassifications|amset32getclassifications]

[amset33getcategories|amset33getcategories]

[amset34get|amset34get]

[amset35read|amset35read]

/%
%%tab-Forum-Spaces-and-Forums
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.__ 



%%prettify 
{{{
<?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|amsetf1createforumspace]

[amsetf2createforum|amsetf2createforum]

/%
/%