参考了前辈的一些国际化支持做法,加上自己对流程的一些理解,做了activiti5.14版本的国际化支持。发现有若干bug,比如属性设置弹出窗口里的grid里的下拉列表不支持显示中文(要修改oryx.debug.js文件里的buildColumnModel方法中type == ORYX.CONFIG.TYPE_CHOICE部分的optionTmpl属性才可以)
附:stencilset.json 文件的国际化中文支持代码(注意对应org.activiti.rest.editor.main.StencilsetRestResource.java里读的资源文件路径):
{ "title" : "流程组件", "namespace" : "http://b3mn.org/stencilset/bpmn2.0#", "description" : "This is the BPMN 2.0 stencil set specification.", "propertyPackages" : [ { "name" : "elementbase", "properties" : [ { "id" : "overrideid", "type" : "String", "title" : "编号", "value" : "", "description" : "编码", "popular" : true } ] }, { "name" : "baseattributes", "properties" : [ { "id" : "name", "type" : "String", "title" : "名称", "value" : "", "description" : "BPMN元素名称", "popular" : true, "refToView" : "text_name" }, { "id" : "documentation", "type" : "Text", "title" : "描述", "value" : "", "description" : "BPMN元素描述", "popular" : true } ] }, { "name" : "diagrambase", "properties" : [ { "id" : "process_id", "type" : "String", "title" : "流程编号", "value" : "process", "description" : "流程的特殊唯一的名称标识", "popular" : true }, { "id" : "process_author", "type" : "String", "title" : "流程作者", "value" : "", "description" : "流程定义者姓名", "popular" : false }, { "id" : "process_executable", "type" : "Choice", "title" : "是否可执行", "value" : "Yes", "description" : "定义流程是否可以执行", "popular" : true, "items" : [ { "id" : "no", "title" : "否", "value" : "No" }, { "id" : "yes", "title" : "是", "value" : "Yes" }] }, { "id" : "process_version", "type" : "String", "title" : "流程版本", "value" : "", "description" : "流程版本", "popular" : false }, { "id" : "process_namespace", "type" : "String", "title" : "流程分类", "value" : "root", "description" : "工作流流程分类,填入流程分类的编号", "popular" : true } ] }, { "name" : "usertaskbase", "properties" : [ { "id" : "formkeydefinition", "type" : "String", "title" : "表单信息", "value" : "", "description" : "节点绑定的表单信息", "popular" : true }, { "id" : "duedatedefinition", "type" : "String", "title" : "到期时间", "value" : "", "description" : "人工任务到期时间", "popular" : true }, { "id" : "prioritydefinition", "type" : "String", "title" : "优先级", "value" : "", "description" : "人工任务优先级", "popular" : true } ] }, { "name" : "usertaskassignment", "properties" : [ { "id" : "usertaskassignment", "type" : "Complex", "title" : "分配用户", "value" : "", "description" : "给人工任务分配用户", "popular" : true, "complexItems" : [ { "id" : "assignment_type", "name" : "用户类型", "name_de" : "Typ", "type" : "Choice", "value" : "", "width" : 100, "optional" : false, "items" : [ { "id" : "c1", "title" : "委托人", "title_de" : "Performer", "value" : "assignee", "refToView" : "" }, { "id" : "c2", "title" : "候选用户", "title_de" : "HumanPerformer", "value" : "candidateUsers", "refToView" : "" }, { "id" : "c3", "title" : "候选群组", "title_de" : "PotentialOwner", "value" : "candidateGroups", "refToView" : "" } ] }, { "id" : "resourceassignmentexpr", "name" : "资源赋值表达式", "name_de" : "Zuordnungs-Ausdruck", "type" : "String", "description" : "定义资源赋值表达式", "description_de" : "Definiert den Ausdruck, der f?r die Zordung von Ressourcen genutzt wird.", "value" : "", "width" : 200, "optional" : true } ] } ] }, { "name" : "formdefinition", "properties" : [ { "id" : "formproperties", "type" : "multiplecomplex", "title" : "表单属性", "value" : "", "description" : "定义表单属性", "popular" : true, "complexItems" : [ { "id" : "formproperty_id", "name" : "属性编号", "name_de" : "Typ", "type" : "String", "description" : "属性编号", "description_de" : "Definiert den Ausdruck, der f?r die Zordung von Ressourcen genutzt wird.", "value" : "", "width" : 150, "optional" : false }, { "id" : "formproperty_name", "name" : "名称", "name_de" : "Typ", "type" : "String", "description" : "属性名称", "description_de" : "Definiert den Ausdruck, der f?r die Zordung von Ressourcen genutzt wird.", "value" : "", "width" : 150, "optional" : false }, { "id" : "formproperty_type", "name" : "属性类型", "name_de" : "Typ", "type" : "Choice", "value" : "", "width" : 100, "optional" : false, "items" : [ { "id" : "c1", "title" : "字符串", "title_de" : "String", "value" : "string", "refToView" : "" }, { "id" : "c2", "title" : "日期", "title_de" : "Date", "value" : "date", "refToView" : "" }, { "id" : "c3", "title" : "数值", "title_de" : "Long", "value" : "long", "refToView" : "" }, { "id" : "c4", "title" : "布尔型", "title_de" : "Boolean", "value" : "boolean", "refToView" : "" }, { "id" : "c5", "title" : "枚举", "title_de" : "Enum", "value" : "enum", "refToView" : "" } ] }, { "id" : "formproperty_expression", "name" : "属性表达式", "name_de" : "Typ", "type" : "String", "description" : "定义属性取值表达式", "description_de" : "Definiert den Ausdruck, der f?r die Zordung von Ressourcen genutzt wird.", "value" : "", "width" : 200, "optional" : false }, { "id" : "formproperty_variable", "name" : "变量", "name_de" : "Typ", "type" : "String", "description" : "定义变量", "description_de" : "Definiert den Ausdruck, der f?r die Zordung von Ressourcen genutzt wird.", "value" : "", "width" : 200, "optional" : false }, { "id" : "formproperty_required", "name" : "是否必填", "name_de" : "Typ", "type" : "Choice", "value" : "No", "width" : 100, "optional" : false, "items" : [ { "id" : "yes", "title" : "是", "value" : "Yes" }, { "id" : "no", "title" : "否", "value" : "No" } ] }, { "id" : "formproperty_readable", "name" : "是否可读", "name_de" : "Typ", "type" : "Choice", "value" : "Yes", "width" : 100, "optional" : false, "items" : [ { "id" : "yes", "title" : "是", "value" : "Yes" }, { "id" : "no", "title" : "否", "value" : "No" } ] }, { "id" : "formproperty_writeable", "name" : "是否可写", "name_de" : "Typ", "type" : "Choice", "value" : "Yes", "width" : 100, "optional" : false, "items" : [ { "id" : "yes", "title" : "是", "value" : "Yes" }, { "id" : "no", "title" : "否", "value" : "No" } ] }, { "id" : "formproperty_formvalues", "name" : "表单属性值", "name_de" : "Typ", "type" : "Complex", "width" : 300, "optional" : false, "complexItems" : [ { "id" : "formproperty_formvalue_id", "name" : "编号", "type" : "String", "value" : "", "width" : 100, "optional" : false }, { "id" : "formproperty_formvalue_name", "name" : "名称", "type" : "String", "value" : "", "width" : 200, "optional" : false } ] } ] } ] }, { "name" : "tasklistenersbase", "properties" : [ { "id" : "tasklisteners", "type" : "multiplecomplex", "title" : "任务监听器", "value" : "", "description" : "人工任务监听器", "popular" : true, "complexItems" : [ { "id" : "task_listener_event_type", "name" : "事件类型", "type" : "Choice", "value" : "", "width" : 100, "optional" : false, "items" : [ { "id" : "c1", "title" : "创建", "value" : "create", "refToView" : "" }, { "id" : "c2", "title" : "分配", "value" : "assignment", "refToView" : "" }, { "id" : "c3", "title" : "完成", "value" : "complete", "refToView" : "" }, { "id" : "c4", "title" : "所有事件", "value" : "all", "refToView" : "" } ] }, { "id" : "task_listener_class", "name" : "监听类", "type" : "String", "description" : "事件监听处理类", "value" : "", "width" : 200, "optional" : true }, { "id" : "task_listener_expression", "name" : "监听表达式", "type" : "String", "description" : "定义事件监听表达式", "value" : "", "width" : 200, "optional" : true }, { "id" : "task_listener_delegate_expression", "name" : "监听委托类表达式", "type" : "String", "description" : "定义监听委托类表达式", "value" : "", "width" : 200, "optional" : true }, { "id" : "task_listener_fields", "name" : "监听器参数", "type" : "Complex", "width" : 100, "optional" : false, "complexItems" : [ { "id" : "task_listener_field_name", "name" : "参数名", "type" : "String", "value" : "", "width" : 200, "optional" : false }, { "id" : "task_listener_field_value", "name" : "字符串值", "type" : "String", "value" : "", "width" : 200, "optional" : false }, { "id" : "task_listener_field_expression", "name" : "表达式值", "type" : "String", "value" : "", "width" : 200, "optional" : false } ] } ] } ] }, { "name" : "servicetaskbase", "properties" : [ { "id" : "servicetaskclass", "type" : "String", "title" : "处理类", "value" : "", "description" : "定义处理的java类,需要实现service task logic接口", "popular" : true }, { "id" : "servicetaskexpression", "type" : "String", "title" : "处理类表达式", "value" : "", "description" : "用表达式方式定义处理的java类,需要实现service task logic接口", "popular" : true }, { "id" : "servicetaskdelegateexpression", "type" : "String", "title" : "委派处理类表达式", "value" : "", "description" : "定义处理类的委派表达式", "popular" : true }, { "id" : "servicetaskresultvariable", "type" : "String", "title" : "结果存储变量", "value" : "", "description" : "定义一个变量用于存储任务处理结果", "popular" : true }, { "id" : "servicetaskfields", "type" : "Complex", "title" : "处理类参数", "value" : "", "description" : "定义参数", "popular" : true, "complexItems" : [ { "id" : "servicetask_field_name", "name" : "参数名", "type" : "String", "value" : "", "width" : 200, "optional" : false }, { "id" : "servicetask_field_value", "name" : "字符串参数值", "type" : "String", "value" : "", "width" : 200, "optional" : false }, { "id" : "servicetask_field_expression", "name" : "表达式参数值", "type" : "String", "value" : "", "width" : 200, "optional" : false } ] } ] }, { "name" : "scripttaskbase", "properties" : [ { "id" : "scriptformat", "type" : "Choice", "title" : "脚本类型", "value" : "", "description" : "定义脚本类型,需兼容JSR-223", "popular" : true, "items" : [ { "id" : "Javascript", "title" : "Javascript", "value" : "Javascript" }, { "id" : "groovy", "title" : "groovy", "value" : "groovy" } ] }, { "id" : "scripttext", "type" : "Text", "title" : "脚本内容", "value" : "", "description" : "脚本任务的脚本内容", "popular" : true } ] }, { "name" : "ruletaskbase", "properties" : [ { "id" : "ruletask_class", "type" : "String", "title" : "规则处理类", "value" : "", "description" : "规则任务的处理类", "popular" : true }, { "id" : "ruletask_variables_input", "type" : "String", "title" : "规则任务参数", "value" : "", "description" : "规则任务输入参数", "popular" : true }, { "id" : "ruletask_result", "type" : "String", "title" : "结果存储变量", "value" : "", "description" : "定义存储规则任务结果的变量", "popular" : true }, { "id" : "ruletask_rules", "type" : "String", "title" : "规则", "value" : "", "description" : "定义规则任务的规则,多个之间逗号隔开", "popular" : true }, { "id" : "ruletask_exclude", "type" : "Choice", "title" : "排除规则", "value" : "No", "description" : "定义是否除规则中定义的规则之外全部执行,为否表示只执行规则中定义的规则,为是表示值执行所有规则中未定义的规则", "popular" : true, "items" : [ { "id" : "no", "title" : "否", "value" : "No" }, { "id" : "yes", "title" : "是", "value" : "Yes" } ] } ] }, { "name" : "mailtaskbase", "properties" : [ { "id" : "mailtaskto", "type" : "Text", "title" : "收件人", "value" : "", "description" : "收件人邮箱地址列表,邮箱间用英文分号隔开", "popular" : true }, { "id" : "mailtaskfrom", "type" : "Text", "title" : "发件人", "value" : "", "description" : "发件人邮箱地址", "popular" : true }, { "id" : "mailtasksubject", "type" : "Text", "title" : "主题", "value" : "", "description" : "邮件发送的主题", "popular" : true }, { "id" : "mailtaskcc", "type" : "Text", "title" : "抄送", "value" : "", "description" : "邮件抄送邮箱地址列表,邮箱间用英文分号隔开", "popular" : true }, { "id" : "mailtaskbcc", "type" : "Text", "title" : "暗送", "value" : "", "description" : "邮件暗送邮箱地址列表,邮箱间用英文分号隔开", "popular" : true }, { "id" : "mailtasktext", "type" : "Text", "title" : "邮件正文内容", "value" : "", "description" : "邮件的内容,在需要使用原始文字(非富文本)的邮件时使用。 可以与html一起使用,对于不支持富客户端的邮件客户端。 客户端会降级到仅显示文本的方式。", "popular" : true }, { "id" : "mailtaskhtml", "type" : "Text", "title" : "Html", "value" : "", "description" : "作为邮件内容的HTML", "popular" : true }, { "id" : "mailtaskcharset", "type" : "String", "title" : "字符集", "value" : "", "description" : "定义邮件内容的字符集", "popular" : true } ] }, { "name" : "callactivitybase", "properties" : [ { "id" : "callactivitycalledelement", "type" : "String", "title" : "调用的流程", "value" : "", "description" : "定义调用的流程", "popular" : true }, { "id" : "callactivityinparameters", "type" : "Complex", "title" : "输入参数", "value" : "", "description" : "定义调用流程的输入参数", "popular" : true, "complexItems" : [ { "id" : "ioparameter_source", "name" : "原参数", "type" : "String", "value" : "", "width" : 200, "optional" : false }, { "id" : "ioparameter_sourceexpression", "name" : "原参数表达式", "type" : "String", "value" : "", "width" : 200, "optional" : false }, { "id" : "ioparameter_target", "name" : "目标参数", "type" : "String", "value" : "", "width" : 200, "optional" : false } ] }, { "id" : "callactivityoutparameters", "type" : "Complex", "title" : "输出参数", "value" : "", "description" : "定义调用流程的输出参数", "popular" : true, "complexItems" : [ { "id" : "ioparameter_source", "name" : "原输出参数", "type" : "String", "value" : "", "width" : 200, "optional" : false }, { "id" : "ioparameter_sourceexpression", "name" : "原输出参数表达式", "type" : "String", "value" : "", "width" : 200, "optional" : false }, { "id" : "ioparameter_target", "name" : "目标参数", "type" : "String", "value" : "", "width" : 200, "optional" : false } ] } ] }, { "name" : "sequenceflowbase", "properties" : [ { "id" : "conditionsequenceflow", "type" : "Text", "title" : "流转条件", "value" : "", "description" : "流转条件", "popular" : true }, { "id" : "defaultflow", "type" : "Choice", "title" : "默认顺序流", "value" : "None", "description" : "设置该流转为默认流转,当设置为默认流转时,流转条件设置无效", "popular" : true, "items" : [ { "id" : "none", "title" : "标准", "title_de" : "Standard", "value" : "None" }, { "id" : "default", "title" : "默认流转", "title_de" : "Standardfluss", "value" : "Default", "icon" : "connector/list/type.default.png", "refToView" : "default" } ] }, { "id" : "conditionalflow", "type" : "Choice", "title" : "条件顺序流", "value" : "None", "description" : "设置该流转为条件流转,只要满足流转条件才会通过生效", "popular" : true, "items" : [ { "id" : "none", "title" : "标准", "title_de" : "Standard", "value" : "None" }, { "id" : "default", "title" : "条件顺序流", "value" : "Conditional", "icon" : "connector/list/type.expression.png", "refToView" : "conditional" } ] } ] }, { "name" : "cancelactivityattribute", "properties" : [ { "id" : "cancelactivity", "type" : "Choice", "title" : "取消中断", "value" : "yes", "description" : "定义是否取消中断", "popular" : true, "items" : [ { "id" : "yes", "title" : "是", "title_de" : "Yes", "value" : "yes" }, { "id" : "no", "title" : "否", "title_de" : "No", "value" : "no" } ] } ] }, { "name" : "timerdefinition", "properties" : [ { "id" : "timerdurationdefinition", "type" : "String", "title" : "等待时间", "value" : "", "description" : "指定定时器之前要等待多长时间,可以设置为timerEventDefinition的子元素。 使用ISO 8601规定的格式", "popular" : true }, { "id" : "timerdatedefinition", "type" : "String", "title" : "触发时间", "value" : "", "description" : "使用 ISO 8601 格式指定一个确定的时间,触发事件的时间,如 2013-12-05T12:13:14", "popular" : true }, { "id" : "timercycledefinition", "type" : "String", "title" : "重复间隔", "value" : "", "description" : "指定重复执行的间隔,可以用来定期启动流程实例,或为超时时间发送多个提醒。可以使用两种格式:ISO 8601标准或cron表达式", "popular" : true } ] }, { "name" : "messagerefdefinition", "properties" : [ { "id" : "messageref", "type" : "String", "title" : "引用的消息", "value" : "", "description" : "定义引用的消息名称", "popular" : true } ] }, { "name" : "signalrefdefinition", "properties" : [ { "id" : "signalref", "type" : "String", "title" : "引用的信号", "value" : "", "description" : "定义引用的信号名称", "popular" : true } ] }, { "name" : "errorrefdefinition", "properties" : [ { "id" : "errorref", "type" : "String", "title" : "引用的错误", "value" : "", "description" : "定义引用的错误名称", "popular" : true } ] }, { "name" : "nonestarteventbase", "properties" : [ { "id" : "initiator", "type" : "String", "title" : "初始化变量", "value" : "", "description" : "定义存储流程启动时当前登陆用户的变量", "popular" : true }, { "id" : "formkeydefinition", "type" : "String", "title" : "表单信息", "value" : "", "description" : "定义开始节点的表单信息", "popular" : true }] }, { "name" : "textannotationbase", "properties" : [ { "id" : "text", "type" : "String", "title" : "文本", "value" : "", "description" : "文本注释内容", "popular" : true, "refToView" : "text" } ] }, { "name" : "asynchronousbase", "properties" : [ { "id" : "asynchronousdefinition", "type" : "Choice", "title" : "异步任务", "value" : "No", "description" : "定义为异步任务", "popular" : true, "items" : [ { "id" : "no", "title" : "否", "value" : "No" }, { "id" : "yes", "title" : "是", "value" : "Yes" } ] }, { "id" : "exclusivedefinition", "type" : "Choice", "title" : "互斥任务", "value" : "Yes", "description" : "Define the activity as exclusive.", "popular" : true, "items" : [ { "id" : "no", "title" : "否", "value" : "No" }, { "id" : "yes", "title" : "是", "value" : "Yes" } ] } ] }, { "name" : "executionlistenersbase", "properties" : [ { "id" : "executionlisteners", "type" : "multiplecomplex", "title" : "执行监听器", "value" : "", "description" : "Listeners for an activity, process, sequence flow, start and end event.", "popular" : true, "complexItems" : [ { "id" : "execution_listener_event_type", "name" : "事件类型", "type" : "Choice", "value" : "", "width" : 200, "optional" : false, "items" : [ { "id" : "c1", "title" : "开始", "value" : "start", "refToView" : "" }, { "id" : "c2", "title" : "结束", "value" : "end", "refToView" : "" }, { "id" : "c2", "title" : "通过", "value" : "take", "refToView" : "" } ] }, { "id" : "execution_listener_class", "name" : "监听类", "type" : "String", "description" : "监听类", "value" : "", "width" : 200, "optional" : true }, { "id" : "execution_listener_expression", "name" : "监听类表达式", "type" : "String", "description" : "监听类表达式", "value" : "", "width" : 200, "optional" : true }, { "id" : "execution_listener_delegate_expression", "name" : "委托类表达式", "type" : "String", "description" : "委托类表达式", "value" : "", "width" : 200, "optional" : true }, { "id" : "execution_listener_fields", "name" : "参数", "type" : "Complex", "width" : 100, "optional" : false, "complexItems" : [ { "id" : "execution_listener_field_name", "name" : "名称", "type" : "String", "value" : "", "width" : 200, "optional" : false }, { "id" : "execution_listener_field_value", "name" : "字符串值", "type" : "String", "value" : "", "width" : 200, "optional" : false }, { "id" : "execution_listener_field_expression", "name" : "表达式值", "type" : "String", "value" : "", "width" : 200, "optional" : false } ] } ] } ] }, { "name" : "customformdefinition", "properties" : [ { "id" : "customformdefinition", "type" : "Choice", "title" : "自定义表单", "value" : "", "description" : "描述", "popular" : true, "items" : [ { "id" : "1", "title" : "表单1", "value" : "1" }, { "id" : "2", "title" : "表单2", "value" : "2" }, { "id" : "3", "title" : "表单3", "value" : "3" } ] } ] }, { "name" : "loopcharacteristics", "properties" : [ { "id" : "looptype", "type" : "Choice", "title" : "循环类型", "value" : "None", "description" : "定义循环类型", "popular" : false, "items" : [ { "id" : "c1", "title" : "无", "title_de" : "Keine Schleife", "value" : "None", "refToView" : "none" }, { "id" : "c2", "title" : "标准", "title_de" : "Standard", "value" : "Standard", "icon" : "activity/list/looptype.standard.png", "refToView" : "loop" }, { "id" : "c3", "title" : "并行", "title_de" : "MI parallel", "value" : "Parallel", "icon" : "activity/list/mi.parallel.png", "refToView" : "parallel" }, { "id" : "c4", "title" : "顺序", "title_de" : "MI sequentialisiert", "value" : "Sequential", "icon" : "activity/list/mi.sequential.png", "refToView" : "sequential" } ] } ] }, { "name" : "activity", "properties" : [ { "id" : "multiinstance_sequential", "type" : "Choice", "title" : "顺序(多实例)", "value" : "Yes", "description" : "定义为多实例", "popular" : true, "items" : [ { "id" : "no", "title" : "否", "value" : "No" }, { "id" : "yes", "title" : "是", "value" : "Yes" } ] }, { "id" : "multiinstance_cardinality", "type" : "String", "title" : "指定数量(多实例)", "value" : "", "description" : "定义实例的个数", "popular" : true }, { "id" : "multiinstance_collection", "type" : "String", "title" : "集合(多实例)", "value" : "", "description" : "定义多实例生成的集合", "popular" : true }, { "id" : "multiinstance_variable", "type" : "String", "title" : "变量(多实例)", "value" : "", "description" : "定义多实例中的变量,每个实例都有该变量", "popular" : true }, { "id" : "multiinstance_condition", "type" : "String", "title" : "任务完成的条件(多实例)", "value" : "", "description" : "多实例任务完成的条件", "popular" : true }, { "id" : "isforcompensation", "type" : "Choice", "title" : "是否为补偿", "value" : "false", "description" : "一个标志,标识是否这个活动的目的是为了补偿", "popular" : false, "items" : [ { "id" : "no", "title" : "否", "value" : "false" }, { "id" : "yes", "title" : "是", "value" : "true" } ] } ] } ], "stencils" : [ { "type" : "node", "id" : "BPMNDiagram", "title" : "BPMN对话框", "description" : "BPMN2.0对话框", "view" : "diagram.svg", "icon" : "diagram.png", "groups" : [ "Diagram" ], "mayBeRoot" : true, "hide" : true, "propertyPackages" : [ "baseattributes", "diagrambase", "executionlistenersbase" ], "roles" : [ ] }, { "type" : "node", "id" : "StartNoneEvent", "title" : "开始", "description" : "开始组件", "view" : "startevent/none.svg", "icon" : "startevent/none.png", "groups" : [ "开始事件" ], "propertyPackages" : [ "elementbase", "baseattributes", "formdefinition", "nonestarteventbase", "executionlistenersbase" ], "roles" : [ "Startevents_all", "sequence_start", "StartEventsMorph", "all" ] }, { "type" : "node", "id" : "StartTimerEvent", "title" : "定时器", "description" : "定时触发组件", "view" : "startevent/timer.svg", "icon" : "startevent/timer.png", "groups" : [ "开始事件" ], "propertyPackages" : [ "elementbase", "baseattributes", "timerdefinition", "executionlistenersbase" ], "roles" : [ "Startevents_all", "sequence_start", "StartEventsMorph", "all" ] }, { "type" : "node", "id" : "StartMessageEvent", "title" : "事件触发", "description" : "由事件触发的组件", "view" : "startevent/message.svg", "icon" : "startevent/message.png", "groups" : [ "开始事件" ], "propertyPackages" : [ "elementbase", "baseattributes", "messagerefdefinition", "executionlistenersbase" ], "roles" : [ "Startevents_all", "sequence_start", "StartEventsMorph", "all" ] }, { "type" : "node", "id" : "StartErrorEvent", "title" : "异常捕捉", "description" : "捕捉BPMN异常后开始", "view" : "startevent/error.svg", "icon" : "startevent/error.png", "groups" : [ "开始事件" ], "propertyPackages" : [ "elementbase", "baseattributes", "errorrefdefinition", "executionlistenersbase" ], "roles" : [ "Startevents_all", "sequence_start", "StartEventsMorph", "all" ] }, { "type" : "node", "id" : "UserTask", "title" : "人工任务", "description" : "人工处理的任务节点", "view" : "activity/usertask.svg", "icon" : "activity/list/type.user.png", "groups" : [ "任务节点" ], "propertyPackages" : [ "elementbase", "baseattributes", "usertaskbase", "usertaskassignment", "formdefinition", "tasklistenersbase", "asynchronousbase", "loopcharacteristics", "activity" ], "roles" : [ "sequence_start", "Activity", "sequence_end", "ActivitiesMorph", "all" ] }, { "type" : "node", "id" : "ServiceTask", "title" : "Java服务任务", "description" : "是一个自动任务,它会调用一些服务, 比如web service,java service等等", "view" : "activity/servicetask.svg", "icon" : "activity/list/type.service.png", "groups" : [ "任务节点" ], "propertyPackages" : [ "elementbase", "baseattributes", "servicetaskbase", "asynchronousbase", "executionlistenersbase", "loopcharacteristics", "activity" ], "roles" : [ "sequence_start", "Activity", "sequence_end", "ActivitiesMorph", "all" ] }, { "type" : "node", "id" : "ScriptTask", "title" : "脚本任务", "description" : "脚本任务时一个自动任务,当到达这个任务的时候 流程引擎会执行一个脚本。", "view" : "activity/scripttask.svg", "icon" : "activity/list/type.script.png", "groups" : [ "任务节点" ], "propertyPackages" : [ "elementbase", "baseattributes", "scripttaskbase", "asynchronousbase", "executionlistenersbase", "loopcharacteristics", "activity" ], "roles" : [ "sequence_start", "Activity", "sequence_end", "ActivitiesMorph", "all" ] }, { "type" : "node", "id" : "BusinessRule", "title" : "规则任务", "description" : "支持配置处理规则,任务自动处理", "view" : "activity/businessruletask.svg", "icon" : "activity/list/type.business.rule.png", "groups" : [ "任务节点" ], "propertyPackages" : [ "elementbase", "baseattributes", "ruletaskbase", "asynchronousbase", "executionlistenersbase", "loopcharacteristics", "activity" ], "roles" : [ "sequence_start", "Activity", "sequence_end", "ActivitiesMorph", "all" ] }, { "type" : "node", "id" : "ReceiveTask", "title" : "等待任务", "description" : "任务处于等待状态直到被某个信号触发", "view" : "activity/receivetask.svg", "icon" : "activity/list/type.receive.png", "groups" : [ "任务节点" ], "propertyPackages" : [ "elementbase", "baseattributes", "asynchronousbase", "executionlistenersbase", "loopcharacteristics", "activity" ], "roles" : [ "sequence_start", "Activity", "sequence_end", "ActivitiesMorph", "all" ] }, { "type" : "node", "id" : "ManualTask", "title" : "手工任务", "description" : "手工任务时一个由外部人员执行的任务,但是没有指定是 一个BPM系统或是一个服务会被调用。在真实世界里,有很多例子: 安装一个电话系统,使用定期邮件发送一封信, 用电话联系客户等", "view" : "activity/manualtask.svg", "icon" : "activity/list/type.manual.png", "groups" : [ "任务节点" ], "propertyPackages" : [ "elementbase", "baseattributes", "asynchronousbase", "executionlistenersbase", "loopcharacteristics", "activity" ], "roles" : [ "sequence_start", "Activity", "sequence_end", "ActivitiesMorph", "all" ] }, { "type" : "node", "id" : "MailTask", "title" : "邮件任务", "description" : "发送邮件", "view" : "activity/sendtask.svg", "icon" : "activity/list/type.send.png", "groups" : [ "任务节点" ], "propertyPackages" : [ "elementbase", "baseattributes", "mailtaskbase", "asynchronousbase", "executionlistenersbase", "loopcharacteristics", "activity" ], "roles" : [ "sequence_start", "Activity", "sequence_end", "ActivitiesMorph", "all" ] }, { "type" : "node", "id" : "SubProcess", "title" : "子流程", "description" : "子流程", "view" : "activity/subprocess.expanded.svg", "icon" : "activity/expanded.subprocess.png", "groups" : [ "子流程" ], "propertyPackages" : [ "elementbase", "baseattributes", "asynchronousbase", "executionlistenersbase", "loopcharacteristics" ], "roles" : [ "sequence_start", "Activity", "sequence_end", "all" ] }, { "type" : "node", "id" : "EventSubProcess", "title" : "事件触发子流程", "description" : "由特殊事件触发的子流程,比如定时触发", "view" : "activity/event.subprocess.svg", "icon" : "activity/event.subprocess.png", "groups" : [ "子流程" ], "propertyPackages" : [ "elementbase", "baseattributes", "asynchronousbase", "executionlistenersbase" ], "roles" : [ "sequence_start", "Activity", "sequence_end", "all" ] }, { "type" : "node", "id" : "CallActivity", "title" : "调用活动", "description" : "调用活动", "view" : "activity/callactivity.svg", "icon" : "activity/task.png", "groups" : [ "子流程" ], "propertyPackages" : [ "elementbase", "baseattributes", "callactivitybase", "asynchronousbase", "executionlistenersbase", "loopcharacteristics", "activity" ], "roles" : [ "sequence_start", "Activity", "sequence_end", "all" ] }, { "type" : "node", "id" : "ExclusiveGateway", "title" : "互斥网关", "description" : "选择性网关", "view" : "gateway/exclusive.databased.svg", "icon" : "gateway/exclusive.databased.png", "groups" : [ "网关" ], "propertyPackages" : [ "elementbase", "baseattributes" ], "roles" : [ "sequence_start", "sequence_end", "GatewaysMorph", "all" ] }, { "type" : "node", "id" : "ParallelGateway", "title" : "并行网关", "description" : "并行网关", "view" : "gateway/parallel.svg", "icon" : "gateway/parallel.png", "groups" : [ "网关" ], "propertyPackages" : [ "elementbase", "baseattributes" ], "roles" : [ "sequence_start", "sequence_end", "GatewaysMorph", "all" ] }, { "type" : "node", "id" : "InclusiveGateway", "title" : "相容网关", "description" : "相容网关", "view" : "gateway/inclusive.svg", "icon" : "gateway/inclusive.png", "groups" : [ "网关" ], "propertyPackages" : [ "elementbase", "baseattributes" ], "roles" : [ "sequence_start", "sequence_end", "GatewaysMorph", "all" ] }, { "type" : "node", "id" : "EventGateway", "title" : "事件网关", "description" : "事件网关", "view" : "gateway/eventbased.svg", "icon" : "gateway/eventbased.png", "groups" : [ "网关" ], "propertyPackages" : [ "elementbase", "baseattributes" ], "roles" : [ "sequence_start", "sequence_end", "GatewaysMorph", "all" ] }, { "type" : "node", "id" : "BoundaryErrorEvent", "title" : "边界错误事件", "description" : "一个捕捉BPMN异常的边界事件", "view" : "intermediateevent/error.svg", "icon" : "catching/error.png", "groups" : [ "边界事件" ], "propertyPackages" : [ "elementbase", "baseattributes", "errorrefdefinition" ], "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ] }, { "type" : "node", "id" : "BoundaryTimerEvent", "title" : "定时边界事件", "description" : "一个定时触发的边界事件", "view" : "intermediateevent/timer.svg", "icon" : "catching/timer.png", "groups" : [ "边界事件" ], "propertyPackages" : [ "elementbase", "baseattributes", "cancelactivityattribute", "timerdefinition" ], "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ] }, { "type" : "node", "id" : "BoundarySignalEvent", "title" : "边界信号事件", "description" : "一个信号触发的边界事件", "view" : "intermediateevent/signal.catching.svg", "icon" : "catching/signal.png", "groups" : [ "边界事件" ], "propertyPackages" : [ "elementbase", "baseattributes", "cancelactivityattribute", "signalrefdefinition" ], "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ] }, { "type" : "node", "id" : "CatchTimerEvent", "title" : "中间定时器捕获事件", "description" : "定时器触发的中间捕获事件", "view" : "intermediateevent/timer.svg", "icon" : "catching/timer.png", "groups" : [ "中间捕获事件列表" ], "propertyPackages" : [ "elementbase", "baseattributes", "timerdefinition", "executionlistenersbase" ], "roles" : [ "sequence_start", "sequence_end", "CatchEventsMorph", "all" ] }, { "type" : "node", "id" : "CatchSignalEvent", "title" : "中间信号捕获事件", "description" : "信号触发的捕获事件", "view" : "intermediateevent/signal.catching.svg", "icon" : "catching/signal.png", "groups" : [ "中间捕获事件列表" ], "propertyPackages" : [ "elementbase", "baseattributes", "signalrefdefinition", "executionlistenersbase" ], "roles" : [ "sequence_start", "sequence_end", "CatchEventsMorph", "all" ] }, { "type" : "node", "id" : "CatchMessageEvent", "title" : "中间消息捕获事件", "description" : "一个消息触发的中间捕获事件", "view" : "intermediateevent/message.catching.svg", "icon" : "catching/message.png", "groups" : [ "中间捕获事件列表" ], "propertyPackages" : [ "elementbase", "baseattributes", "messagerefdefinition", "executionlistenersbase" ], "roles" : [ "sequence_start", "sequence_end", "CatchEventsMorph", "all" ] }, { "type" : "node", "id" : "ThrowNoneEvent", "title" : "中间抛出事件", "description" : "无触发器的中间抛出事件", "view" : "intermediateevent/none.svg", "icon" : "throwing/none.png", "groups" : [ "中间抛出事件" ], "propertyPackages" : [ "elementbase", "baseattributes", "executionlistenersbase" ], "roles" : [ "sequence_start", "ThrowEventsMorph", "sequence_end", "all" ] }, { "type" : "node", "id" : "ThrowSignalEvent", "title" : "信号中间抛出事件", "description" : "一个信号触发的中间抛出事件", "view" : "intermediateevent/signal.throwing.svg", "icon" : "throwing/signal.png", "groups" : [ "中间抛出事件" ], "propertyPackages" : [ "elementbase", "baseattributes", "signalrefdefinition", "executionlistenersbase" ], "roles" : [ "sequence_start", "ThrowEventsMorph", "sequence_end", "all" ] }, { "type" : "node", "id" : "EndNoneEvent", "title" : "结束任务", "description" : "一个无触发器的结束任务", "view" : "endevent/none.svg", "icon" : "endevent/none.png", "groups" : [ "结束任务列表" ], "propertyPackages" : [ "elementbase", "baseattributes", "executionlistenersbase" ], "roles" : [ "EndEventsMorph", "sequence_end", "all" ] }, { "type" : "node", "id" : "EndErrorEvent", "title" : "结束错误任务", "description" : "一个抛出错误事件的结束任务", "view" : "endevent/error.svg", "icon" : "endevent/error.png", "groups" : [ "结束任务列表" ], "propertyPackages" : [ "elementbase", "baseattributes", "errorrefdefinition", "executionlistenersbase" ], "roles" : [ "EndEventsMorph", "sequence_end", "all" ] }, { "type" : "edge", "id" : "SequenceFlow", "title" : "顺序流", "description" : "顺序流定义活动的执行顺序", "view" : "connector/sequenceflow.svg", "icon" : "connector/sequenceflow.png", "groups" : [ "连接对象" ], "layout" : [ { "type" : "layout.bpmn2_0.sequenceflow" } ], "propertyPackages" : [ "elementbase", "baseattributes", "sequenceflowbase" ], "roles" : [ "ConnectingObjectsMorph", "all" ] }, { "type" : "edge", "id" : "Association", "title" : "注释", "description" : "连接一个注释到指定元素", "view" : "connector/association.undirected.svg", "icon" : "connector/association.undirected.png", "groups" : [ "连接对象" ], "layout" : [ { "type" : "layout.bpmn2_0.sequenceflow" } ], "propertyPackages" : [ "elementbase", "baseattributes" ], "roles" : [ "ConnectingObjectsMorph", "all" ] }, { "type" : "node", "id" : "TextAnnotation", "title" : "文本注释", "description" : "给指定元素添加文本注释", "view" : "artifact/text.annotation.svg", "icon" : "artifact/text.annotation.png", "groups" : [ "其他组件" ], "propertyPackages" : [ "elementbase", "baseattributes", "textannotationbase" ], "roles" : [ "all" ] } ], "rules" : { "cardinalityRules" : [ { "role" : "Startevents_all", "incomingEdges" : [ { "role" : "SequenceFlow", "maximum" : 0 } ] }, { "role" : "Endevents_all", "outgoingEdges" : [ { "role" : "SequenceFlow", "maximum" : 0 } ] } ], "connectionRules" : [ { "role" : "SequenceFlow", "connects" : [ { "from" : "sequence_start", "to" : [ "sequence_end" ] } ] }, { "role" : "Association", "connects" : [ { "from" : "sequence_start", "to" : [ "TextAnnotation" ] } ] }, { "role" : "Association", "connects" : [ { "from" : "TextAnnotation", "to" : [ "sequence_end" ] } ] }, { "role" : "IntermediateEventOnActivityBoundary", "connects" : [ { "from" : "Activity", "to" : [ "IntermediateEventOnActivityBoundary" ] } ] } ], "containmentRules" : [ { "role" : "BPMNDiagram", "contains" : [ "all" ] }, { "role" : "SubProcess", "contains" : [ "sequence_start", "sequence_end", "from_task_event", "to_task_event", "EventSubprocess", "TextAnnotation" ] }, { "role" : "EventSubProcess", "contains" : [ "sequence_start", "sequence_end", "from_task_event", "to_task_event", "TextAnnotation" ] } ], "morphingRules" : [ { "role" : "ActivitiesMorph", "baseMorphs" : [ "UserTask" ], "preserveBounds" : true }, { "role" : "GatewaysMorph", "baseMorphs" : [ "ExclusiveGateway" ] }, { "role" : "StartEventsMorph", "baseMorphs" : [ "StartNoneEvent" ] }, { "role" : "EndEventsMorph", "baseMorphs" : [ "StartNoneEvent" ] }, { "role" : "CatchEventsMorph", "baseMorphs" : [ "CatchTimerEvent" ] }, { "role" : "ThrowEventsMorph", "baseMorphs" : [ "ThrowNoneEvent" ] }, { "role" : "TextAnnotation", "baseMorphs" : [ "TextAnnotation" ] } ] } }