cancel
Showing results for 
Search instead for 
Did you mean: 

Testing Start Review & Approve Workflow

jlae
Champ in-the-making
Champ in-the-making
Hello,

I'm running Alfresco 2.0 on Tomcat and I'm trying to test the 'Start Advanced Workflow' feature using the tutorial pdf in Guest Home, but I seem to have a problem.

Upon starting the advanced workflow, in step 2. Workflow options, there should be some widget to select the assignee for the next step of the workflow, but I only see the separator 'Users and their Roles' and nothing underneath. Is this correct?

Checking catalina.out I see the following message
17:10:57,693 WARN  [org.alfresco.web.ui.repo.component.property.UIAssociation] Failed to find association definition for association 'bpm:assignee'

Shouldn't this work out of the box?

If it matters, I haven't installed from the bundle, but on an existing Tomcat using the WAR file.

Thanks for your time and thanks in advance for your help, as it is much appreciated.

Joao
5 REPLIES 5

raweck
Champ on-the-rise
Champ on-the-rise
It seems that you have not defined this aspect in your WorkflowModel.xml file for your task, for example:

<type name="MyTask_wf:MyTaskOne">
  <parent>MyTask_bpm:MyWorkflowTask</parent>
    <mandatory-aspects>
      <aspect>bpm:assignee</aspect>
    </mandatory-aspects>
</type>

davidc
Star Contributor
Star Contributor
Yes, it should work out-of-the-box.  Check your config is also for v2.0.

jlae
Champ in-the-making
Champ in-the-making
It seems that you have not defined this aspect in your WorkflowModel.xml file for your task, for example:

<type name="MyTask_wf:MyTaskOne">
  <parent>MyTask_bpm:MyWorkflowTask</parent>
    <mandatory-aspects>
      <aspect>bpm:assignee</aspect>
    </mandatory-aspects>
</type>

Yes, I was missing that mandatory aspect. Thanks!

But what I do not understand is why the default workflows, like adhoc task, show the same issue… Now the Advanced Workflow I designed is working.

I've got to investigate a bit more.

jlae
Champ in-the-making
Champ in-the-making
Okay, this keeps getting weirder.

Without any other workflows besides the ones that come with Alfresco, I've got no warning on the catalina.out.

But then, I've created a workflow in the <extension> folder, created an appropriate *-context.xml with a workflow deployer, referencing the process definition, task model and properties file.

What happens now is that the Review and Approve and Adhoc Task lose their Web Client Task dialogs, meaning I can't select the assignee on either of these workflow's first task.

To me this is really weird as I think I've followed the instructions on the wiki pretty closely.

Any ideas?

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

<process-definition xmlns="urn:jbpm.org:jpdl-3.1" name="wf:relatoriosTrimestrais">
  <swimlane name="iniciador">
  </swimlane>

  <swimlane name="decisor">
    <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
      <actor>#{bpm_assignee}</actor>
    </assignment>
  </swimlane>

  <start-state name="start">
    <task name="wf:iniciarRelatorio" swimlane="iniciador">
      <event type="task-create">
        <script>
          if (bpm_status != void) {
            taskInstance.status = bpm_status;
          }
        </script>
      </event>
    </task>
    <transition name="elaborarDraftRelatorio" to="criacaoDraftRelatorio" />
  </start-state>

  <task-node name="criacaoDraftRelatorio">
    <task name="wf:elaborarDraftRelatorioTask" swimlane="iniciador" />
    <transition name="pedirAprovacaoRelatorio" to="aprovacaoRelatorio" />
  </task-node>

  <task-node name="aprovacaoRelatorio">
    <task name="wf:aprovarRelatorioTask" swimlane="decisor"></task>
    <transition name="aprovarRelatorio" to="relatoriosEnviar"></transition>
    <transition name="rejeitarRelatorio" to="criacaoDraftRelatorio"></transition>
  </task-node>

  <task-node name="relatoriosEnviar">
    <task name="wf:enviarRelatorioClienteTask" swimlane="iniciador"></task>
    <transition name="clienteRejeitaRelatorio" to="criacaoDraftRelatorio" />
    <transition name="clienteAceitaRelatorio" to="end" />
  </task-node>

  <end-state name="end" />
</process-definition>
task model
<?xml version="1.0" encoding="UTF-8"?>

<model name="wf:workflowmodel" xmlns="http://www.alfresco.org/model/dictionary/1.0">
  <imports>
    <import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d" />
    <import uri="http://www.alfresco.org/model/bpm/1.0" prefix="bpm" />
  </imports>

  <namespaces>
    <namespace uri="http://www.alfresco.org/model/workflow/1.0" prefix="wf" />
  </namespaces>

  <types>
    <type name="wf:iniciarRelatorio">
      <parent>bpm:startTask</parent>
    </type>

    <type name="wf:elaborarDraftRelatorioTask">
      <parent>bpm:workflowTask</parent>
      <overrides>
        <property name="bpm:status">
          <default>In Progress</default>
        </property>
        <property name="bpm:packageActionGroup">
          <default>add_package_item_actions</default>
        </property>
        <property name="bpm:packageItemActionGroup">
          <default>edit_package_item_actions</default>
        </property>
      </overrides>
      <mandatory-aspects>
        <aspect>bpm:assignee</aspect>
      </mandatory-aspects>
    </type>

    <type name="wf:aprovarRelatorioTask">
      <parent>bpm:workflowTask</parent>
      <properties>
        <property name="wf:comentarioAprovacaoRelatorio">
          <type>d:text</type>
        </property>
      </properties>
    </type>

    <type name="wf:enviarRelatorioClienteTask">
      <parent>bpm:workflowTask</parent>
      <properties>
        <property name="wf:comentarioClienteRelatorio">
          <type>d:text</type>
        </property>
      </properties>
    </type>
  </types>
