<!–**************************–>
<!–** <Task Node> **–>
<!–** review **–>
<!–**************************–>
<task-node name="review">
<task name="lwf_reviewTask">
<assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
<actor>#{reviewer}</actor>
</assignment>
</task>
<event type="node-enter">
<action class="lpr.alfresco.repo.workflow.jbpm.WriteInfo">
<type>Task Node</type>
<name>review</name>
<disable>false</disable>
</action>
<!– Set read permission for tne current reviewer –>
<action class="lpr.alfresco.repo.workflow.jbpm.SetPermissions">
<actor>#{reviewer}</actor>
<permission>set</permission>
</action>
</event>
<transition name="reject" to="endReview"/>
<transition name="approve" to="endReview">
<script>
<variable name="lwf_reviewCount" access="read,write" />
<expression>
lwf_reviewCount = lwf_reviewCount + 1;
</expression>
</script>
</transition>
</task-node>
<config evaluator="node-type" condition="lwf:reviewTask" replace="true">
<property-sheet>
<separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
<show-property name="bpm:taskId" />
<show-property name="bpm:description" component-generator="TextAreaGenerator" read-only="true"/>
<!–show-property name="bpm:dueDate" read-only="true" /–>
<show-property name="bpm:priority" read-only="true" />
<show-property name="bpm:status" />
<show-property name="bpm:comment" component-generator="TextAreaGenerator" />
</property-sheet>
</config>
<type name="lwf:reviewTask">
<parent>bpm:workflowTask</parent>
<overrides>
<property name="bpm:packageItemActionGroup">
<default>edit_package_item_actions</default>
</property>
</overrides>
</type>
<bean id="lpr.validation.workflowBootstrap" parent="workflowDeployer">
<property name="models">
<list>
<value>alfresco/extension/lprwfModel.xml</value>
</list>
</property>
<property name="labels">
<list>
<value>alfresco/messages/lprwf/lprwfModel-messages</value>
</list>
</property>
</bean>
<?xml version="1.0" encoding="UTF-8"?>
<!– LPR Validation 12.1 –>
<process-definition xmlns="urn:jbpm.org:jpdl-3.1" name="lwf:validation">
<!– Workflow Initiator –>
<swimlane name="initiator"/>
<!– Workflow Reviewer –>
<swimlane name="reviewer">
<assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
<actor>#{reviewer}</actor>
</assignment>
</swimlane>
<!– Workflow Approbators –>
<swimlane name="approbators">
<assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
<pooledactors>#{group}</pooledactors>
</assignment>
</swimlane>
<!– Workflow Quality Approbators –>
<swimlane name="qualityassignees">
<assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
<pooledactors>GROUP_A_QUALITY_APPROBATORS</pooledactors>
</assignment>
</swimlane>
<!–**************************–>
<!–** <Start State> **–>
<!–** start **–>
<!–**************************–>
<start-state name="start">
<task name="lwf:submitReviewAndApprovalTask" swimlane="initiator" />
<event type="node-leave">
<action class="lpr.alfresco.repo.workflow.jbpm.WriteInfo">
<type>Start State</type>
<name>start</name>
<disable>false</disable>
</action>
<!– Remove all currents Permissions –>
<action class="lpr.alfresco.repo.workflow.jbpm.SetPermissions">
<permission>remove</permission>
</action>
</event>
<transition name="" to="checkreview"/>
</start-state>
<!–**************************–>
<!–** <Decision> **–>
<!–** checkreview **–>
<!–**************************–>
<decision name="checkreview">
<event type="node-enter">
<action class="lpr.alfresco.repo.workflow.jbpm.WriteInfo">
<type>Decision</type>
<name>checkreview</name>
<disable>false</disable>
</action>
<!– Check is the variable lwf_reviewAssignees exist –>
<action class="lpr.alfresco.repo.workflow.jbpm.CheckTypeExist">
<var>#{lwf_reviewAssignees}</var>
<type>reviewtype</type>
</action>
<!– Set read permission for the initiator –>
<action class="lpr.alfresco.repo.workflow.jbpm.SetPermissions">
<actor>#{initiator}</actor>
<permission>set</permission>
</action>
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
logger.log("Review Type is seting up to: " + reviewtype);
</script>
</action>
</event>
<transition name="approval" to="startapproval"/>
<transition name="review" to="startreview">
<condition>#{reviewtype == "true"}</condition>
</transition>
</decision>
<!–**************************–>
<!–** <Node> **–>
<!–** startreview **–>
<!–**************************–>
<node name="startreview">
<action class="org.alfresco.repo.workflow.jbpm.ForEachFork">
<foreach>#{lwf_reviewAssignees}</foreach>
<var>reviewer</var>
</action>
<event type="node-enter">
<action class="lpr.alfresco.repo.workflow.jbpm.WriteInfo">
<type>Node</type>
<name>startreview</name>
<disable>false</disable>
</action>
<!– Set document status to Review –>
<action class="lpr.alfresco.repo.workflow.jbpm.SetDocumentStatus">
<status>Review</status>
</action>
<!– Move Document to Review and Approval folder –>
<action class="lpr.alfresco.repo.workflow.jbpm.MoveDocument">
<folderdst>Review and Approval</folderdst>
</action>
<script>
<variable name="lwf_reviewCount" access="write" />
<expression>
lwf_reviewCount = 0;
</expression>
</script>
</event>
<transition name="review" to="review"/>
</node>
<!–**************************–>
<!–** <Task Node> **–>
<!–** review **–>
<!–**************************–>
<task-node name="review">
<task name="lwf_reviewTask" swimlane="reviewer">
<!– assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
<actor>#{reviewer}</actor>
</assignment–>
</task>
<event type="node-enter">
<action class="lpr.alfresco.repo.workflow.jbpm.WriteInfo">
<type>Task Node</type>
<name>review</name>
<disable>false</disable>
</action>
<!– Set read permission for tne current reviewer –>
<action class="lpr.alfresco.repo.workflow.jbpm.SetPermissions">
<actor>#{reviewer}</actor>
<permission>set</permission>
</action>
</event>
<transition name="reject" to="endReview"/>
<transition name="approve" to="endReview">
<script>
<variable name="lwf_reviewCount" access="read,write" />
<expression>
lwf_reviewCount = lwf_reviewCount + 1;
</expression>
</script>
</transition>
</task-node>
<!–**************************–>
<!–** <<Join>> **–>
<!–**************************–>
<join name="endReview">
<event type="node-enter">
<action class="lpr.alfresco.repo.workflow.jbpm.WriteInfo">
<type>Join</type>
<disable>false</disable>
</action>
<!– Unset read permission for tne current reviewer –>
<action class="lpr.alfresco.repo.workflow.jbpm.SetPermissions">
<actor>#{reviewer}</actor>
<permission>unset</permission>
</action>
</event>
<transition to="isreviewed" />
</join>
<!–**************************–>
<!–** <Decision> **–>
<!–** isreviewed **–>
<!–**************************–>
<decision name="isreviewed">
<event type="node-enter">
<action class="lpr.alfresco.repo.workflow.jbpm.WriteInfo">
<type>Decision</type>
<name>isreviewed</name>
<disable>false</disable>
</action>
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
<variable name="lwf_requiredReviewerPercent" access="write"/>
<expression>lwf_requiredReviewerPercent = lwf_requiredReviewPercent;</expression>
</script>
</action>
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
<variable name="lwf_reviewerCount" access="write"/>
<expression>lwf_reviewerCount = lwf_reviewAssignees.size();</expression>
</script>
</action>
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
<variable name="lwf_actualReviewerPercent" access="write"/>
<expression>lwf_actualReviewerPercent = ((lwf_reviewCount * 100) / lwf_reviewerCount);</expression>
</script>
</action>
</event>
<transition name="reject" to="rejected"/>
<transition name="approve" to="startapproval">
<condition>#{lwf_actualReviewerPercent >= lwf_requiredReviewerPercent}</condition>
</transition>
</decision>
<!–**************************–>
<!–** <Node> **–>
<!–** startapproval **–>
<!–**************************–>
<node name="startapproval">
<event type="node-enter">
<action class="lpr.alfresco.repo.workflow.jbpm.WriteInfo">
<type>Node</type>
<name>startapproval</name>
<disable>false</disable>
</action>
<!– Set document status to In Approval –>
<action class="lpr.alfresco.repo.workflow.jbpm.SetDocumentStatus">
<status>Approval</status>
</action>
<!– Move Document to Review and Approval folder –>
<action class="lpr.alfresco.repo.workflow.jbpm.MoveDocument">
<folderdst>Review and Approval</folderdst>
</action>
<!– Get Approbators Group –>
<action class="lpr.alfresco.repo.workflow.jbpm.getApprobators">
<var>group</var>
</action>
<!– Set read permission for approbators group –>
<action class="lpr.alfresco.repo.workflow.jbpm.SetPermissions">
<pooledactors>#{group}</pooledactors>
<permission>set</permission>
</action>
</event>
<transition name="lwf_approve" to="approval"/>
</node>
<!–**************************–>
<!–** <Task Node> **–>
<!–** approval **–>
<!–**************************–>
<task-node name="approval">
<task name="lwf_approvalTask" swimlane="approbators">
<event type="task-end">
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
<expression>
if (taskInstance.actorId == null)
taskInstance.actorId = person.properties.userName;
</expression>
</script>
</action>
</event>
</task>
<event type="node-enter">
<action class="lpr.alfresco.repo.workflow.jbpm.WriteInfo">
<type>Task Node</type>
<name>approval</name>
<disable>false</disable>
</action>
<!– Set read permission for tne current approbator –>
<action class="lpr.alfresco.repo.workflow.jbpm.SetPermissions">
<pooledactors>#{group}</pooledactors>
<permission>set</permission>
</action>
</event>
<event type="node-leave">
<!– Unset read permission for tne group approbator –>
<action class="lpr.alfresco.repo.workflow.jbpm.SetPermissions">
<pooledactors>#{group}</pooledactors>
<permission>unset</permission>
</action>
</event>
<transition name="lwf_reject" to="rejected" />
<transition name="lwf_approve" to="checkpdf" />
</task-node>
<!–**************************–>
<!–** <Decision> **–>
<!–** checkpdf **–>
<!–**************************–>
<decision name="checkpdf">
<event type="node-enter">
<action class="lpr.alfresco.repo.workflow.jbpm.WriteInfo">
<type>Decision</type>
<name>checkpdf</name>
<disable>false</disable>
</action>
<!– Check if PDF convertion is enabled –>
<action class="lpr.alfresco.repo.workflow.jbpm.CheckPDFConvert">
<var>pdf</var>
</action>
</event>
<transition name="quality" to="startquality"/>
<transition name="published" to="published">
<condition>#{pdf == "true"}</condition>
</transition>
</decision>
<!–**************************–>
<!–** <Node> **–>
<!–** startquality **–>
<!–**************************–>
<node name="startquality">
<event type="node-enter">
<action class="lpr.alfresco.repo.workflow.jbpm.WriteInfo">
<type>Node</type>
<name>startquality</name>
<disable>false</disable>
</action>
<action class="lpr.alfresco.repo.workflow.jbpm.SetDocumentStatus">
<status>Quality Approval</status>
</action>
<!– Move Document to Drafts folder –>
<action class="lpr.alfresco.repo.workflow.jbpm.MoveDocument">
<qualitydst>Quality</qualitydst>
</action>
<!– Set Editor permission for the Quality Group –>
<action class="lpr.alfresco.repo.workflow.jbpm.SetPermissions">
<pooledactors>GROUP_A_QUALITY_APPROBATORS</pooledactors>
<permission>setEditor</permission>
</action>
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
<variable name="lwf_qualityReference" access="write"/>
<expression>lwf_qualityReference="EU-DSI-IOP.0001";</expression>
</script>
</action>
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
<variable name="lwf_qualityAgreement" access="write"/>
<expression>lwf_qualityAgreement="v1.0.Published.2008-04-23";</expression>
</script>
</action>
</event>
<transition name="approval" to="quality"/>
</node>
<!–**************************–>
<!–** <Task Node> **–>
<!–** quality **–>
<!–**************************–>
<task-node name="quality">
<task name="lwf_qualityTask" swimlane="qualityassignees">
<event type="task-end">
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
<script>
<expression>
if (taskInstance.actorId == null)
taskInstance.actorId = person.properties.userName;
</expression>
</script>
</action>
</event>
</task>
<event type="node-enter">
<action class="lpr.alfresco.repo.workflow.jbpm.WriteInfo">
<type>Task Node</type>
<name>quality</name>
<disable>false</disable>
</action>
</event>
<event type="node-leave">
<action class="lpr.alfresco.repo.workflow.jbpm.SetPermissions">
<pooledactors>GROUP_A_QUALITY_APPROBATORS</pooledactors>
<permission>unsetEditor</permission>
</action>
<!– Move Document to Drafts folder –>
<action class="lpr.alfresco.repo.workflow.jbpm.MoveDocument">
<folderdst>Review and Approval</folderdst>
</action>
</event>
<!– transition name="continue" to="qualityapproval" /–>
<transition name="continue" to="published"/>
</task-node>
<!–**************************–>
<!–** <Task Node> **–>
<!–** qualityapproval **–>
<!–**************************–>
<!–task-node name="qualityapproval2">
<task name="lwf_QualityTask" swimlane="qualityassignees" />
<event type="node-enter">
<action class="lpr.alfresco.repo.workflow.jbpm.WriteInfo">
<type>Task Node</type>
<name>qualityapproval</name>
<disable>false</disable>
</action>
</event>
<event type="node-leave">
<action class="lpr.alfresco.repo.workflow.jbpm.SetPermissions">
<pooledactors>GROUP_A_QUALITY_APPROBATORS</pooledactors>
<permission>unsetEditor</permission>
</action>
</event–>
<!– transition name="rejection" to="rejected" /–>
<!–transition name="approve" to="published"/>
</task-node–>
<!–**************************–>
<!–** <Task Node> **–>
<!–** rejected **–>
<!–**************************–>
<task-node name="rejected">
<task name="lwf:rejectedTask" swimlane="initiator" />
<event type="node-enter">
<action class="lpr.alfresco.repo.workflow.jbpm.WriteInfo">
<type>Task Node</type>
<name>rejected</name>
<disable>false</disable>
</action>
<!– Set document status to Drafts –>
<action class="lpr.alfresco.repo.workflow.jbpm.SetDocumentStatus">
<status>Draft</status>
</action>
<!– Move Document to Drafts folder –>
<action class="lpr.alfresco.repo.workflow.jbpm.MoveDocument">
<folderdst>Drafts</folderdst>
</action>
<!– Unset read permission for the initiator –>
<action class="lpr.alfresco.repo.workflow.jbpm.SetPermissions">
<actor>#{initiator}</actor>
<permission>unset</permission>
</action>
<!– Set Editor Permissions for the initiator –>
<action class="lpr.alfresco.repo.workflow.jbpm.SetPermissions">
<actor>#{initiator}</actor>
<permission>setEditor</permission>
</action>
</event>
<event type="node-leave">
<!– unset Editor Permissions for the initiator –>
<action class="lpr.alfresco.repo.workflow.jbpm.SetPermissions">
<actor>#{initiator}</actor>
<permission>unsetEditor</permission>
</action>
</event>
<transition to="checkreview" name="restart"/>
<transition to="end" name="end">
<!– Restore all currents Permissions –>
<action class="lpr.alfresco.repo.workflow.jbpm.SetPermissions">
<permission>restore</permission>
</action>
</transition>
</task-node>
<!–**************************–>
<!–** <Task Node> **–>
<!–** published **–>
<!–**************************–>
<task-node name="published">
<task name="lwf:publishedTask" swimlane="initiator" />
<event type="node-enter">
<action class="lpr.alfresco.repo.workflow.jbpm.WriteInfo">
<type>Task Node</type>
<name>published</name>
<disable>false</disable>
</action>
<action class="lpr.alfresco.repo.workflow.jbpm.ApprovedDocument">
<folderdst>Approved</folderdst>
<!– status>Approved</status–>
</action>
<action class="lpr.alfresco.repo.workflow.jbpm.PublishedDocument">
<folderdst>Published</folderdst>
<!– status>Approved</status–>
</action>
<!– Unset Editor permission for the Quality Group –>
<action class="lpr.alfresco.repo.workflow.jbpm.SetPermissions">
<pooledactors>GROUP_A_QUALITY_APPROBATORS</pooledactors>
<permission>unsetEditor</permission>
</action>
</event>
<transition to="end"/>
</task-node>
<!–**************************–>
<!–** <End State> **–>
<!–** end **–>
<!–**************************–>
<end-state name="end">
<event type="node-enter">
<action class="lpr.alfresco.repo.workflow.jbpm.WriteInfo">
<type>End State</type>
<name>end</name>
<disable>false</disable>
</action>
</event>
</end-state>
</process-definition>
<?xml version="1.0" encoding="latin9"?>
<model name="lwf:validationmodel" xmlns="http://www.alfresco.org/model/dictionary/1.0">
<!– Optional meta-data about the model –>
<description>LPR Workflow Documents Model</description>
<author>Huberson David</author>
<version>1.0</version>
<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"/>
<import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
</imports>
<namespaces>
<!–namespace uri="lwf.workflowModel" prefix="lwf"/–>
<namespace uri="http://www.alfresco.org/model/lpr_lwfvalidation/1.0" prefix="lwf"/>
</namespaces>
<!–*****************************************************************************–>
<!–* TYPES *–>
<!–*****************************************************************************–>
<types>
<!–**************************–>
<!–** <Start State> **–>
<!–** start **–>
<!–**************************–>
<type name="lwf:submitReviewAndApprovalTask">
<parent>bpm:startTask</parent>
<properties>
<property name="lwf:requiredReviewPercent">
<type>d:int</type>
<mandatory>true</mandatory>
<default>50</default>
<constraints>
<constraint type="MINMAX">
<parameter name="minValue"><value>1</value></parameter>
<parameter name="maxValue"><value>100</value></parameter>
</constraint>
</constraints>
</property>
<!–property name="lwf:requiredApprovalPercent">
<type>d:int</type>
<default>100</default>
</property–>
</properties>
<mandatory-aspects>
<aspect>lwf:reviewAssignees</aspect>
<!–aspect>lwf:approvalAssignees</aspect–>
</mandatory-aspects>
</type>
<!–**************************–>
<!–** <Task Node> **–>
<!–** review **–>
<!–**************************–>
<type name="lwf:reviewTask">
<parent>bpm:workflowTask</parent>
<!–properties>
<property name="lwf:qualityReferencer">
<type>d:int</type>
</property>
<property name="lwf:qualityAgreementer">
<type>d:int</type>
</property>
</properties–>
<overrides>
<property name="bpm:packageItemActionGroup">
<default>edit_package_item_actions</default>
</property>
</overrides>
<mandatory-aspects>
<aspect>lwf:qualityReferences</aspect>
</mandatory-aspects>
</type>
<!–**************************–>
<!–** <Task Node> **–>
<!–** approval **–>
<!–**************************–>
<type name="lwf:approvalTask">
<parent>bpm:workflowTask</parent>
<overrides>
<property name="bpm:packageItemActionGroup">
<default>edit_package_item_actions</default>
</property>
</overrides>
</type>
<!–**************************–>
<!–** <Task Node> **–>
<!–** quality **–>
<!–**************************–>
<type name="lwf:qualityTask">
<parent>bpm:workflowTask</parent>
<mandatory-aspects>
<aspect>lwf:qualityReferences</aspect>
</mandatory-aspects>
<!–overrides>
<property name="bpm:packageItemActionGroup">
<default>edit_package_item_actions</default>
</property>
<property name="lwf:qualityReference">
<type>d:text</type>
</property>
<property name="lwf:qualityAgreement">
<type>d:text</type>
</property>
</overrides–>
<!–mandatory-aspects>
<aspect>lwf:QualityAgreement</aspect>
</mandatory-aspects–>
</type>
<!–**************************–>
<!–** <Task Node> **–>
<!–** rejected **–>
<!–**************************–>
<type name="lwf:rejectedTask">
<parent>bpm:workflowTask</parent>
<overrides>
<property name="bpm:packageItemActionGroup">
<default>edit_package_item_actions</default>
</property>
</overrides>
<!–mandatory-aspects>
<aspect>lwf:ApprovalStats</aspect>
</mandatory-aspects–>
</type>
<!–**************************–>
<!–** <Task Node> **–>
<!–** published **–>
<!–**************************–>
<type name="lwf:publishedTask">
<parent>bpm:workflowTask</parent>
<overrides>
<property name="bpm:packageItemActionGroup">
<default>edit_package_item_actions</default>
</property>
</overrides>
<!–mandatory-aspects>
<aspect>lwf:ApprovalStats</aspect>
</mandatory-aspects–>
</type>
<!–type name="lwf:rejectedReviewTask">
<parent>bpm:workflowTask</parent>
<mandatory-aspects>
<aspect>lwf:ReviewStats</aspect>
</mandatory-aspects>
</type–>
<!–type name="lwf:approvalReviewTask">
<parent>bpm:workflowTask</parent>
<mandatory-aspects>
<aspect>lwf:ReviewStats</aspect>
</mandatory-aspects>
</type–>
<!–type name="lwf:rejectedApprovalTask">
<parent>bpm:workflowTask</parent>
<mandatory-aspects>
<aspect>lwf:ApprovalStats</aspect>
</mandatory-aspects>
</type–>
<!–type name="lwf:approvalApprovalTask">
<parent>bpm:workflowTask</parent>
<mandatory-aspects>
<aspect>lwf:ApprovalStats</aspect>
</mandatory-aspects>
</type–>
</types>
<!–*****************************************************************************–>
<!–* ASPECTS *–>
<!–*****************************************************************************–>
<aspects>
<!–**************************–>
<!–** <Start State> **–>
<!–** start **–>
<!–**************************–>
<aspect name="lwf:reviewAssignees">
<associations>
<association name="lwf:reviewAssignees">
<source>
<mandatory>false</mandatory>
<many>false</many>
</source>
<target>
<class>cm:person</class>
<!–mandatory>true</mandatory–>
<mandatory>false</mandatory>
<many>true</many>
</target>
</association>
</associations>
</aspect>
<!–**************************–>
<!–** <Task Node> **–>
<!–** qualityapproval **–>
<!–**************************–>
<aspect name="lwf:qualityReferences">
<properties>
<property name="lwf:qualityReference">
<type>d:int</type>
</property>
<property name="lwf:qualityAgreement">
<type>d:int</type>
</property>
</properties>
</aspect>
<!–aspect name="lwf:approvalAssignees">
<associations>
<association name="lwf:approvalAssignees">
<source>
<mandatory>false</mandatory>
<many>false</many>
</source>
<target>
<class>cm:person</class>
<mandatory>true</mandatory>
<many>true</many>
</target>
</association>
</associations>
</aspect–>
<!–aspect name="lwf:assignActor">
<properties>
<property name="lwf:assignActor">
<type>d:text</type>
</property>
</properties>
</aspect–>
<!–aspect name="lwf:ReviewStats">
<properties>
<property name="lwf:reviewerCount">
<type>d:int</type>
</property>
<property name="lwf:requiredReviewerPercent">
<type>d:int</type>
</property>
<property name="lwf:reviewCount">
<type>d:int</type>
</property>
<property name="lwf:actualReviewerPercent">
<type>d:int</type>
</property>
</properties>
</aspect–>
<!–aspect name="lwf:ApprovalStats">
<properties>
<property name="lwf:approbatorCount">
<type>d:int</type>
</property>
<property name="lwf:requiredApprobatorPercent">
<type>d:int</type>
</property>
<property name="lwf:approvalCount">
<type>d:int</type>
</property>
<property name="lwf:actualApprobatorPercent">
<type>d:int</type>
</property>
</properties>
</aspect–>
<!–aspect name="lwf:QualityAgreement">
<properties>
<property name="lwf:QualityAgreement">
<type>d:text</type>
</property>
</properties>
</aspect–>
</aspects>
</model>
<alfresco-config>
<!– Example of overriding the from email address –>
<config>
<client>
<from-email-address>alfresco@lpr.eu</from-email-address>
<!– search-max-results>100</search-max-results –>
</client>
</config>
<!– Example of adding languages to the list in the login page –>
<config evaluator="string-compare" condition="Languages">
<languages>
<language locale="ca_ES">Catalan</language>
<language locale="da_DK">Danish</language>
<language locale="de_DE">German</language>
<language locale="es_ES">Spanish</language>
<language locale="el_GR">Greek</language>
<language locale="fr_FR">French</language>
<language locale="it_IT">Italian</language>
<language locale="ja_JP">Japanese</language>
<language locale="du_NL">Dutch</language>
<language locale="pt_BR">Portuguese (Brazilian)</language>
<language locale="ru_RU">Russian</language>
<language locale="fi_FI">Finnish</language>
<language locale="tr_TR">Turkish</language>
<language locale="zh_CN">Simplified Chinese</language>
</languages>
</config>
<!– Example of configuring advanced search –>
<!–
<config evaluator="string-compare" condition="Advanced Search">
<advanced-search>
<content-types>
</content-types>
<custom-properties>
<meta-data aspect="app:simpleworkflow" property="app:approveStep" />
</custom-properties>
</advanced-search>
</config>
–>
<!– Example of changing the sort direction for a view in the client –>
<!–
<config evaluator="string-compare" condition="Views">
<views>
<view-defaults>
<topic>
<sort-direction>ascending</sort-direction>
</topic>
</view-defaults>
</views>
</config>
–>
<!– Example of adding a custom icon to the Create Space dialog –>
<config evaluator="string-compare" condition="cm:folder icons">
<icons>
<icon name="space-icon-users" path="/images/icons/space-icon-users.gif" />
<icon name="space-icon-lpr" path="/images/icons/space-icon-lpr.gif" />
<icon name="space-icon-benelux" path="/images/icons/space-icon-benelux.gif" />
<icon name="space-icon-france" path="/images/icons/space-icon-france.gif" />
<icon name="space-icon-group" path="/images/icons/space-icon-group.gif" />
<icon name="space-icon-portugal" path="/images/icons/space-icon-portugal.gif" />
<icon name="space-icon-spain" path="/images/icons/space-icon-spain.gif" />
<icon name="space-icon-united-kingdom" path="/images/icons/space-icon-united-kingdom.gif" />
<icon name="space-icon-pallet" path="/images/icons/space-icon-pallet.gif" />
</icons>
</config>
<!– The config below shows how to incorporate the example model–>
<!– into the web client, for this to work you will need to –>
<!– rename example-model-context.xml.sample to example-model-context.xml –>
<!–
<config evaluator="string-compare" condition="Content Wizards">
<content-types>
<type name="my:sop" />
</content-types>
</config>
<config evaluator="node-type" condition="my:sop">
<property-sheet>
<show-property name="mimetype" display-label-id="content_type"
component-generator="MimeTypeSelectorGenerator" />
<show-property name="size" display-label-id="size"
converter="org.alfresco.faces.ByteSizeConverter"
show-in-edit-mode="false" />
<show-property name="my:publishedDate" />
<show-association name="my:signOff" />
<show-property name="my:authorisedBy" />
<show-child-association name="my:processSteps" />
</property-sheet>
</config>
<config evaluator="aspect-name" condition="my:imageClassification">
<property-sheet>
<show-property name="my:width"/>
<show-property name="my:height"/>
<show-property name="my:resolution"/>
</property-sheet>
</config>
<config evaluator="string-compare" condition="Action Wizards">
<aspects>
<aspect name="my:imageClassification"/>
</aspects>
</config>
<config evaluator="string-compare" condition="Advanced Search">
<advanced-search>
<content-types>
<type name="my:sop" />
</content-types>
<custom-properties>
<meta-data type="my:sop" property="my:authorisedBy" />
<meta-data aspect="my:imageClassification" property="my:resolution" />
</custom-properties>
</advanced-search>
</config>
–>
<config evaluator="aspect-name" condition="lpr:Document">
<property-sheet>
<show-property name="lpr:Language"/>
<show-property name="lpr:PDFConvert" show-in-edit-mode="true"/>
<separator name="sepLpr1" display-label="Quality reference" component-generator="HeaderSeparatorGenerator" show-in-edit-mode="false"/>
<show-property name="lpr:Status" show-in-edit-mode="false"/>
<!–show-property name="lpr:Reference" show-in-edit-mode="false"/–>
<show-property name="lpr:QualityReference" show-in-edit-mode="false"/>
<!–show-association name="lpr:ReviewedBy" display-label-id="lpr_ReviewedBy" /–>
<!–show-association name="lpr:ApprovedBy" display-label-id="lpr_ApprovedBy" /–>
<show-property name="lpr:Reviewers" show-in-edit-mode="false"/>
<show-property name="lpr:ReviewersName" show-in-edit-mode="false"/>
<show-property name="lpr:Approbators" show-in-edit-mode="false"/>
<show-property name="lpr:ApprobatorsName" show-in-edit-mode="false"/>
<show-property name="lpr:QualityAgreement" show-in-edit-mode="false"/>
<separator name="sepLpr2" display-label="Document versionning" component-generator="HeaderSeparatorGenerator" show-in-edit-mode="false"/>
<show-property name="lpr:MajorVersion" show-in-edit-mode="true"/>
</property-sheet>
</config>
<config evaluator="aspect-name" condition="lpr:Status">
<property-sheet>
<show-property name="lpr:Status" show-in-edit-mode="false"/>
</property-sheet>
</config>
<config evaluator="string-compare" condition="Action Wizards">
<aspects>
<aspect name="lpr:Document" />
</aspects>
<subtypes>
</subtypes>
</config>
<config evaluator="string-compare" condition="Advanced Search">
<advanced-search>
<content-types>
</content-types>
<custom-properties>
<meta-data aspect="lpr:Reference" property="lpr:Reference" />
<meta-data aspect="lpr:Status" property="lpr:Status"/>
<meta-data aspect="lpr:QualityReference" property="lpr:QualityReference"/>
<meta-data aspect="lpr:QualityAgreement" property="lpr:QualityAgreement"/>
</custom-properties>
</advanced-search>
</config>
<!–************************************************************************–>
<!–* Workflow Configuration *–>
<!–************************************************************************–>
<!–**************************–>
<!–** <Start State> **–>
<!–** start **–>
<!–**************************–>
<config evaluator="node-type" condition="lwf:submitReviewAndApprovalTask" replace="true">
<property-sheet>
<separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
<show-property name="bpm:workflowDescription" component-generator="TextAreaGenerator" />
<show-property name="bpm:workflowPriority" display-label-id="wf_review_priority" />
<!–show-property name="bpm:workflowDueDate" display-label-id="wf_review_due_date" /–>
<separator name="sep2" display-label-id="sep_review_options" component-generator="HeaderSeparatorGenerator" />
<show-association name="lwf:reviewAssignees" display-label-id="lwf_reviewAssignees" />
<!–show-association name="lwf:approvalAssignees" display-label-id="lwf_approvals" /–>
<!–separator name="sep3" display-label-id="lwf_review_options" component-generator="HeaderSeparatorGenerator" /–>
<show-property name="lwf:requiredReviewPercent" display-label-id="lwf_requiredReviewPercent" />
</property-sheet>
</config>
<!–**************************–>
<!–** <Task Node> **–>
<!–** review **–>
<!–**************************–>
<config evaluator="node-type" condition="lwf:reviewTask" replace="true">
<property-sheet>
<separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
<show-property name="bpm:taskId" />
<show-property name="bpm:description" component-generator="TextAreaGenerator" read-only="true"/>
<!–show-property name="bpm:dueDate" read-only="true" /–>
<show-property name="bpm:priority" read-only="true" />
<show-property name="bpm:status" />
<show-property name="bpm:comment" component-generator="TextAreaGenerator" />
<show-property name="lwf:qualityReference" display-label-id="lwf_qualityReference" read-only="true"/>
<show-property name="lwf:qualityAgreement" display-label-id="lwf_qualityAgreement" read-only="true"/>
</property-sheet>
</config>
<!–**************************–>
<!–** <Task Node> **–>
<!–** approval **–>
<!–**************************–>
<config evaluator="node-type" condition="lwf:approvalTask" replace="true">
<property-sheet>
<separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
<show-property name="bpm:taskId" />
<show-property name="bpm:description" component-generator="TextAreaGenerator" read-only="true"/>
<!–show-property name="bpm:dueDate" read-only="true" /–>
<show-property name="bpm:priority" read-only="true" />
<show-property name="bpm:status" />
<show-property name="bpm:comment" component-generator="TextAreaGenerator" />
</property-sheet>
</config>
<!–**************************–>
<!–** <Task Node> **–>
<!–** quality **–>
<!–**************************–>
<config evaluator="node-type" condition="lwf:qualityTask" replace="true">
<property-sheet>
<separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
<show-property name="bpm:taskId"/>
<show-property name="bpm:description" component-generator="TextAreaGenerator" read-only="true"/>
<!–show-property name="bpm:dueDate" read-only="true"/–>
<show-property name="bpm:priority" read-only="true"/>
<show-property name="bpm:status" read-only="true"/>
<!–show-property name="lwf:QualityAgreement" display-label-id="lwf_QualityAgreement"/–>
<show-property name="bpm:comment" component-generator="TextAreaGenerator"/>
<separator name="sep2" display-label-id="sep_quality" component-generator="HeaderSeparatorGenerator" />
<show-property name="lwf:qualityReference" display-label-id="lwf_qualityReference" read-only="true"/>
<show-property name="lwf:qualityAgreement" display-label-id="lwf_qualityAgreement" read-only="true"/>
</property-sheet>
</config>
<!–**************************–>
<!–** <Task Node> **–>
<!–** rejected **–>
<!–**************************–>
<config evaluator="node-type" condition="lwf:rejectedTask" replace="true">
<property-sheet>
<separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
<show-property name="bpm:taskId"/>
<show-property name="bpm:description" component-generator="TextAreaGenerator" read-only="true"/>
<!–show-property name="bpm:dueDate" read-only="true"/–>
<show-property name="bpm:priority" read-only="true"/>
<show-property name="bpm:status" read-only="true"/>
<show-property name="bpm:comment" component-generator="TextAreaGenerator"/>
<separator name="sep2" display-label-id="sep_review_and_approval" component-generator="HeaderSeparatorGenerator" />
<!–show-property name="lwf:reviewerCount" read-only="true"/>
<show-property name="lwf:requiredReviewerPercent" display-label-id="lwf_requiredReviewPercent" read-only="true"/>
<show-property name="lwf:reviewCount" read-only="true"/>
<show-property name="lwf:actualReviewerPercent" read-only="true"/–>
</property-sheet>
</config>
<!–**************************–>
<!–** <Task Node> **–>
<!–** published **–>
<!–**************************–>
<config evaluator="node-type" condition="lwf:publishedTask" replace="true">
<property-sheet>
<separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
<show-property name="bpm:taskId"/>
<show-property name="bpm:description" component-generator="TextAreaGenerator" read-only="true"/>
<!–show-property name="bpm:dueDate" read-only="true"/–>
<show-property name="bpm:priority" read-only="true"/>
<show-property name="bpm:status" read-only="true"/>
<show-property name="bpm:comment" component-generator="TextAreaGenerator"/>
<!–separator name="sep2" display-label-id="lwf_approval_status" component-generator="HeaderSeparatorGenerator" /–>
<!–show-property name="lwf:approbatorCount" read-only="true"/–>
<!–show-property name="lwf:requiredApprobatorPercent" read-only="true"/–>
<!–show-property name="lwf:approvalCount" read-only="true"/–>
<!–show-property name="lwf:actualApprobatorPercent" read-only="true"/–>
</property-sheet>
</config>
<!– –>
<!–config evaluator="node-type" condition="lwf:approvedReviewTask" replace="true">
<property-sheet>
<separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
<show-property name="bpm:taskId"/>
<show-property name="bpm:description" component-generator="TextAreaGenerator" read-only="true"/>
<show-property name="bpm:dueDate" read-only="true"/>
<show-property name="bpm:priority" read-only="true"/>
<show-property name="bpm:status" read-only="true"/>
<show-property name="bpm:comment" component-generator="TextAreaGenerator"/>
<separator name="sep2" display-label-id="lwf_review_status" component-generator="HeaderSeparatorGenerator" />
<show-property name="lwf:reviewerCount" read-only="true"/>
<show-property name="lwf:requiredReviewerPercent" display-label-id="lwf_requiredReviewPercent" read-only="true"/>
<show-property name="lwf:reviewCount" read-only="true"/>
<show-property name="lwf:actualReviewerPercent" read-only="true"/>
</property-sheet>
</config–>
<!–config evaluator="node-type" condition="lwf:rejectedReviewTask" replace="true">
<property-sheet>
<separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
<show-property name="bpm:taskId"/>
<show-property name="bpm:description" component-generator="TextAreaGenerator" read-only="true"/>
<show-property name="bpm:dueDate" read-only="true"/>
<show-property name="bpm:priority" read-only="true"/>
<show-property name="bpm:status" read-only="true"/>
<show-property name="bpm:comment" component-generator="TextAreaGenerator"/>
<separator name="sep2" display-label-id="lwf_review_status" component-generator="HeaderSeparatorGenerator" />
<show-property name="lwf:reviewerCount" read-only="true"/>
<show-property name="lwf:requiredReviewerPercent" display-label-id="lwf_requiredReviewPercent" read-only="true"/>
<show-property name="lwf:reviewCount" read-only="true"/>
<show-property name="lwf:actualReviewerPercent" read-only="true"/>
</property-sheet>
</config–>
<!–config evaluator="node-type" condition="lwf:rejectedApprovalTask" replace="true">
<property-sheet>
<separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
<show-property name="bpm:taskId"/>
<show-property name="bpm:description" component-generator="TextAreaGenerator" read-only="true"/>
<show-property name="bpm:dueDate" read-only="true"/>
<show-property name="bpm:priority" read-only="true"/>
<show-property name="bpm:status" read-only="true"/>
<show-property name="bpm:comment" component-generator="TextAreaGenerator"/>
<separator name="sep2" display-label-id="lwf_approval_status" component-generator="HeaderSeparatorGenerator" />
<show-property name="lwf:approbatorCount" read-only="true"/>
<show-property name="lwf:requiredApprobatorPercent" read-only="true"/>
<show-property name="lwf:approvalCount" read-only="true"/>
<show-property name="lwf:actualApprobatorPercent" read-only="true"/>
</property-sheet>
</config–>
<!–config evaluator="node-type" condition="lwf:approvedApprovalTask" replace="true">
<property-sheet>
<separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
<show-property name="bpm:taskId"/>
<show-property name="bpm:description" component-generator="TextAreaGenerator" read-only="true"/>
<-show-property name="bpm:dueDate" read-only="true"/>
<show-property name="bpm:priority" read-only="true"/>
<show-property name="bpm:status" read-only="true"/>
<show-property name="bpm:comment" component-generator="TextAreaGenerator"/>
<separator name="sep2" display-label-id="lwf_approval_status" component-generator="HeaderSeparatorGenerator" />
<show-property name="lwf:approbatorCount" read-only="true"/>
<-show-property name="lwf:requiredApprobatorPercent" read-only="true"/>
<-show-property name="lwf:approvalCount" read-only="true"/>
<-show-property name="lwf:actualApprobatorPercent" read-only="true"/>
</property-sheet>
</config–>
<!–config evaluator="node-type" condition="lwf:rejectedQualityTask" replace="true">
<property-sheet>
<separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
<show-property name="bpm:taskId"/>
<show-property name="bpm:description" component-generator="TextAreaGenerator" read-only="true"/>
<show-property name="bpm:dueDate" read-only="true"/>
<show-property name="bpm:priority" read-only="true"/>
<show-property name="bpm:status" read-only="true"/>
<show-property name="bpm:comment" component-generator="TextAreaGenerator"/>
<separator name="sep2" display-label-id="lwf_approval_status" component-generator="HeaderSeparatorGenerator" />
<show-property name="lwf:approbatorCount" read-only="true"/>
<show-property name="lwf:requiredApprobatorPercent" read-only="true"/>
<show-property name="lwf:approvalCount" read-only="true"/>
<show-property name="lwf:actualApprobatorPercent" read-only="true"/>
</property-sheet>
</config–>
<!–config evaluator="node-type" condition="lwf:approvedQualityTask" replace="true">
<property-sheet>
<separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator" />
<show-property name="bpm:taskId"/>
<show-property name="bpm:description" component-generator="TextAreaGenerator" read-only="true"/>
<show-property name="bpm:dueDate" read-only="true"/>
<show-property name="bpm:priority" read-only="true"/>
<show-property name="bpm:status" read-only="true"/>
<show-property name="lwf:QualityAgreement" display-label-id="lwf_QualityAgreement" read-only="true"/>
<show-property name="bpm:comment" component-generator="TextAreaGenerator"/>
<separator name="sep2" display-label-id="lwf_approval_status" component-generator="HeaderSeparatorGenerator" />
<show-property name="lwf:approbatorCount" read-only="true"/>
<show-property name="lwf:requiredApprobatorPercent" read-only="true"/>
<show-property name="lwf:approvalCount" read-only="true"/>
<show-property name="lwf:actualApprobatorPercent" read-only="true"/>
</property-sheet>
</config–>
</alfresco-config>
Content from pre 2016 and from language groups that have been closed.
Content is read-only.
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.