【问题标题】:How to select a task assignee in Alfresco from a previous user task?如何从以前的用户任务中选择 Alfresco 中的任务受让人?
【发布时间】:2016-10-19 08:55:58
【问题描述】:

我在 Alfresco 中使用其模型和配置创建了一个自定义工作流程。如果您查看此工作流程示例:

<userTask id="creaCS" name="Crea Certificato di Servizio" activiti:candidateGroups="DSGA" activiti:formKey="psw:activitiCreaCS">
    <extensionElements>
        <activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
            <activiti:field name="script">
                <activiti:string><![CDATA[logger.log("Log Log");
                    execution.setVariable('DSGAincaricato', task.getVariable('psw_DSGAincaricato'));
                    execution.setVariable('DSincaricato', task.getVariable('psw_DSincaricato'));]]>
                </activiti:string>
            </activiti:field>
        </activiti:taskListener>
    </extensionElements>
</userTask>
<userTask id="valutaCS" name="Valuta Certificato di Servizio" activiti:assignee="${DSincaricato.properties.userName}" activiti:formKey="psw:activitiValutaCS">
    <extensionElements>
        <activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
            <activiti:field name="script">
                <activiti:string>if(task.getVariableLocal('psw_esitoValutazioneCS') == 'Approvato'){
                    execution.setVariable('psw_prosegui', true);
                    }else{
                    execution.setVariable('psw_prosegui', false);
                    }
                </activiti:string>
            </activiti:field>
        </activiti:taskListener>
    </extensionElements>
</userTask>

我想在 creaCS 中选择 valutaCS 的受让人。所以我创建了一个这样的模型:

<type name="psw:activitiCreaCS">
        <parent>bpm:startTask</parent>
        <associations>
            <association name="psw:DSGAincaricato">
                <title>DSGA incaricato</title>
                <source>
                    <mandatory>false</mandatory>
                    <many>false</many>
                </source>
                <target>
                    <class>cm:person</class>
                    <mandatory>false</mandatory>
                    <many>false</many>
                </target>
            </association>
            <association name="psw:DSincaricato">
                <title>DS incaricato</title>
                <source>
                    <mandatory>false</mandatory>
                    <many>false</many>
                </source>
                <target>
                    <class>cm:person</class>
                    <mandatory>false</mandatory>
                    <many>false</many>
                </target>
            </association>
        </associations>
    </type>

    <type name="psw:activitiValutaCS">
        <parent>bpm:activitiOutcomeTask</parent>
        <properties>
            <property name="psw:esitoValutazioneCS">
                <type>d:text</type>
                <default>Respinto</default>
                <constraints>
                    <constraint type="LIST">
                        <parameter name="allowedValues">
                            <list>
                                <value>Approvato</value>
                                <value>Respinto</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.portaleScuola.com/model/workflow/1.0}esitoValutazioneCS</default>
            </property>
        </overrides>
    </type>

我自定义了表单:

<config evaluator="task-type" condition="psw:activitiCreaCS">
    <forms>
        <form id="workflow-details">
            <field-visibility>
                <show id="bpm:workflowDescription"/>
                <show id="packageItems"/>
                <show id="psw:DSGAincaricato"/>
                <show id="psw:DSincaricato"/>
                <show id="transitions"/>
                <show id="bpm:status"/>
            </field-visibility>
            <appearance>
                <set id="" appearance="title" label-id="workflow.set.general" />
                <set id="items" appearance="title" label-id="workflow.set.items" />
                <set id="progress" appearance="title" label-id="workflow.set.task.progress" />               
                <set id="other" appearance="title" label-id="workflow.set.other" />

                <field id="bpm:workflowDescription" label-id="workflow.field.message">
                    <control template="/org/alfresco/components/form/controls/textarea.ftl">
                        <control-param name="style">width: 95%</control-param>
                    </control>
                </field>
                <field id="packageItems" set="items" />
                <field set="actors" id="psw:DSGAincaricato">
                    <control template="/org/alfresco/components/form/controls/authority.ftl">

                    </control>
                </field>
                <field set="actors" id="psw:DSincaricato">
                    <control template="/org/alfresco/components/form/controls/authority.ftl">

                    </control>
                </field>
                <field id="bpm:status" set="progress" />
            </appearance>
        </form>
        <form>
            <field-visibility>
                <show id="bpm:workflowDescription"/>
                <show id="packageItems"/>
                <show id="psw:DSGAincaricato"/>
                <show id="psw:DSincaricato"/>
                <show id="transitions"/>
                <show id="bpm:status"/>
            </field-visibility>
            <appearance>
                <set id="" appearance="title" label-id="workflow.set.general" />
                <set id="items" appearance="title" label-id="workflow.set.items" />
                <set id="progress" appearance="title" label-id="workflow.set.task.progress" />               
                <set id="other" appearance="title" label-id="workflow.set.other" />

                <field id="bpm:workflowDescription" label-id="workflow.field.message">
                    <control template="/org/alfresco/components/form/controls/textarea.ftl">
                        <control-param name="style">width: 95%</control-param>
                    </control>
                </field>
                <field id="packageItems" set="items" />
                <field set="actors" id="psw:DSGAincaricato">
                    <control template="/org/alfresco/components/form/controls/authority.ftl">

                    </control>
                </field>
                <field set="actors" id="psw:DSincaricato">
                    <control template="/org/alfresco/components/form/controls/authority.ftl">

                    </control>
                </field>
                <field id="bpm:status" set="progress" />
            </appearance>
        </form>
    </forms>
</config>

但是有两个问题。首先,我的工作流程没有得到分配,甚至没有得到 creaCS 中的组分配。 其次,由于某种原因,我的自定义表单中缺少用户字段。我不明白为什么,也是因为 psw_esitoValutazioneCS 的字段没有任何问题。 有人知道如何解决它吗?

【问题讨论】:

    标签: forms workflow alfresco activiti


    【解决方案1】:

    关于任务分配,你可以直接从模型中的属性中读取assignee,而不是尝试用assignee的值设置一个执行变量,然后将其读取为assignee,如下所示:

    <userTask id="valutaCS" name="Valuta Certificato di Servizio" activiti:assignee="${psw_DSincaricato.properties.userName}" activiti:formKey="psw:activitiValutaCS">
    

    关于表单上字段的外观,您是否尝试过删除控件?我有一个和你做类似事情的工作流程。它工作得很好,不需要指定特定的控件。

    有一件事是我没有看到与使用默认表单创建工作流 (condition="activiti$processId") 相对应的表单配置。我看到的只是一个表单配置,其类型与提交类型 ID 匹配。两者都需要。

    【讨论】:

    • 我试过了,但仍然没有选择 DSincaricato 的字段,如果我尝试点击已完成的任务,我有一个错误:
    • 'org.activiti.engine.ActivitiException:表达式中使用的未知属性:${psw_DSincaricato.properties.userName}'
    • 这里你可以找到文件community.alfresco.com/message/…
    • 你是说一旦你到达 psw:activitiCreaCS 任务,这是启动任务之后的第一个任务,你在工作流任务编辑上看不到 psw:DSGAincaricato 和 psw:DSincaricato 字段形式?
    • 是的,我看到的表单与开始任务的表单相同
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多