AnsweredAssumed Answered

workflow web client exposes unwanted elements

Question asked by kay_be_ on Jan 13, 2012
Latest reply on Mar 2, 2012 by acurs
I'm trying to port a jBPM workflow (from Packt Alfresco developer guide)  to activiti workflow guided by http://ecmarchitect.com/archives/2011/04/27/1357
After defining the definition, model and adjusting the web-client-config-custom.xml I end up with a review task that 's stuffed with unwanted fields. Where do they come from and how do I remove them?
for example: 'Landinstelling' (Country), bpm:outcomePropertyName, NEXT-button
Here is the screenshot:
[img]http://i279.photobucket.com/albums/kk127/_Naoko_/alfresco/Capture.png[/img]

the definition:

<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
  <process id="activitiPublishWhitepaper" name="activitiPublishWhitepaper">
    <startEvent id="startevent5" name="Start" activiti:formKey="scwf:submitReviewTask"></startEvent>
    <endEvent id="endevent6" name="End"></endEvent>
    <parallelGateway id="parallelgateway3" name="Parallel Gateway"></parallelGateway>
    <parallelGateway id="parallelgateway4" name="Parallel Gateway"></parallelGateway>
    <userTask id="usertask7" name="Operations Review" activiti:candidateGroups="GROUP_Operations" activiti:formKey="scwf:activitiOperationsReview">
      <extensionElements>
        <activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
          <activiti:field name="script">
            <activiti:string>
                /* next two lines are workarounds ACT-765, ACT-766 */
                if (typeof bpm_workflowDueDate != 'undefined') task.setVariableLocal('bpm_dueDate', bpm_workflowDueDate);
                if (typeof bpm_workflowPriority != 'undefined') task.priority = bpm_workflowPriority;
            </activiti:string>
          </activiti:field>
        </activiti:taskListener>
        <activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
          <activiti:field name="script">
            <activiti:string>
                              /* approveRejectOutcome is het resultaat van deze activitiReviewTask-dochter */
                if(task.getVariableLocal('scwf_approveRejectOutcome') == 'Approve') {
                     var newApprovedCount = scwf_approveCount + 1;
                     execution.setVariable('scwf_approveCount', newApprovedCount);
                }
            </activiti:string>
          </activiti:field>
        </activiti:taskListener>
      </extensionElements>
    </userTask>
    <userTask id="usertask8" name="Marketing Review" activiti:candidateGroups="GROUP_Marketing" activiti:formKey="scwf:activitiMarketingReview">
      <extensionElements>
        <activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
          <activiti:field name="script">
            <activiti:string>
                /* next two lines are workarounds ACT-765, ACT-766 */
                if (typeof bpm_workflowDueDate != 'undefined') task.setVariableLocal('bpm_dueDate', bpm_workflowDueDate);
                if (typeof bpm_workflowPriority != 'undefined') task.priority = bpm_workflowPriority;
            </activiti:string>
          </activiti:field>
        </activiti:taskListener>
        <activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
          <activiti:field name="script">
            <activiti:string>
                              /* approveRejectOutcome is het resultaat van deze activitiReviewTask-dochter */
                if(task.getVariableLocal('scwf_approveRejectOutcome') == 'Approve') {
                     var newApprovedCount = scwf_approveCount + 1;
                     execution.setVariable('scwf_approveCount', newApprovedCount);
                }
            </activiti:string>
          </activiti:field>
        </activiti:taskListener>
      </extensionElements>
    </userTask>
    <exclusiveGateway id="exclusivegateway1" name="approved"></exclusiveGateway>
    <userTask id="usertask9" name="Revise" activiti:assignee="${initiator.properties.userName}" activiti:formKey="scwf:activitiRevise">
      <extensionElements>
        <activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
          <activiti:field name="script">
            <activiti:string>
                /* next two lines are workarounds ACT-765, ACT-766 */
                if (typeof bpm_workflowDueDate != 'undefined') task.setVariableLocal('bpm_dueDate', bpm_workflowDueDate);
                if (typeof bpm_workflowPriority != 'undefined') task.priority = bpm_workflowPriority;
            </activiti:string>
          </activiti:field>
        </activiti:taskListener>
        <activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
          <activiti:field name="script">
            <activiti:string>
                              /* reviseOutcome is het resultaat van deze activitiOutcomeTask-dochter die een property reviseOutcome heeft */
                if(task.getVariableLocal('scwf_reviseOutcome') == 'Re-submit') {                    
                     execution.setVariable('scwf_resubmit', true);
                } else {
                     execution.setVariable('scwf_resubmit', false);
                }
            </activiti:string>
          </activiti:field>
        </activiti:taskListener>
      </extensionElements>
    </userTask>
    <exclusiveGateway id="exclusivegateway2" name="needsThirdPartyReview"></exclusiveGateway>
    <scriptTask id="scripttask2" name="Submit" scriptFormat="javascript">
      <script><![CDATA[var scwf_approveCount = 0;]]></script>
    </scriptTask>
    <sequenceFlow id="flow13" name="" sourceRef="startevent5" targetRef="scripttask2"></sequenceFlow>
    <sequenceFlow id="flow14" name="" sourceRef="scripttask2" targetRef="parallelgateway3"></sequenceFlow>
    <sequenceFlow id="flow15" name="" sourceRef="parallelgateway3" targetRef="usertask7"></sequenceFlow>
    <sequenceFlow id="flow16" name="" sourceRef="parallelgateway3" targetRef="usertask8"></sequenceFlow>
    <sequenceFlow id="flow17" name="" sourceRef="usertask8" targetRef="parallelgateway4"></sequenceFlow>
    <sequenceFlow id="flow18" name="" sourceRef="usertask7" targetRef="parallelgateway4"></sequenceFlow>
    <sequenceFlow id="flow19" name="" sourceRef="parallelgateway4" targetRef="exclusivegateway1"></sequenceFlow>
    <sequenceFlow id="flow20" name="" sourceRef="exclusivegateway1" targetRef="usertask9">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${scwf_approveCount < 2}]]></conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="flow21" name="" sourceRef="exclusivegateway1" targetRef="exclusivegateway2">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${scwf_approveCount == 2}]]></conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="flow22" name="" sourceRef="exclusivegateway2" targetRef="usertask11">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${scwf_reviewerEmail != ''}]]></conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="flow23" name="" sourceRef="exclusivegateway2" targetRef="usertask12">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${scwf_reviewerEmail == ''}]]></conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="flow24" name="" sourceRef="usertask12" targetRef="endevent6"></sequenceFlow>
    <sequenceFlow id="flow25" name="" sourceRef="usertask11" targetRef="usertask9">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${scwf_tpApproved == false}]]></conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="flow26" name="" sourceRef="usertask9" targetRef="endevent6">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${scwf_resubmit == false}]]></conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="flow27" name="" sourceRef="usertask9" targetRef="scripttask2">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${scwf_resubmit == true}]]></conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="flow28" name="" sourceRef="usertask11" targetRef="usertask12">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${scwf_tpApproved == true}]]></conditionExpression>
    </sequenceFlow>
    <userTask id="usertask11" name="Third Party Review" activiti:assignee="${initiator.properties.userName}" activiti:formKey="scwf:activitiThirdPartyReview">
      <extensionElements>
        <activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
          <activiti:field name="script">
            <activiti:string>
                /* next two lines are workarounds ACT-765, ACT-766 */
                if (typeof bpm_workflowDueDate != 'undefined') task.setVariableLocal('bpm_dueDate', bpm_workflowDueDate);
                if (typeof bpm_workflowPriority != 'undefined') task.priority = bpm_workflowPriority;
            </activiti:string>
          </activiti:field>
        </activiti:taskListener>
        <activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
          <activiti:field name="script">
            <activiti:string>
                             /* approveRejectOutcome is het resultaat van deze activitiReviewTask-dochter */
                if(task.getVariableLocal('scwf_approveRejectOutcome') == 'Approve') {                    
                     execution.setVariable('scwf_tpApproved', true);
                } else {
                     execution.setVariable('scwf_tpApproved', false);
                }
            </activiti:string>
          </activiti:field>
        </activiti:taskListener>
      </extensionElements>
    </userTask>
    <userTask id="usertask12" name="Approved Notification" activiti:assignee="${initiator.properties.userName}" activiti:formKey="scwf:activitiApprovedNotification">
      <extensionElements>
        <activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
          <activiti:field name="script">
            <activiti:string>
                /* next two lines are workarounds ACT-765, ACT-766 */
                if (typeof bpm_workflowDueDate != 'undefined') task.setVariableLocal('bpm_dueDate', bpm_workflowDueDate);
                if (typeof bpm_workflowPriority != 'undefined') task.priority = bpm_workflowPriority;

                for (var i = 0; i &lt; bpm_package.children.length; i++) {
                    logger.log("Approving node:" + bpm_package.children[i].nodeRef);
                }
               
            </activiti:string>
          </activiti:field>
        </activiti:taskListener>
      </extensionElements>
    </userTask>
  </process>
  <bpmndi:BPMNDiagram id="BPMNDiagram_activitiPublishWhitepaper">
    <bpmndi:BPMNPlane bpmnElement="activitiPublishWhitepaper" id="BPMNPlane_activitiPublishWhitepaper">
      <bpmndi:BPMNShape bpmnElement="startevent5" id="BPMNShape_startevent5">
        <omgdc:Bounds height="35" width="35" x="422" y="20"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="endevent6" id="BPMNShape_endevent6">
        <omgdc:Bounds height="35" width="35" x="120" y="520"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="parallelgateway3" id="BPMNShape_parallelgateway3">
        <omgdc:Bounds height="40" width="40" x="419" y="175"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="parallelgateway4" id="BPMNShape_parallelgateway4">
        <omgdc:Bounds height="40" width="40" x="419" y="310"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="usertask7" id="BPMNShape_usertask7">
        <omgdc:Bounds height="55" width="105" x="300" y="230"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="usertask8" id="BPMNShape_usertask8">
        <omgdc:Bounds height="55" width="105" x="469" y="230"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="exclusivegateway1" id="BPMNShape_exclusivegateway1">
        <omgdc:Bounds height="40" width="40" x="419" y="380"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="usertask9" id="BPMNShape_usertask9">
        <omgdc:Bounds height="55" width="105" x="80" y="230"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="exclusivegateway2" id="BPMNShape_exclusivegateway2">
        <omgdc:Bounds height="40" width="40" x="419" y="450"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="scripttask2" id="BPMNShape_scripttask2">
        <omgdc:Bounds height="55" width="105" x="387" y="80"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="usertask11" id="BPMNShape_usertask11">
        <omgdc:Bounds height="55" width="105" x="196" y="408"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="usertask12" id="BPMNShape_usertask12">
        <omgdc:Bounds height="55" width="105" x="387" y="510"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge bpmnElement="flow13" id="BPMNEdge_flow13">
        <omgdi:waypoint x="457" y="37"></omgdi:waypoint>
        <omgdi:waypoint x="387" y="107"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow14" id="BPMNEdge_flow14">
        <omgdi:waypoint x="492" y="107"></omgdi:waypoint>
        <omgdi:waypoint x="419" y="195"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow15" id="BPMNEdge_flow15">
        <omgdi:waypoint x="439" y="215"></omgdi:waypoint>
        <omgdi:waypoint x="300" y="257"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow16" id="BPMNEdge_flow16">
        <omgdi:waypoint x="439" y="215"></omgdi:waypoint>
        <omgdi:waypoint x="469" y="257"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow17" id="BPMNEdge_flow17">
        <omgdi:waypoint x="574" y="257"></omgdi:waypoint>
        <omgdi:waypoint x="439" y="310"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow18" id="BPMNEdge_flow18">
        <omgdi:waypoint x="405" y="257"></omgdi:waypoint>
        <omgdi:waypoint x="423" y="307"></omgdi:waypoint>
        <omgdi:waypoint x="439" y="310"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow19" id="BPMNEdge_flow19">
        <omgdi:waypoint x="459" y="330"></omgdi:waypoint>
        <omgdi:waypoint x="419" y="400"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow20" id="BPMNEdge_flow20">
        <omgdi:waypoint x="439" y="380"></omgdi:waypoint>
        <omgdi:waypoint x="80" y="257"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow21" id="BPMNEdge_flow21">
        <omgdi:waypoint x="439" y="420"></omgdi:waypoint>
        <omgdi:waypoint x="439" y="410"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow22" id="BPMNEdge_flow22">
        <omgdi:waypoint x="439" y="450"></omgdi:waypoint>
        <omgdi:waypoint x="196" y="435"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow23" id="BPMNEdge_flow23">
        <omgdi:waypoint x="439" y="490"></omgdi:waypoint>
        <omgdi:waypoint x="439" y="455"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow24" id="BPMNEdge_flow24">
        <omgdi:waypoint x="492" y="537"></omgdi:waypoint>
        <omgdi:waypoint x="155" y="537"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow25" id="BPMNEdge_flow25">
        <omgdi:waypoint x="301" y="435"></omgdi:waypoint>
        <omgdi:waypoint x="80" y="257"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow26" id="BPMNEdge_flow26">
        <omgdi:waypoint x="185" y="257"></omgdi:waypoint>
        <omgdi:waypoint x="120" y="537"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow27" id="BPMNEdge_flow27">
        <omgdi:waypoint x="185" y="257"></omgdi:waypoint>
        <omgdi:waypoint x="387" y="107"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow28" id="BPMNEdge_flow28">
        <omgdi:waypoint x="301" y="435"></omgdi:waypoint>
        <omgdi:waypoint x="387" y="537"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
