So I was happily coding away when I ran into this funny error:
17:46:12,947 ERROR [org.jbpm.graph.def.GraphElement] action threw exception: AlfrescoJavaScript supports only one writable variable
org.alfresco.service.cmr.workflow.WorkflowException: AlfrescoJavaScript supports only one writable variable
The culpret was:
<event type="process-start">
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
<variable name="office_managers_group" access="read,write"/>
<variable name="contracts_administrators_group" access="read,write"/>
<variable name="accounts_receivable_group" access="read,write"/>
<expression>
office_managers_group = people.getGroup('GROUP_office managers');
contracts_administrators_group = people.getGroup('GROUP_contracts administrators');
accounts_receivable_group = people.getGroup('GROUP_accounts receivable');
</expression>
</script>
</action>
</event>
The workaround is to create several actions in the same event each with only 1 variable:
<event type="process-start">
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
<expression>
office_managers_group = people.getGroup('GROUP_office managers');
</expression>
<variable name="office_managers_group" access="write"/>
</script>
</action>
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
<expression>
contracts_administrators_group = people.getGroup('GROUP_contracts administrators');
</expression>
<variable name="contracts_administrators_group" access="write"/>
</script>
</action>
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
<expression>
accounts_receivable_group = people.getGroup('GROUP_accounts receivable');
</expression>
<variable name="accounts_receivable_group" access="write"/>
</script>
</action>
</event>
This was done on Alfresco Labs - v3.0.0 (c 1342)