1. add user Task in yout bpmn-xml-file:

<userTask id="myTask" name="My Task" activiti:formKey="myappwf:myTask">
            <extensionElements>
                <activiti:taskListener event="create" delegateExpression="${CreateMyTaskListener}" />
            </extensionElements>
</userTask>

2. add CreateMyTaskListener bean to the workflow-context.xml file

<bean id="createMyTaskListener"
        class="de.lustin.alfresco.workflow.CreateMyTaskListener"
        parent="activitiCreateTaskListener">
    </bean>

<bean id="createMyTaskListener.activitiBeanRegistry"
        class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"
        depends-on="activitiBeanRegistry">
        <property name="targetObject">
            <ref bean="activitiBeanRegistry" />
        </property>
        <property name="targetMethod" value="put" />
        <property name="arguments">
            <list>
                <value>CreateMyTaskListener</value>
                <ref bean="createMyTaskListener" />
            </list>
        </property>
</bean>

3. Create a Java class

import org.alfresco.repo.workflow.activiti.tasklistener.TaskCreateListener;

public class CreateMyTaskListener extends TaskCreateListener {

    @Override
    public void notify(DelegateTask delegateTask) {

...

1. add service Task in yout bpmn-xml-file:

<serviceTask id="java_execution" name="Java Execution" activiti:delegateExpression="${JavaExecutionDelegate}" />

2. add JavaExecutionDelegate bean to the workflow-context.xml file

<bean id="JavaExecutionDelegate"
        class="de.lustin.alfresco.workflow.JavaExecutionDelegate"
        parent="baseJavaDelegate">
</bean>

3. Create a Java class

import org.alfresco.repo.workflow.activiti.BaseJavaDelegate;

public class JavaExecutionDelegate extends BaseJavaDelegate {

    @Override
    public void execute(DelegateExecution execution) throws Exception {

...

To deploy changed activiti workflow diagramm, you don`t need to restart server.

1. Got to the activiti workflow console: http://localhost:8080/alfresco/activiti-admin

2. Deployments -> deploy new

Disabling quick share and social link

add to alfresco-global.properties (tested with Version 5.0.1 but it should work already with version 4.2.193)

system.quickshare.enabled=false

Problem:

I created an Aikau page from the Aikau tutorial example. If I call my service with url ...hdp/ws/... , then the result page is some pixel wider than a browser tab and it appears a horizontal scroll bar.

1. Solution

call this service with ...dp/ws/... url and add the header and footer manually. See the implementation of faceted-search in Alfresco-Share in github.

  1. import share-header.lib.js: <import resource="classpath:/alfresco/site-webscripts/org/alfresco/share/imports/share-header.lib.js">
  2. import share-footer.lib.js: <import resource="classpath:/alfresco/site-webscripts/org/alfresco/share/imports/share-footer.lib.js">
  3. add default heder services: var services = getHeaderServices();
  4. add your services: services.push({name: "alfresco/services/SearchService", ...
  5. add your widgets and services to the model, use for it a method from share-footer.lib: model.jsonModel = getFooterModel(services, widgets);

2. Solution

call this service with ...hdp/ws/... url again and patch only the hybrid-page.get.html.ftl template:

  1. copy the file hybrid-page.get.html.ftl from Alfresco-Sources sto your share project: /src/main/resources/alfresco/web-extension/site-webscripts/org/alfresco/share/page-templates/hybrid-page.get.html.ftl
  2. add the standard Alfresco-Wrapper to the templateBody: <div id="doc3">

This wrapper exists in every Alfresco template, but miss in Aikau (Aikau version 1.0.89).