activiti自定义属性(一)

声明:此处activiti版本为6.0

1、在stencilset.json中添加属性

1.1 、在propertyPackages节点下增加属性,顺序无所谓,示例如下:

                --属性的定义,下方定义是抄来的,红色为自己标注的

 {

    "name" : "process_idpackage", -- 这个在节点引用中会用到

    "properties" : [ {

        "id" : "id",      ---id,后面properties.js里会用到

        "type" : "String",  --类型,在赋值的时候会根据类型展示各种输入框,根据properties.js

        "title" : "名称",  --显示的标题

        "value" : "",      --默认值

        "description" : "BPMN元素的描述性名称.", --描述

        "category":"property", --分类,空的话位popular 

        "popular" : true,         --是否显示

        "refToView" : "text_name" --触发svg里面的效果

    }]
}

                注:其中type的值一定要写对,错误的话,属性在前端不会显示

String、boolean还好,Complex这个值需要注意,目前观察是复杂的情况可以用这个,但是需要结合/editor-app/configuration/properties.js文件配置来实现,才能正常显示。

------2022-03-25 补充:此处type值根据properties.js中的key值来定,可以自定义类型--------

1.2、在stencils节点中需要用到新加属性的组件上引入属性,示例如下:

 注:propertyPackages数组中的顺序决定了前端展示的属性的顺序,值就是属性的name

--节点的定义

{   
    "type" : "node",

    "id" : "MailTask",

    "title" : "邮件任务",--标题

    "description" : "邮件任务", --描述

    "view" : "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n</svg>", --svg的xml

    "icon" : "activity/list/type.send.png",        --图标

    "groups" : [ "任务" ], --归属的组

    "propertyPackages" : [ "overrideidpackage" ],--属性

    "hiddenPropertyPackages" : [ ],

    "roles" : [ "Activity" ] --规则
}

2、properties.js中添加配置

注:若在1.1中type的值为String、boolean的话,不用管这里,应该直接就能正常显示,若为Complex,则继续

 注意:红框里,分别是属性的id和type,都是小写

两个属性:readModeTemplateUrl 和 writeModeTemplateUrl分别是读写模式时读取的模板url,可以定义属性的显示规则,示例如下:

assignment-display-template.html内容如下:

<span ng-if="!property.value.assignment.candidateUsers.length > 0"  style="color: red">点击配置 </span>
<span ng-if="property.value.assignment.candidateUsers.length > 0" style="color: red">点击查看</span>

 assignment-write-template.html内容如下:

<span ng-controller="KisBpmAssignmentCtrl">
</span>

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
Activiti 中,我们可以通过继承 UserTask 类来扩展 UserTask 节点,并添加自定义属性。 首先,我们需要定义一个类继承 UserTask 类,并添加我们需要的自定义属性,例如: ``` public class CustomUserTask extends UserTask { private String customProperty; public String getCustomProperty() { return customProperty; } public void setCustomProperty(String customProperty) { this.customProperty = customProperty; } } ``` 接下来,我们需要在流程定义文件中声明我们的自定义节点,并指定自定义属性的名称和类型。例如: ``` <process id="myProcess"> <extensionElements> <activiti:taskListener event="create" class="com.example.CustomTaskListener"/> </extensionElements> <startEvent id="start"/> <customUserTask id="task1" name="Task 1" activiti:assignee="${assignee}"> <extensionElements> <activiti:field name="customProperty" stringValue="customValue"/> </extensionElements> </customUserTask> <endEvent id="end"/> <sequenceFlow id="flow1" sourceRef="start" targetRef="task1"/> <sequenceFlow id="flow2" sourceRef="task1" targetRef="end"/> </process> ``` 在这个例子中,我们使用了一个自定义节点 CustomUserTask,并在节点中添加了一个自定义属性 customProperty。我们还在节点的 extensionElements 中使用 activiti:field 元素指定了该属性的名称和值。 最后,我们需要在流程中使用我们的自定义节点。例如,在流程定义文件中使用自定义节点: ``` <process id="myProcess"> <startEvent id="start"/> <customUserTask id="task1" name="Task 1" activiti:assignee="${assignee}"> <extensionElements> <activiti:field name="customProperty" stringValue="customValue"/> </extensionElements> </customUserTask> <endEvent id="end"/> <sequenceFlow id="flow1" sourceRef="start" targetRef="task1"/> <sequenceFlow id="flow2" sourceRef="task1" targetRef="end"/> </process> ``` 这样,我们就可以在 Activiti 中使用自定义节点属性了。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值