Alfresco Activiti表单字段上的自定义验证

Alfresco Activiti表单字段上的自定义验证,alfresco,activiti,Alfresco,Activiti,我需要知道如何创建一个自定义验证规则以应用于Activiti表单中的特定字段,以及如何将所有文件一起部署到其引擎 感谢可重用的字段级验证(例如:电话号码、邮政编码等),我认为最好的方法是在引擎配置中注册自定义表单类型(查看Activiti用户指南中的第9.1项)。自定义FormType实现是通过扩展AbstractFormType并实现一些方法来创建的,这些方法可以将字符串转换为或从字符串转换为您希望在内部使用的任何表示形式 表单级验证(即应用于整个表单的验证)我通常使用TaskListener

我需要知道如何创建一个自定义验证规则以应用于Activiti表单中的特定字段,以及如何将所有文件一起部署到其引擎


感谢可重用的字段级验证(例如:电话号码、邮政编码等),我认为最好的方法是在引擎配置中注册自定义表单类型(查看Activiti用户指南中的第9.1项)。自定义FormType实现是通过扩展AbstractFormType并实现一些方法来创建的,这些方法可以将字符串转换为或从字符串转换为您希望在内部使用的任何表示形式

表单级验证(即应用于整个表单的验证)我通常使用TaskListener附加到侦听EVENTNAME\u COMPLETE事件的任务。在这个侦听器中,您执行验证逻辑,并在出现错误时抛出异常


至于“一起部署一切”:对于最简单的情况,您只需创建一个包含额外验证类的jar,并将其放在类路径中。如果您希望此代码与您的流程一起部署,那么没有直接的答案。这是可能的,但我认为这应该是另一个问题的主题。

菲利普的回答应该会给你相当可靠的结果。不添加JavaScript的另一种方法是在模型中使用正则表达式约束

例如,如果我想输入五位数的区号,我可以这样做:

<constraint name="myWorkflow:zipRegex" type="REGEX">
    <parameter name="expression">
        <value>^\d{5}$</value>
    </parameter>
</constraint>

^\d{5}$
顺便说一句,这里有一个很好的工具用于构建和测试正则表达式:


在这种情况下,除了正常的bpmn20、模型、配置自定义文件及其上下文文件之外,没有任何外部文件,部署可以按照通常的方式进行。将文件放入各自的类文件夹中(/extension for bpmn、model及其上下文文件;/web extension for config custom及其上下文),然后重新启动服务。如果已经部署并且刚刚重新部署,请使用工作流控制台通过命令“deploy activiti alfresco/extension/myWorkflow.bpmn20.xml”进行部署。

您使用的是什么alfresco版本?我们可以进行一次小聊吗?