</model>
messages.properties
# relatoriosTrimestrais messages
#

wf_relatoriosTrimestrais.workflow.title=Relatorios Trimestrais
wf_relatoriosTrimestrais.workflow.description=Elaboracao, aprovacao e entrega de relatorios trimestrais

wf_relatoriosTrimestrais.node.start.title=Start
wf_relatoriosTrimestrais.node.start.description=Start
wf_relatoriosTrimestrais.node.start.transition.elaborarDraftRelatorio.title=Elaborar draft relatorio
wf_relatoriosTrimestrais.node.start.transition.elaborarDraftRelatorio.description=Elaboracao do draft do relatorio

wf_relatoriosTrimestrais.node.criacaoDraftRelatorio.title=Criacao draft relatorio
wf_relatoriosTrimestrais.node.criacaoDraftRelatorio.description=Criacao do draft do relatorio
wf_relatoriosTrimestrais.node.criacaoDraftRelatorio.transition.pedirAprovacaoRelatorio.title=Requisitar aprovacao
wf_relatoriosTrimestrais.node.criacaoDraftRelatorio.transition.pedirAprovacaoRelatorio.description=Requisitar aprovacao do relatorio

wf_relatoriosTrimestrais.node.aprovacaoRelatorio.title=Aprovacao relatorio
wf_relatoriosTrimestrais.node.aprovacaoRelatorio.description=Aprovar ou rejeitar o relatorio
wf_relatoriosTrimestrais.node.aprovacaoRelatorio.transition.aprovarRelatorio.title=Aprovar relatorio
wf_relatoriosTrimestrais.node.aprovacaoRelatorio.transition.aprovarRelatorio.description=Aprovar relatorio
wf_relatoriosTrimestrais.node.aprovacaoRelatorio.transition.rejeitarRelatorio.title=Rejeitar relatorio
wf_relatoriosTrimestrais.node.aprovacaoRelatorio.transition.rejeitarRelatorio.description=Rejeitar relatorio

wf_relatoriosTrimestrais.node.relatoriosEnviar.title=Relatorios a enviar
wf_relatoriosTrimestrais.node.relatoriosEnviar.description=Relatorios a enviar ao cliente
wf_relatoriosTrimestrais.node.relatoriosEnviar.transition.clienteAceitaRelatorio.title=Cliente aceita relatorio
wf_relatoriosTrimestrais.node.relatoriosEnviar.transition.clienteAceitaRelatorio.description=Cliente aceita relatorio
wf_relatoriosTrimestrais.node.relatoriosEnviar.transition.clienteRejeitaRelatorio.title=Cliente rejeita relatorio
wf_relatoriosTrimestrais.node.relatoriosEnviar.transition.clienteRejeitaRelatorio.description=Cliente rejeita relatorio

wf_relatoriosTrimestrais.node.end.title=Start
wf_relatoriosTrimestrais.node.end.description=Start

# TASKS
wf_workflowmodel.type.wf_iniciarRelatorio.title=Iniciar relatorio
wf_workflowmodel.type.wf_iniciarRelatorio.description=Iniciar relatorio

wf_workflowmodel.type.wf_elaborarDraftRelatorioTask.title=Elaborar draft relatorio
wf_workflowmodel.type.wf_elaborarDraftRelatorioTask.description=Elaboracao do draft do relatorio

wf_workflowmodel.type.wf_aprovarRelatorioTask.title=Aprovar relatorio
wf_workflowmodel.type.wf_aprovarRelatorioTask.description=Aprovar ou rejeitar relatorio

wf_workflowmodel.type.wf_enviarRelatorioClienteTask.title=Enviar relatorio cliente
wf_workflowmodel.type.wf_enviarRelatorioClienteTask.description=Enviar relatorio ao Cliente para aprovacao

# END TASKS

wf_workflowmodel.property.wf_comentarioAprovacaoRelatorio.title=Comentario aprovacao
wf_workflowmodel.property.wf_comentarioAprovacaoRelatorio.description=Comentario associado a aprovacao ou rejeicao do relatorio

wf_workflowmodel.property.wf_comentarioClienteRelatorio.title=Comentarios cliente
wf_workflowmodel.property.wf_comentarioClienteRelatorio.description=Comentarios cliente em relacao ao relatorio apresentado

wf_workflowmodel.association.wf_iniciador.title=Iniciador
wf_workflowmodel.association.wf_iniciador.description=Iniciador do Workflow

wf_workflowmodel.association.wf_decisor.title=Decisor
wf_workflowmodel.association.wf_decisor.description=Decisor

jlae
Champ in-the-making
Champ in-the-making
Disregard my last post.

I was missing the first task, in the start node, in the task model. Basically, it caused all this.

Thanks anyway
Joao