</definitions>

the model:

<!– Definition of new Model –>
<model name="scwf:workflowmodel" xmlns="http://www.alfresco.org/model/dictionary/1.0">

   <!– Optional meta-data about the model –>
   <description>Someco Workflow Model</description>
   <author>Jeff Potts</author>
   <version>1.0</version>

   <!– Imports are required to allow references to definitions in other models –>
   <imports>
      <import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"></import>
      <import uri="http://www.alfresco.org/model/bpm/1.0" prefix="bpm"></import>
   </imports>

   <!– Introduction of new namespaces defined by this model –>
   <namespaces>
      <namespace uri="http://www.someco.com/model/workflow/1.0" prefix="scwf"></namespace>
   </namespaces>

   <types>

      <type name="scwf:submitReviewTask">
         <parent>bpm:startTask</parent>
         <mandatory-aspects>
            <aspect>scwf:thirdPartyReviewable</aspect>
         </mandatory-aspects>
      </type>

        <type name="scwf:activitiOperationsReview">
            <parent>scwf:activitiReviewTask</parent>
        </type>

        <type name="scwf:activitiMarketingReview">
            <parent>scwf:activitiReviewTask</parent>
        </type>


        <type name="scwf:activitiRevise">
            <parent>bpm:activitiOutcomeTask</parent>
            <properties>
                <property name="scwf:reviseOutcome">
                    <type>d:text</type>
                    <default>Abort</default>
                    <constraints>
                        <constraint type="LIST">
                            <parameter name="allowedValues">
                                <list>
                                    <value>Re-submit</value>
                                    <value>Abort</value>
                                </list>
                            </parameter>
                        </constraint>
                    </constraints>
                </property>
            </properties>              
            <overrides>
                <property name="bpm:packageItemActionGroup">
                    <default>edit_package_item_actions</default>
                </property>
                <property name="bpm:outcomePropertyName">
                    <default>{http://www.someco.com/model/workflow/1.0}reviseOutcome</default>
                </property>
            </overrides>
        </type>

       
        <type name="scwf:activitiThirdPartyReview">
            <parent>scwf:activitiReviewTask</parent>
        </type>
       




        <type name="scwf:activitiReviewTask">
            <parent>bpm:activitiOutcomeTask</parent>
            <properties>
                <property name="scwf:approveRejectOutcome">
                    <type>d:text</type>
                    <default>Reject</default>
                    <constraints>
                        <constraint type="LIST">
                            <parameter name="allowedValues">
                                <list>
                                    <value>Approve</value>
                                    <value>Reject</value>
                                </list>
                            </parameter>
                        </constraint>
                    </constraints>
                </property>
            </properties>              
            <overrides>
                <property name="bpm:packageItemActionGroup">
                    <default>edit_package_item_actions</default>
                </property>
                <property name="bpm:outcomePropertyName">
                    <default>{http://www.someco.com/model/workflow/1.0}approveRejectOutcome</default>
                </property>
            </overrides>
        </type>

   <type name="scwf:activitiApprovedNotification">
          <parent>bpm:workflowTask</parent>
            <overrides>
                <property name="bpm:packageItemActionGroup">
                    <default>read_package_item_actions</default>
                </property>
            </overrides>         
   </type>
    </types>

   <aspects>
      <aspect name="scwf:thirdPartyReviewable">
         <title>Someco Third Party Reviewable</title>
         <properties>
            <property name="scwf:reviewerEmail">
               <type>d:text</type>
               <mandatory>false</mandatory>
               <multiple>false</multiple>
            </property>
         </properties>
      </aspect>
   </aspects>
</model>

the web-client-config.xml:


<alfresco-config>
    <config evaluator="node-type" condition="mywf:submitReviewTask" replace="true">
       <property-sheet>
          <seperator name="sep1" display-label-id="user and roles" component-generator="HeaderSeparatorGenerator"></seperator>
             <show-association name="bpm:assignee"></show-association>
      </property-sheet>
   </config>                                     
   <config evaluator="node-type" condition="mywf:myReviewTask" replace="true">
       <property-sheet>
          <seperator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator"></seperator>
             <show-property name="bpm:taskId"></show-property>
          <show-property name="bpm:description"></show-property>
          <show-property name="bpm:status"></show-property>
             
      </property-sheet>
   </config>
  
   <config evaluator="node-type" condition="mywf:activitiReviewTask" replace="true">
        <property-sheet>
            <seperator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator"></seperator>
            <show-property name="bpm:workflowDescription" component-generator="TextAreaGenerator" read-only="true"></show-property>   
            <show-property name="mywf:approveRejectOutcome"></show-property>
            <seperator name="sep2" display-label-id="details" component-generator="HeaderSeparatorGenerator"></seperator>
        </property-sheet>
    </config>
   
    <config evaluator="node-type" condition="scwf:submitReviewTask" replace="true">
      <property-sheet>
         <separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator"></separator>
         <show-property name="bpm:workflowDescription" component-generator="TextAreaGenerator"></show-property>
      </property-sheet>
   </config>


    <config evaluator="node-type" condition="scwf:activitiMarketingReview" replace="true">
        <property-sheet>
            <separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator"></separator>
            <show-property name="bpm:description" component-generator="TextAreaGenerator" read-only="true"></show-property>
            <show-property name="bpm:comment" component-generator="TextAreaGenerator"></show-property>       
            <show-property name="scwf:approveRejectOutcome"></show-property>
        </property-sheet>
    </config>


    <config evaluator="node-type" condition="scwf:activitiOperationsReview" replace="true">
        <property-sheet>
            <separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator"></separator>
            <show-property name="bpm:description" component-generator="TextAreaGenerator" read-only="true"></show-property>
            <show-property name="bpm:comment" component-generator="TextAreaGenerator"></show-property>
            <show-property name="scwf:approveRejectOutcome"></show-property>
        </property-sheet>
    </config>

    <config evaluator="node-type" condition="scwf:activitiRevise" replace="true">
        <property-sheet>
            <separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator"></separator>
            <show-property name="bpm:description" component-generator="TextAreaGenerator" read-only="true"></show-property>
            <show-property name="bpm:comment" component-generator="TextAreaGenerator"></show-property>       
            <show-property name="scwf:reviseOutcome"></show-property>
        </property-sheet>
    </config>

    <config evaluator="node-type" condition="scwf:activitiReviewTask" replace="true">
        <property-sheet>
            <show-property name="scwf:approveRejectOutcome"></show-property>
            <show-property name="bpm:workflowDescription" component-generator="TextAreaGenerator" read-only="true"></show-property>           
        </property-sheet>
    </config>

    <config evaluator="node-type" condition="scwf:activitiThirdPartyReview" replace="true">
        <property-sheet>
            <separator name="sep1" display-label-id="general" component-generator="HeaderSeparatorGenerator"></separator>
            <show-property name="bpm:description" component-generator="TextAreaGenerator" read-only="true"></show-property>
            <show-property name="bpm:comment" component-generator="TextAreaGenerator"></show-property>
            <show-property name="scwf:approveRejectOutcome"></show-property>
        </property-sheet>
    </config>
  
   <!–  add third-party reviewable related aspect properties to property sheet –>
   <config evaluator="aspect-name" condition="scwf:thirdPartyReviewable">
      <property-sheet>
         <show-property name="scwf:reviewerEmail" display-label-id="email"></show-property>
      </property-sheet>
   </config>

</alfresco-config>

Outcomes