spring boot 2.1 集成activiti 6.0.0和activiti-modeler 5.23.0可视化编辑器(随记)

作者 : admin 本文共58770个字,预计阅读时间需要147分钟 发布时间: 2024-06-4 共2人阅读

先上pom:



    
        org.springframework.boot
        spring-boot-starter-parent
        2.1.0.RELEASE
    
    4.0.0

    study-spring

    
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.boot
            spring-boot-starter-jdbc
        
        
            org.activiti
            activiti-spring-boot-starter-rest-api
            6.0.0
        
        
            mysql
            mysql-connector-java
            8.0.18
        
        
            org.projectlombok
            lombok
        

        
            org.slf4j
            slf4j-api
            1.7.21
        
        
            org.slf4j
            slf4j-log4j12
            1.7.21
        

        
        
            org.activiti
            activiti-modeler
            5.23.0
        

        
        
            org.apache.xmlgraphics
            batik-transcoder
            1.8
        
        
            org.apache.xmlgraphics
            batik-codec
            1.8
        
        
            org.activiti
            activiti-json-converter
            6.0.0
        
        
            com.alibaba
            fastjson
            2.0.42
            compile
        


    


    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

再上配置:

server:
  port: 8081

spring:
  application:
    name: study-spring
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/activittest?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver
  activiti:
    #1.false,默认值,acticiti启动时对比数据库表中保存的版本,如果没有表或者版本不匹配,将抛出异常
    #2.true,acticiti会对数据中所有的表进行更新操作,如果表不存在,则自动创建
    #3.create_drop,在acticiti启动时创建表,关闭时删除表(必须手动关闭引擎才能删除表)
    #4.drop_create,在acticiti启动时删除原来的表,然后创建新表(不需要手动关闭引擎)
    database-schema-update: true
    #检测历史表是否存在,acticit7默认没有开启历史记录信息
    db-history-used: true
    #历史记录等级
    #1.none:不保存任何历史记录,因此在流程执行过程中,这是最高效的
    #2.acticiti:级别高于none,保存流程实例与流程行为,其他数据不保存
    #3.audit:除activiti级别会保存的数据外,还会保存全部的流程任务及其属性,audit为默认值
    #4.full:保存历史数据的最高级别,除了保存audit级别的数据外,还会保存其他流程相关的细节数据,包括一些流程参数等
    #默认true,效验流程文件,默认效验resources下的processes文件夹里的流程,为true自动部署流程,为false则不部署
    #spring.activiti.check-process-definitions=false
    history-level: full

下载activiti6.0.0 ​​​​​​​http://github.com/Activiti/Activiti/releases/download/activiti-6.0.0/activiti-6.0.0.zip

解压后初始化所需数据表:

spring boot 2.1 集成activiti 6.0.0和activiti-modeler 5.23.0可视化编辑器(随记)插图 

解压此文件夹下的war包:

spring boot 2.1 集成activiti 6.0.0和activiti-modeler 5.23.0可视化编辑器(随记)插图(1) 放置到resources下

spring boot 2.1 集成activiti 6.0.0和activiti-modeler 5.23.0可视化编辑器(随记)插图(2)

注意stencilset.json 是汉化文件,可替换如下:

{
"title" : "BPMN 2.0标准工具",
"namespace" : "http://b3mn.org/stencilset/bpmn2.0#",
"description" : "BPMN process editor",
"propertyPackages" : [ {
"name" : "process_idpackage",
"properties" : [ {
"id" : "process_id",
"type" : "String",
"title" : "流程名称",
"value" : "process",
"description" : "流程的特殊唯一的名称标识",
"popular" : true
} ]
}, {
"name" : "overrideidpackage",
"properties" : [ {
"id" : "overrideid",
"type" : "String",
"title" : "Id",
"value" : "",
"description" : "Unique identifier of the element.",
"popular" : true
} ]
}, {
"name" : "namepackage",
"properties" : [ {
"id" : "name",
"type" : "String",
"title" : "名称",
"value" : "",
"description" : "元素名称",
"popular" : true,
"refToView" : "text_name"
} ]
}, {
"name" : "documentationpackage",
"properties" : [ {
"id" : "documentation",
"type" : "Text",
"title" : "描述",
"value" : "",
"description" : "元素描述",
"popular" : true
} ]
}, {
"name" : "process_authorpackage",
"properties" : [ {
"id" : "process_author",
"type" : "String",
"title" : "流程作者",
"value" : "",
"description" : "流程定义者姓名",
"popular" : true
} ]
}, {
"name" : "process_versionpackage",
"properties" : [ {
"id" : "process_version",
"type" : "String",
"title" : "流程版本",
"value" : "",
"description" : "标识文档版本",
"popular" : true
} ]
}, {
"name" : "process_namespacepackage",
"properties" : [ {
"id" : "process_namespace",
"type" : "String",
"title" : "目标命名空间",
"value" : "http://www.activiti.org/processdef",
"description" : "工作流目标命名空间",
"popular" : true
} ]
}, {
"name" : "asynchronousdefinitionpackage",
"properties" : [ {
"id" : "asynchronousdefinition",
"type" : "Boolean",
"title" : "异步",
"value" : "false",
"description" : "Define the activity as asynchronous.",
"popular" : true
} ]
}, {
"name" : "exclusivedefinitionpackage",
"properties" : [ {
"id" : "exclusivedefinition",
"type" : "Boolean",
"title" : "单独",
"value" : "false",
"description" : "Define the activity as exclusive.",
"popular" : true
} ]
}, {
"name" : "executionlistenerspackage",
"properties" : [ {
"id" : "executionlisteners",
"type" : "multiplecomplex",
"title" : "执行监听器",
"value" : "",
"description" : "Listeners for an activity, process, sequence flow, start and end event.",
"popular" : true
} ]
}, {
"name" : "tasklistenerspackage",
"properties" : [ {
"id" : "tasklisteners",
"type" : "multiplecomplex",
"title" : "任务监听器",
"value" : "",
"description" : "Listeners for a user task",
"popular" : true
} ]
}, {
"name" : "eventlistenerspackage",
"properties" : [ {
"id" : "eventlisteners",
"type" : "multiplecomplex",
"title" : "事件监听器",
"value" : "",
"description" : "Listeners for any event happening in the Activiti Engine. It's also possible to rethrow the event as a signal, message or error event",
"popular" : true
} ]
}, {
"name" : "usertaskassignmentpackage",
"properties" : [ {
"id" : "usertaskassignment",
"type" : "Complex",
"title" : "代理",
"value" : "",
"description" : "Assignment definition for the user task",
"popular" : true
} ]
}, {
"name" : "formpropertiespackage",
"properties" : [ {
"id" : "formproperties",
"type" : "Complex",
"title" : "动态表单属性",
"value" : "",
"description" : "Definition of the form with a list of form properties",
"popular" : true
} ]
}, {
"name" : "formkeydefinitionpackage",
"properties" : [ {
"id" : "formkeydefinition",
"type" : "String",
"title" : "自定义表单",
"value" : "",
"description" : "用户任务表单编号",
"popular" : true
} ]
}, {
"name" : "duedatedefinitionpackage",
"properties" : [ {
"id" : "duedatedefinition",
"type" : "String",
"title" : "到期日期",
"value" : "",
"description" : "用户任务到期时间",
"popular" : true
} ]
}, {
"name" : "prioritydefinitionpackage",
"properties" : [ {
"id" : "prioritydefinition",
"type" : "String",
"title" : "优先级",
"value" : "",
"description" : "用户任务优先级",
"popular" : true
} ]
}, {
"name" : "duedatedefinitionpackage",
"properties" : [ {
"id" : "duedatedefinition",
"type" : "String",
"title" : "到期日期",
"value" : "",
"description" : "Due date of the user task.",
"popular" : true
} ]
}, {
"name" : "servicetaskclasspackage",
"properties" : [ {
"id" : "servicetaskclass",
"type" : "String",
"title" : "监听类",
"value" : "",
"description" : "Class that implements the service task logic.",
"popular" : true
} ]
}, {
"name" : "servicetaskexpressionpackage",
"properties" : [ {
"id" : "servicetaskexpression",
"type" : "String",
"title" : "表达式",
"value" : "",
"description" : "Service task logic defined with an expression.",
"popular" : true
} ]
}, {
"name" : "servicetaskdelegateexpressionpackage",
"properties" : [ {
"id" : "servicetaskdelegateexpression",
"type" : "String",
"title" : "委托表达式",
"value" : "",
"description" : "Service task logic defined with a delegate expression.",
"popular" : true
} ]
}, {
"name" : "servicetaskfieldspackage",
"properties" : [ {
"id" : "servicetaskfields",
"type" : "Complex",
"title" : "字段",
"value" : "",
"description" : "Field extensions",
"popular" : true
} ]
}, {
"name" : "servicetaskresultvariablepackage",
"properties" : [ {
"id" : "servicetaskresultvariable",
"type" : "String",
"title" : "Result variable name",
"value" : "",
"description" : "Process variable name to store the service task result.",
"popular" : true
} ]
}, {
"name" : "scriptformatpackage",
"properties" : [ {
"id" : "scriptformat",
"type" : "String",
"title" : "脚本格式",
"value" : "",
"description" : "Script format of the script task.",
"popular" : true
} ]
}, {
"name" : "scripttextpackage",
"properties" : [ {
"id" : "scripttext",
"type" : "Text",
"title" : "脚本",
"value" : "",
"description" : "Script text of the script task.",
"popular" : true
} ]
}, {
"name" : "ruletask_rulespackage",
"properties" : [ {
"id" : "ruletask_rules",
"type" : "String",
"title" : "规则",
"value" : "",
"description" : "Rules of the rule task.",
"popular" : true
} ]
}, {
"name" : "ruletask_variables_inputpackage",
"properties" : [ {
"id" : "ruletask_variables_input",
"type" : "String",
"title" : "输入变量",
"value" : "",
"description" : "Input variables of the rule task.",
"popular" : true
} ]
}, {
"name" : "ruletask_excludepackage",
"properties" : [ {
"id" : "ruletask_exclude",
"type" : "Boolean",
"title" : "除外",
"value" : "false",
"description" : "Use the rules property as exclusion.",
"popular" : true
} ]
}, {
"name" : "ruletask_resultpackage",
"properties" : [ {
"id" : "ruletask_result",
"type" : "String",
"title" : "返回变量",
"value" : "",
"description" : "Result variable of the rule task.",
"popular" : true
} ]
}, {
"name" : "mailtasktopackage",
"properties" : [ {
"id" : "mailtaskto",
"type" : "Text",
"title" : "接收人",
"value" : "",
"description" : "The recipients if the e-mail. Multiple recipients are defined in a comma-separated list.",
"popular" : true
} ]
}, {
"name" : "mailtaskfrompackage",
"properties" : [ {
"id" : "mailtaskfrom",
"type" : "Text",
"title" : "发件人",
"value" : "",
"description" : "The sender e-mail address. If not provided, the default configured from address is used.",
"popular" : true
} ]
}, {
"name" : "mailtasksubjectpackage",
"properties" : [ {
"id" : "mailtasksubject",
"type" : "Text",
"title" : "主题",
"value" : "",
"description" : "The subject of the e-mail.",
"popular" : true
} ]
}, {
"name" : "mailtaskccpackage",
"properties" : [ {
"id" : "mailtaskcc",
"type" : "Text",
"title" : "转发",
"value" : "",
"description" : "The cc's of the e-mail. Multiple recipients are defined in a comma-separated list",
"popular" : true
} ]
}, {
"name" : "mailtaskbccpackage",
"properties" : [ {
"id" : "mailtaskbcc",
"type" : "Text",
"title" : "密送",
"value" : "",
"description" : "The bcc's of the e-mail. Multiple recipients are defined in a comma-separated list",
"popular" : true
} ]
}, {
"name" : "mailtasktextpackage",
"properties" : [ {
"id" : "mailtasktext",
"type" : "Text",
"title" : "内容",
"value" : "",
"description" : "The content of the e-mail, in case one needs to send plain none-rich e-mails. Can be used in combination with html, for e-mail clients that don't support rich content. The client will then fall back to this text-only alternative.",
"popular" : true
} ]
}, {
"name" : "mailtaskhtmlpackage",
"properties" : [ {
"id" : "mailtaskhtml",
"type" : "Text",
"title" : "Html",
"value" : "",
"description" : "A piece of HTML that is the content of the e-mail.",
"popular" : true
} ]
}, {
"name" : "mailtaskcharsetpackage",
"properties" : [ {
"id" : "mailtaskcharset",
"type" : "String",
"title" : "Charset",
"value" : "",
"description" : "Allows to change the charset of the email, which is necessary for many non-English languages. ",
"popular" : true
} ]
}, {
"name" : "callactivitycalledelementpackage",
"properties" : [ {
"id" : "callactivitycalledelement",
"type" : "String",
"title" : "被调用元素",
"value" : "",
"description" : "Process reference.",
"popular" : true
} ]
}, {
"name" : "callactivityinparameterspackage",
"properties" : [ {
"id" : "callactivityinparameters",
"type" : "Complex",
"title" : "输入参数",
"value" : "",
"description" : "Definition of the input parameters",
"popular" : true
} ]
}, {
"name" : "callactivityoutparameterspackage",
"properties" : [ {
"id" : "callactivityoutparameters",
"type" : "Complex",
"title" : "输出参数",
"value" : "",
"description" : "Definition of the output parameters",
"popular" : true
} ]
}, {
"name" : "cameltaskcamelcontextpackage",
"properties" : [ {
"id" : "cameltaskcamelcontext",
"type" : "String",
"title" : "Camel内容",
"value" : "",
"description" : "An optional camel context definition, if left empty the default is used.",
"popular" : true
} ]
}, {
"name" : "muletaskendpointurlpackage",
"properties" : [ {
"id" : "muletaskendpointurl",
"type" : "String",
"title" : "终端url",
"value" : "",
"description" : "A required endpoint url to sent the message to Mule.",
"popular" : true
} ]
}, {
"name" : "muletasklanguagepackage",
"properties" : [ {
"id" : "muletasklanguage",
"type" : "String",
"title" : "语言",
"value" : "",
"description" : "A required definition for the language to resolve the payload expression, like juel.",
"popular" : true
} ]
}, {
"name" : "muletaskpayloadexpressionpackage",
"properties" : [ {
"id" : "muletaskpayloadexpression",
"type" : "String",
"title" : "有效载荷表达式",
"value" : "",
"description" : "A required definition for the payload of the message sent to Mule.",
"popular" : true
} ]
}, {
"name" : "muletaskresultvariablepackage",
"properties" : [ {
"id" : "muletaskresultvariable",
"type" : "String",
"title" : "返回变量",
"value" : "",
"description" : "An optional result variable for the payload returned.",
"popular" : true
} ]
}, {
"name" : "conditionsequenceflowpackage",
"properties" : [ {
"id" : "conditionsequenceflow",
"type" : "Complex",
"title" : "流转条件",
"value" : "",
"description" : "The condition of the sequence flow",
"popular" : true
} ]
}, {
"name" : "defaultflowpackage",
"properties" : [ {
"id" : "defaultflow",
"type" : "Boolean",
"title" : "默认流转",
"value" : "false",
"description" : "Define the sequence flow as default",
"popular" : true,
"refToView" : "default"
} ]
}, {
"name" : "conditionalflowpackage",
"properties" : [ {
"id" : "conditionalflow",
"type" : "Boolean",
"title" : "Conditional flow",
"value" : "false",
"description" : "Define the sequence flow with a condition",
"popular" : true
} ]
}, {
"name" : "timercycledefinitionpackage",
"properties" : [ {
"id" : "timercycledefinition",
"type" : "String",
"title" : "循环时间(例:R3/PT10H)",
"value" : "",
"description" : "Define the timer with a ISO-8601 cycle.",
"popular" : true
} ]
}, {
"name" : "timerdatedefinitionpackage",
"properties" : [ {
"id" : "timerdatedefinition",
"type" : "String",
"title" : "开始时间(ISO-8601)",
"value" : "",
"description" : "Define the timer with a ISO-8601 date definition.",
"popular" : true
} ]
}, {
"name" : "timerdurationdefinitionpackage",
"properties" : [ {
"id" : "timerdurationdefinition",
"type" : "String",
"title" : "持续时间(例:PT5M)",
"value" : "",
"description" : "Define the timer with a ISO-8601 duration.",
"popular" : true
} ]
}, {
"name" : "timerenddatedefinitionpackage",
"properties" : [ {
"id" : "timerenddatedefinition",
"type" : "String",
"title" : "结束时间(ISO-8601)",
"value" : "",
"description" : "Define the timer with a ISO-8601 duration.",
"popular" : true
} ]
}, {
"name" : "messagerefpackage",
"properties" : [ {
"id" : "messageref",
"type" : "String",
"title" : "消息引用",
"value" : "",
"description" : "Define the message name.",
"popular" : true
} ]
}, {
"name" : "signalrefpackage",
"properties" : [ {
"id" : "signalref",
"type" : "String",
"title" : "信号引用",
"value" : "",
"description" : "Define the signal name.",
"popular" : true
} ]
}, {
"name" : "errorrefpackage",
"properties" : [ {
"id" : "errorref",
"type" : "String",
"title" : "错误引用",
"value" : "",
"description" : "Define the error name.",
"popular" : true
} ]
}, {
"name" : "cancelactivitypackage",
"properties" : [ {
"id" : "cancelactivity",
"type" : "Boolean",
"title" : "取消活动",
"value" : "true",
"description" : "Should the activity be cancelled",
"popular" : true,
"refToView" : [ "frame", "frame2" ]
} ]
}, {
"name" : "initiatorpackage",
"properties" : [ {
"id" : "initiator",
"type" : "String",
"title" : "发起人",
"value" : "",
"description" : "Initiator of the process.",
"popular" : true
} ]
}, {
"name" : "textpackage",
"properties" : [ {
"id" : "text",
"type" : "String",
"title" : "Text",
"value" : "",
"description" : "The text of the text annotation.",
"popular" : true,
"refToView" : "text"
} ]
}, {
"name" : "multiinstance_typepackage",
"properties" : [ {
"id" : "multiinstance_type",
"type" : "kisbpm-multiinstance",
"title" : "多实例类型",
"value" : "None",
"description" : "Repeated activity execution (parallel or sequential) can be displayed through different loop types",
"popular" : true,
"refToView" : "multiinstance"
} ]
}, {
"name" : "multiinstance_cardinalitypackage",
"properties" : [ {
"id" : "multiinstance_cardinality",
"type" : "String",
"title" : "基数(多实例)",
"value" : "",
"description" : "Define the cardinality of multi instance.",
"popular" : true
} ]
}, {
"name" : "multiinstance_collectionpackage",
"properties" : [ {
"id" : "multiinstance_collection",
"type" : "String",
"title" : "集合(多实例)",
"value" : "",
"description" : "Define the collection for the multi instance.",
"popular" : true
} ]
}, {
"name" : "multiinstance_variablepackage",
"properties" : [ {
"id" : "multiinstance_variable",
"type" : "String",
"title" : "元素变量(多实例)",
"value" : "",
"description" : "Define the element variable for the multi instance.",
"popular" : true
} ]
}, {
"name" : "multiinstance_conditionpackage",
"properties" : [ {
"id" : "multiinstance_condition",
"type" : "String",
"title" : "完成条件(多实例)",
"value" : "",
"description" : "Define the completion condition for the multi instance.",
"popular" : true
} ]
}, {
"name" : "isforcompensationpackage",
"properties" : [ {
"id" : "isforcompensation",
"type" : "Boolean",
"title" : "是否为补偿",
"value" : "false",
"description" : "一个标志,标识是否这个活动的目的是为了补偿.",
"popular" : true,
"refToView" : "compensation"
} ]
}, {
"name" : "sequencefloworderpackage",
"properties" : [ {
"id" : "sequencefloworder",
"type" : "Complex",
"title" : "流动顺序",
"value" : "",
"description" : "Order outgoing sequence flows.",
"popular" : true
} ]
}, {
"name" : "signaldefinitionspackage",
"properties" : [ {
"id" : "signaldefinitions",
"type" : "multiplecomplex",
"title" : "信号定义",
"value" : "",
"description" : "Signal definitions",
"popular" : true
} ]
}, {
"name" : "messagedefinitionspackage",
"properties" : [ {
"id" : "messagedefinitions",
"type" : "multiplecomplex",
"title" : "消息定义",
"value" : "",
"description" : "Message definitions",
"popular" : true
} ]
}, {
"name" : "istransactionpackage",
"properties" : [ {
"id" : "istransaction",
"type" : "Boolean",
"title" : "是否事务处理子过程",
"value" : "false",
"description" : "A flag that identifies whether this sub process is of type transaction.",
"popular" : true,
"refToView" : "border"
} ]
}, {
"name" : "terminateAllpackage",
"properties" : [ {
"id" : "terminateAll",
"type" : "Boolean",
"title" : "终止全部",
"value" : "false",
"description" : "Enable to terminate the process instance",
"popular" : true
} ]
} ],
"stencils" : [ {
"type" : "node",
"id" : "BPMNDiagram",
"title" : "BPMN-Diagram",
"description" : "A BPMN 2.0 diagram.",
"view" : "
",
"icon" : "diagram.png",
"groups" : [ "Diagram" ],
"mayBeRoot" : true,
"hide" : true,
"propertyPackages" : [ "process_idpackage", "namepackage", "documentationpackage", "process_authorpackage", "process_versionpackage", "process_namespacepackage", "executionlistenerspackage", "eventlistenerspackage", "signaldefinitionspackage", "messagedefinitionspackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ ]
}, {
"type" : "node",
"id" : "StartNoneEvent",
"title" : "事件",
"description" : "A start event without a specific trigger",
"view" : "
",
"icon" : "startevent/none.png",
"groups" : [ "启动事件" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "initiatorpackage", "formkeydefinitionpackage", "formpropertiespackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ]
}, {
"type" : "node",
"id" : "StartTimerEvent",
"title" : "定时事件",
"description" : "A start event with a timer trigger",
"view" : "
",
"icon" : "startevent/timer.png",
"groups" : [ "启动事件" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "timercycledefinitionpackage", "timerdatedefinitionpackage", "timerdurationdefinitionpackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ]
}, {
"type" : "node",
"id" : "StartSignalEvent",
"title" : "信号事件",
"description" : "A start event with a signal trigger",
"view" : "
",
"icon" : "startevent/signal.png",
"groups" : [ "启动事件" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "signalrefpackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ]
}, {
"type" : "node",
"id" : "StartMessageEvent",
"title" : "消息事件",
"description" : "A start event with a message trigger",
"view" : "
",
"icon" : "startevent/message.png",
"groups" : [ "启动事件" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "messagerefpackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ]
}, {
"type" : "node",
"id" : "StartErrorEvent",
"title" : "异常事件",
"description" : "A start event that catches a thrown BPMN error",
"view" : "
",
"icon" : "startevent/error.png",
"groups" : [ "启动事件" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "errorrefpackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ]
}, {
"type" : "node",
"id" : "UserTask",
"title" : "用户活动",
"description" : "分配给特定人的任务 ",
"view" : "
",
"icon" : "activity/list/type.user.png",
"groups" : [ "活动列表" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "usertaskassignmentpackage", "formkeydefinitionpackage", "duedatedefinitionpackage", "prioritydefinitionpackage", "formpropertiespackage", "tasklistenerspackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ]
}, {
"type" : "node",
"id" : "ServiceTask",
"title" : "服务任务",
"description" : "An automatic task with service logic",
"view" : "
",
"icon" : "activity/list/type.service.png",
"groups" : [ "活动列表" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "servicetaskclasspackage", "servicetaskexpressionpackage", "servicetaskdelegateexpressionpackage", "servicetaskfieldspackage", "servicetaskresultvariablepackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ]
}, {
"type" : "node",
"id" : "ScriptTask",
"title" : "脚本任务",
"description" : "An automatic task with script logic",
"view" : "
",
"icon" : "activity/list/type.script.png",
"groups" : [ "活动列表" ],
"propertyPackages" : [ "scriptformatpackage", "scripttextpackage", "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ]
}, {
"type" : "node",
"id" : "BusinessRule",
"title" : "规则任务",
"description" : "An automatic task with rule logic",
"view" : "
",
"icon" : "activity/list/type.business.rule.png",
"groups" : [ "活动列表" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "ruletask_rulespackage", "ruletask_variables_inputpackage", "ruletask_excludepackage", "ruletask_resultpackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ]
}, {
"type" : "node",
"id" : "ReceiveTask",
"title" : "接受任务",
"description" : "An task that waits for a signal",
"view" : "
",
"icon" : "activity/list/type.receive.png",
"groups" : [ "活动列表" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ]
}, {
"type" : "node",
"id" : "ManualTask",
"title" : "手工任务",
"description" : "An automatic task with no logic",
"view" : "
",
"icon" : "activity/list/type.manual.png",
"groups" : [ "活动列表" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ]
}, {
"type" : "node",
"id" : "MailTask",
"title" : "邮件任务",
"description" : "An mail task",
"view" : "
",
"icon" : "activity/list/type.send.png",
"groups" : [ "活动列表" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "mailtasktopackage", "mailtaskfrompackage", "mailtasksubjectpackage", "mailtaskccpackage", "mailtaskbccpackage", "mailtasktextpackage", "mailtaskhtmlpackage", "mailtaskcharsetpackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ]
}, {
"type" : "node",
"id" : "CamelTask",
"title" : "Camel任务",
"description" : "An task that sends a message to Camel",
"view" : "
",
"icon" : "activity/list/type.camel.png",
"groups" : [ "活动列表" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "cameltaskcamelcontextpackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ]
}, {
"type" : "node",
"id" : "MuleTask",
"title" : "Mule任务",
"description" : "An task that sends a message to Mule",
"view" : "
",
"icon" : "activity/list/type.mule.png",
"groups" : [ "活动列表" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "muletaskendpointurlpackage", "muletasklanguagepackage", "muletaskpayloadexpressionpackage", "muletaskresultvariablepackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ]
}, {
"type" : "node",
"id" : "SendTask",
"title" : "Send task",
"description" : "An task that sends a message",
"view" : "
",
"icon" : "activity/list/type.send.png",
"groups" : [ "活动列表" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ]
}, {
"type" : "node",
"id" : "SubProcess",
"title" : "子流程",
"description" : "子流程范围",
"view" : "
",
"icon" : "activity/expanded.subprocess.png",
"groups" : [ "结构列表" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "istransactionpackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "Activity", "sequence_start", "sequence_end", "all" ]
}, {
"type" : "node",
"id" : "EventSubProcess",
"title" : "事件子流程",
"description" : "一个事件周期的子流程",
"view" : "
",
"icon" : "activity/event.subprocess.png",
"groups" : [ "结构列表" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "Activity", "all" ]
}, {
"type" : "node",
"id" : "CallActivity",
"title" : "调用活动",
"description" : "一个调用活动",
"view" : "
",
"icon" : "activity/task.png",
"groups" : [ "结构列表" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "callactivitycalledelementpackage", "callactivityinparameterspackage", "callactivityoutparameterspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "Activity", "sequence_start", "sequence_end", "all" ]
}, {
"type" : "node",
"id" : "ExclusiveGateway",
"title" : "互斥网关",
"description" : "一个选择的网关",
"view" : "
",
"icon" : "gateway/exclusive.databased.png",
"groups" : [ "网关列表" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "sequencefloworderpackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "sequence_start", "GatewaysMorph", "sequence_end", "all" ]
}, {
"type" : "node",
"id" : "ParallelGateway",
"title" : "并行网关",
"description" : "一个并行的网关",
"view" : "
",
"icon" : "gateway/parallel.png",
"groups" : [ "网关列表" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "sequencefloworderpackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "sequence_start", "GatewaysMorph", "sequence_end", "all" ]
}, {
"type" : "node",
"id" : "InclusiveGateway",
"title" : "包容性网关",
"description" : "一个包容性网关",
"view" : "
",
"icon" : "gateway/inclusive.png",
"groups" : [ "网关列表" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "sequencefloworderpackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "sequence_start", "GatewaysMorph", "sequence_end", "all" ]
}, {
"type" : "node",
"id" : "EventGateway",
"title" : "事件网关",
"description" : "一个事件网关",
"view" : "
",
"icon" : "gateway/eventbased.png",
"groups" : [ "网关列表" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "sequencefloworderpackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "sequence_start", "GatewaysMorph", "sequence_end", "all" ]
}, {
"type" : "node",
"id" : "BoundaryErrorEvent",
"title" : "边界错误事件",
"description" : "一个捕捉BPMN异常的边界事件",
"view" : "
",
"icon" : "catching/error.png",
"groups" : [ "边界事件" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "errorrefpackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ]
}, {
"type" : "node",
"id" : "BoundaryTimerEvent",
"title" : "定时边界事件",
"description" : "一个定时触发的边界事件",
"view" : "
",
"icon" : "catching/timer.png",
"groups" : [ "边界事件" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "timercycledefinitionpackage", "timerdatedefinitionpackage", "timerdurationdefinitionpackage", "timerenddatedefinitionpackage", "cancelactivitypackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ]
}, {
"type" : "node",
"id" : "BoundarySignalEvent",
"title" : "边界信号事件",
"description" : "一个信号触发的边界事件",
"view" : "
",
"icon" : "catching/signal.png",
"groups" : [ "边界事件" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "signalrefpackage", "cancelactivitypackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ]
}, {
"type" : "node",
"id" : "BoundaryMessageEvent",
"title" : "边界消息事件",
"description" : "一个边界消息事件",
"view" : "
",
"icon" : "catching/message.png",
"groups" : [ "边界事件" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "messagerefpackage", "cancelactivitypackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ]
}, {
"type" : "node",
"id" : "BoundaryCancelEvent",
"title" : "边界取消事件",
"description" : "一个边界取消事件",
"view" : "
",
"icon" : "catching/cancel.png",
"groups" : [ "边界事件" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ]
}, {
"type" : "node",
"id" : "BoundaryCompensationEvent",
"title" : "边界修正事件",
"description" : "一个边界修正事件",
"view" : "
",
"icon" : "catching/compensation.png",
"groups" : [ "边界事件" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary", "all" ]
}, {
"type" : "node",
"id" : "CatchTimerEvent",
"title" : "中间定时器捕获事件",
"description" : "定时器触发的中间捕获事件",
"view" : "
",
"icon" : "catching/timer.png",
"groups" : [ "中间捕获事件列表" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "timercycledefinitionpackage", "timerdatedefinitionpackage", "timerdurationdefinitionpackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "sequence_start", "sequence_end", "CatchEventsMorph", "all" ]
}, {
"type" : "node",
"id" : "CatchSignalEvent",
"title" : "中间信号捕获事件",
"description" : "信号触发的捕获事件",
"view" : "
",
"icon" : "catching/signal.png",
"groups" : [ "中间捕获事件列表" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "signalrefpackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "sequence_start", "sequence_end", "CatchEventsMorph", "all" ]
}, {
"type" : "node",
"id" : "CatchMessageEvent",
"title" : "中间消息捕获事件",
"description" : "一个消息触发的中间捕获事件",
"view" : "
",
"icon" : "catching/message.png",
"groups" : [ "中间捕获事件列表" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "messagerefpackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "sequence_start", "sequence_end", "CatchEventsMorph", "all" ]
}, {
"type" : "node",
"id" : "ThrowNoneEvent",
"title" : "中间抛出事件",
"description" : "无触发器的中间抛出事件",
"view" : "
",
"icon" : "throwing/none.png",
"groups" : [ "中间抛出事件" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "ThrowEventsMorph", "sequence_start", "sequence_end", "all" ]
}, {
"type" : "node",
"id" : "ThrowSignalEvent",
"title" : "信号中间抛出事件",
"description" : "一个信号触发的中间抛出事件",
"view" : "
",
"icon" : "throwing/signal.png",
"groups" : [ "中间抛出事件" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "signalrefpackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "ThrowEventsMorph", "sequence_start", "sequence_end", "all" ]
}, {
"type" : "node",
"id" : "EndNoneEvent",
"title" : "结束任务",
"description" : "一个无触发器的结束任务",
"view" : "
",
"icon" : "endevent/none.png",
"groups" : [ "结束任务列表" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "EndEventsMorph", "sequence_end", "all" ]
}, {
"type" : "node",
"id" : "EndErrorEvent",
"title" : "结束错误任务",
"description" : "An end event that throws an error event",
"view" : "
",
"icon" : "endevent/error.png",
"groups" : [ "结束任务列表" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "errorrefpackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "EndEventsMorph", "sequence_end", "all" ]
}, {
"type" : "node",
"id" : "EndCancelEvent",
"title" : "结束取消任务",
"description" : "A cancel end event",
"view" : "
",
"icon" : "endevent/cancel.png",
"groups" : [ "结束任务列表" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "EndEventsMorph", "sequence_end", "all" ]
}, {
"type" : "node",
"id" : "EndTerminateEvent",
"title" : "终结任务",
"description" : "A terminate end event",
"view" : "
",
"icon" : "endevent/terminate.png",
"groups" : [ "结束任务列表" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "terminateAllpackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "EndEventsMorph", "sequence_end", "all" ]
}, {
"type" : "node",
"id" : "Pool",
"title" : "池",
"description" : "A pool to stucture the process definition",
"view" : "
",
"icon" : "swimlane/pool.png",
"groups" : [ "泳道列表" ],
"layout" : [ {
"type" : "layout.bpmn2_0.pool"
} ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "process_idpackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "canContainArtifacts", "all" ]
}, {
"type" : "node",
"id" : "Lane",
"title" : "泳道",
"description" : "A lane to stucture the process definition",
"view" : "
",
"icon" : "swimlane/lane.png",
"groups" : [ "泳道列表" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "PoolChild", "canContainArtifacts", "all" ]
}, {
"type" : "edge",
"id" : "SequenceFlow",
"title" : "顺序流",
"description" : "顺序流定义活动的执行顺序",
"view" : "\r
\r
\r
\r
<!--  -->\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
",
"icon" : "connector/sequenceflow.png",
"groups" : [ "连接对象" ],
"layout" : [ {
"type" : "layout.bpmn2_0.sequenceflow"
} ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "conditionsequenceflowpackage", "executionlistenerspackage", "defaultflowpackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "ConnectingObjectsMorph", "all" ]
}, {
"type" : "edge",
"id" : "MessageFlow",
"title" : "消息流",
"description" : "Message flow to connect elements in different pools.",
"view" : "\r
\r
\r
\r
<!--  -->\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
",
"icon" : "connector/messageflow.png",
"groups" : [ "连接对象" ],
"layout" : [ {
"type" : "layout.bpmn2_0.sequenceflow"
} ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "ConnectingObjectsMorph", "all" ]
}, {
"type" : "edge",
"id" : "Association",
"title" : "注释",
"description" : "连接一个注释到指定元素",
"view" : "\r
\r
\r
\r
\r
\r
",
"icon" : "connector/association.undirected.png",
"groups" : [ "连接对象" ],
"layout" : [ {
"type" : "layout.bpmn2_0.sequenceflow"
} ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "ConnectingObjectsMorph", "all" ]
}, {
"type" : "edge",
"id" : "DataAssociation",
"title" : "日期注释",
"description" : "连接一个日期注释到指定元素",
"view" : "\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
",
"icon" : "connector/association.unidirectional.png",
"groups" : [ "连接对象" ],
"layout" : [ {
"type" : "layout.bpmn2_0.sequenceflow"
} ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "ConnectingObjectsMorph", "all" ]
}, {
"type" : "node",
"id" : "TextAnnotation",
"title" : "文本注释",
"description" : "连接一个文本注释到指定元素",
"view" : "
",
"icon" : "artifact/text.annotation.png",
"groups" : [ "加工" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "textpackage" ],
"hiddenPropertyPackages" : [ ],
"roles" : [ "all" ]
}, {
"type" : "node",
"id" : "DataStore",
"title" : "Data store",
"description" : "Reference to a data store.",
"view" : "\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
\r
",
"icon" : "dataobject/data.store.png",
"groups" : [ "Artifacts" ],
"propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ],
"hiddenPropertyPackages" : [ ],
"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" ]
}, {
"from" : "sequence_end",
"to" : [ "TextAnnotation" ]
}, {
"from" : "TextAnnotation",
"to" : [ "sequence_end" ]
}, {
"from" : "BoundaryCompensationEvent",
"to" : [ "sequence_end" ]
}, {
"from" : "TextAnnotation",
"to" : [ "sequence_start" ]
}, {
"from" : "BoundaryCompensationEvent",
"to" : [ "sequence_start" ]
} ]
}, {
"role" : "DataAssociation",
"connects" : [ {
"from" : "sequence_start",
"to" : [ "DataStore" ]
}, {
"from" : "sequence_end",
"to" : [ "DataStore" ]
}, {
"from" : "DataStore",
"to" : [ "sequence_end" ]
}, {
"from" : "DataStore",
"to" : [ "sequence_start" ]
} ]
}, {
"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", "DataStore" ]
}, {
"role" : "EventSubProcess",
"contains" : [ "sequence_start", "sequence_end", "from_task_event", "to_task_event", "TextAnnotation", "DataStore" ]
}, {
"role" : "Pool",
"contains" : [ "Lane" ]
}, {
"role" : "Lane",
"contains" : [ "sequence_start", "sequence_end", "EventSubProcess", "TextAnnotation", "DataStore" ]
} ],
"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" : "BoundaryEventsMorph",
"baseMorphs" : [ "ThrowNoneEvent" ]
}, {
"role" : "BoundaryCompensationEvent",
"baseMorphs" : [ "BoundaryCompensationEvent" ]
}, {
"role" : "TextAnnotation",
"baseMorphs" : [ "TextAnnotation" ]
}, {
"role" : "DataStore",
"baseMorphs" : [ "DataStore" ]
} ]
}
}

然后再替换编辑器这个:

{
"HEADER.BRAND" : "Activiti编辑",
"HEADER.BRAND_TAGLINE" : "powered by Alfresco",
"PAGE.HEADER" : "Orchestration Details",
"ACTION.OK" : "确认",
"ACTION.SAVE" : "保存",
"ACTION.SAVE-AND-CLOSE" : "保存并关闭",
"ACTION.SEND" : "发送",
"ACTION.CANCEL" : "取消",
"ACTION.SELECT" : "选择",
"ACTION.ADD" : "添加",
"ACTION.REMOVE" : "清除",
"ACTION.MOVE.UP" : "上移",
"ACTION.MOVE.DOWN" : "下移",
"MAIN_NAVIGATION_ORCHESTRATIONS" : "业务流程",
"MAIN_NAVIGATION_DISPATCH_RULES" : "调度规则",
"MAIN_NAVIGATION_ASSET_GROUPS" : "审批组",
"MAIN_NAVIGATION_SOLUTIONS" : "解决",
"TOOLBAR.ACTION.CLOSE" : "Close the editor and go back to the overview page",
"TOOLBAR.ACTION.SAVE" : "保存",
"TOOLBAR.ACTION.VALIDATE": "校验",
"TOOLBAR.ACTION.CUT" : "剪切",
"TOOLBAR.ACTION.COPY" : "复制",
"TOOLBAR.ACTION.PASTE" : "粘贴",
"TOOLBAR.ACTION.DELETE" : "删除",
"TOOLBAR.ACTION.UNDO" : "撤销",
"TOOLBAR.ACTION.REDO" : "重复",
"TOOLBAR.ACTION.ZOOMIN" : "放大",
"TOOLBAR.ACTION.ZOOMOUT" : "缩小",
"TOOLBAR.ACTION.ZOOMACTUAL" : "实际大小 ",
"TOOLBAR.ACTION.ZOOMFIT" : "适应屏幕",
"TOOLBAR.ACTION.MOVE" : "移动",
"TOOLBAR.ACTION.IMPORT" : "导入",
"TOOLBAR.ACTION.EXPORT" : "导出",
"TOOLBAR.ACTION.BENDPOINT.ADD" : "为选定的流程连线添加弯曲点",
"TOOLBAR.ACTION.BENDPOINT.REMOVE" : "为选定的流程连线删除弯曲点",
"TOOLBAR.ACTION.ALIGNHORIZONTAL" : "水平对齐",
"TOOLBAR.ACTION.ALIGNVERTICAL" : "垂直对齐",
"TOOLBAR.ACTION.SAMESIZE" : "Same size",
"TOOLBAR.ACTION.HELP": "Start the guided tour",
"TOOLBAR.ACTION.FEEDBACK": "Provide feedback",
"KICKSTART.PROCESS_TOOLBAR.ACTION.SAVE" : "保存",
"KICKSTART.PROCESS_TOOLBAR.ACTION.VALIDATE": "校验模型",
"KICKSTART.PROCESS_TOOLBAR.ACTION.HELP": "预览",
"KICKSTART.PROCESS_TOOLBAR.ACTION.FEEDBACK": "反馈",
"FORM_TOOLBAR.ACTION.SAVE" : "保存",
"FORM_TOOLBAR.ACTION.VALIDATE": "校验模型",
"FORM_TOOLBAR.ACTION.HELP": "预览",
"FORM_TOOLBAR.ACTION.FEEDBACK": "反馈",
"APP_DEFINITION_TOOLBAR.ACTION.SAVE" : "保存",
"APP_DEFINITION_TOOLBAR.ACTION.VALIDATE" : "校验模型",
"APP_DEFINITION_TOOLBAR.ACTION.HELP" : "预览",
"APP_DEFINITION_TOOLBAR.ACTION.FEEDBACK" : "反馈",
"BUTTON.ACTION.DELETE.TOOLTIP": "从模型中删除元素",
"BUTTON.ACTION.MORPH.TOOLTIP": "更改元素类型",
"ELEMENT.AUTHOR" : "作者",
"ELEMENT.DATE_CREATED" : "创建日期",
"ELEMENT.SELECTED_EMPTY_TITLE" : "(输入名称)",
"PROPERTY.REMOVED" : "清除",
"PROPERTY.EMPTY" : "",
"PROPERTY.PROPERTY.EDIT.TITLE" : "修改 \"{{title}}\"",
"PROPERTY.FEEDBACK.TITLE" : "请填写您的反馈意见",
"PROPERTY.ASSIGNMENT.TITLE" : "指派",
"PROPERTY.ASSIGNMENT.TYPE" : "类型",
"PROPERTY.ASSIGNMENT.TYPE.IDENTITYSTORE" : "Identity store",
"PROPERTY.ASSIGNMENT.TYPE.STATIC" : "静态值",
"PROPERTY.ASSIGNMENT.ASSIGNEE" : "代理人",
"PROPERTY.ASSIGNMENT.MATCHING" : "使用上下方向键选择并按回车键确认或使用鼠标",
"PROPERTY.ASSIGNMENT.ASSIGNEE_PLACEHOLDER" : "请输入代理人",
"PROPERTY.ASSIGNMENT.EMPTY" : "无代理人",
"PROPERTY.ASSIGNMENT.ASSIGNEE_DISPLAY" : "代理人 {{assignee}}",
"PROPERTY.ASSIGNMENT.CANDIDATE_USERS_DISPLAY" : "{{length}}候选人",
"PROPERTY.ASSIGNMENT.CANDIDATE_USERS" : "候选人",
"PROPERTY.ASSIGNMENT.CANDIDATE_GROUPS_DISPLAY" :  "{{length}}候选组",
"PROPERTY.ASSIGNMENT.CANDIDATE_GROUPS" :  "候选组",
"PROPERTY.ASSIGNMENT.USER_IDM_DISPLAY": "用户{{firstName}} {{lastName}}",
"PROPERTY.ASSIGNMENT.USER_IDM_EMAIL_DISPLAY": "用户{{email}}",
"PROPERTY.ASSIGNMENT.IDM_EMPTY" : "发起人",
"PROPERTY.ASSIGNMENT.IDM.TYPE" : "任务",
"PROPERTY.ASSIGNMENT.IDM.NO_CANDIDATE_USERS" : "没有选择候选人...",
"PROPERTY.ASSIGNMENT.IDM.NO_CANDIDATE_GROUPS" : "没有选择候选组...",
"PROPERTY.ASSIGNMENT.IDM.DROPDOWN.INITIATOR" : "分派给发起人",
"PROPERTY.ASSIGNMENT.IDM.DROPDOWN.USER" : "分派给一个用户",
"PROPERTY.ASSIGNMENT.IDM.DROPDOWN.USERS" : "候选人s",
"PROPERTY.ASSIGNMENT.IDM.DROPDOWN.GROUPS" : "候选组",
"PROPERTY.ASSIGNMENT.EMAIL.HELP" : "键入一个电子邮件地址,然后按回车键继续 ",
"PROPERTY.EXECUTIONLISTENERS.DISPLAY" : "{{length}}执行监听",
"PROPERTY.EXECUTIONLISTENERS.EMPTY" : "没有配置执行监听",
"PROPERTY.EXECUTIONLISTENERS.EVENT" : "事件",
"PROPERTY.EXECUTIONLISTENERS.CLASS" : "类",
"PROPERTY.EXECUTIONLISTENERS.CLASS.PLACEHOLDER" : "输入类名",
"PROPERTY.EXECUTIONLISTENERS.EXPRESSION" : "表达式",
"PROPERTY.EXECUTIONLISTENERS.EXPRESSION.PLACEHOLDER" : "输入表达式",
"PROPERTY.EXECUTIONLISTENERS.DELEGATEEXPRESSION" : "委托表达式",
"PROPERTY.EXECUTIONLISTENERS.DELEGATEEXPRESSION.PLACEHOLDER" : "输入委托表达式",
"PROPERTY.EXECUTIONLISTENERS.UNSELECTED" : "没有配置执行监听",
"PROPERTY.EXECUTIONLISTENERS.FIELDS.NAME" : "名称",
"PROPERTY.EXECUTIONLISTENERS.FIELDS.NAME.PLACEHOLDER" : "输入名称",
"PROPERTY.EXECUTIONLISTENERS.FIELDS.EXPRESSION" : "表达式",
"PROPERTY.EXECUTIONLISTENERS.FIELDS.EXPRESSION.PLACEHOLDER" : "输入表达式",
"PROPERTY.EXECUTIONLISTENERS.FIELDS.STRINGVALUE" : "字符串",
"PROPERTY.EXECUTIONLISTENERS.FIELDS.STRINGVALUE.PLACEHOLDER" : "输入字符串",
"PROPERTY.EXECUTIONLISTENERS.FIELDS.STRING" : "字符串",
"PROPERTY.EXECUTIONLISTENERS.FIELDS.STRING.PLACEHOLDER" : "输入字符串",
"PROPERTY.EXECUTIONLISTENERS.FIELDS.IMPLEMENTATION" : "实现类",
"PROPERTY.EXECUTIONLISTENERS.FIELDS.EMPTY" : "没有选择字段",
"PROPERTY.FIELDS" : "{{length}}字段",
"PROPERTY.FIELDS.EMPTY" : "没有选择字段",
"PROPERTY.FIELDS.NAME" : "名称",
"PROPERTY.FIELDS.NAME.PLACEHOLDER" : "输入名称",
"PROPERTY.FIELDS.EXPRESSION" : "表达式",
"PROPERTY.FIELDS.EXPRESSION.PLACEHOLDER" : "输入表达式",
"PROPERTY.FIELDS.STRINGVALUE" : "字符串",
"PROPERTY.FIELDS.STRINGVALUE.PLACEHOLDER" : "输入字符串",
"PROPERTY.FIELDS.STRING" : "字符串",
"PROPERTY.FIELDS.STRING.PLACEHOLDER" : "输入字符串",
"PROPERTY.FIELDS.IMPLEMENTATION" : "实现类",
"PROPERTY.FIELDS.UNSELECTED" : "没有选择字段",
"PROPERTY.FORMPROPERTIES.VALUE" : "{{length}}表单属性",
"PROPERTY.FORMPROPERTIES.EMPTY" : "没有配置表单",
"PROPERTY.FORMPROPERTIES.ID" : "活动编号",
"PROPERTY.FORMPROPERTIES.ID.PLACEHOLDER" : "输入活动编号",
"PROPERTY.FORMPROPERTIES.NAME" : "名称",
"PROPERTY.FORMPROPERTIES.NAME.PLACEHOLDER" : "输入名称",
"PROPERTY.FORMPROPERTIES.TYPE" : "类型",
"PROPERTY.FORMPROPERTIES.DATEPATTERN" : "时间选择框",
"PROPERTY.FORMPROPERTIES.DATEPATTERN.PLACEHOLDER" : "输入日期",
"PROPERTY.FORMPROPERTIES.VALUES" : "值",
"PROPERTY.FORMPROPERTIES.EXPRESSION" : "表达式",
"PROPERTY.FORMPROPERTIES.EXPRESSION.PLACEHOLDER" : "输入表达式",
"PROPERTY.FORMPROPERTIES.VARIABLE" : "变量",
"PROPERTY.FORMPROPERTIES.VARIABLE.PLACEHOLDER" : "输入变量",
"PROPERTY.FORMPROPERTIES.REQUIRED" : "必输",
"PROPERTY.FORMPROPERTIES.READABLE" : "可读",
"PROPERTY.FORMPROPERTIES.WRITABLE" : "可写",
"PROPERTY.INPARAMETERS.VALUE" : "{{length}}输入参数",
"PROPERTY.INPARAMETERS.EMPTY" : "没有配置输入参数",
"PROPERTY.OUTPARAMETERS.VALUE" : "{{length}}返回参数",
"PROPERTY.OUTPARAMETERS.EMPTY" : "没有配置返回参数",
"PROPERTY.PARAMETER.SOURCE" : "源",
"PROPERTY.PARAMETER.SOURCE.PLACEHOLDER" : "输入源",
"PROPERTY.PARAMETER.SOURCEEXPRESSION" : "源表达式",
"PROPERTY.PARAMETER.SOURCEEXPRESSION.PLACEHOLDER" : "输入源表达式",
"PROPERTY.PARAMETER.TARGET" : "目标",
"PROPERTY.PARAMETER.TARGET.PLACEHOLDER" : "输入目标",
"PROPERTY.PARAMETER.EMPTY" : "没有选择参数",
"PROPERTY.SUBPROCESSREFERENCE.EMPTY" : "没有引用子流程",
"PROPERTY.SUBPROCESSREFERENCE.TITLE" : "引用错误的子流程",
"PROPERTY.SUBPROCESSREFERENCE.ERROR.SUBPROCESS" : "子流程加载错误.请稍后再试",
"PROPERTY.SUBPROCESSREFERENCE.FOLDER.ROOT" : "文件夹",
"PROPERTY.SUBPROCESSREFERENCE.FOLDER.LOADING" : "文件夹加载中...",
"PROPERTY.SUBPROCESSREFERENCE.FOLDER.EMPTY" : "文件夹未包含子文件夹",
"PROPERTY.SUBPROCESSREFERENCE.SUBPROCESS.LOADING" : "子流程加载中...",
"PROPERTY.SUBPROCESSREFERENCE.SUBPROCESS.EMPTY" : "文件夹包含子文件夹",
"PROPERTY.FORMREFERENCE.EMPTY" : "没有引用表单",
"PROPERTY.FORMREFERENCE.TITLE" : "表单引用",
"PROPERTY.FORMREFERENCE.ERROR.FORM" : "表单加载错误.请稍后再试!",
"PROPERTY.FORMREFERENCE.FOLDER.ROOT" : "文件夹",
"PROPERTY.FORMREFERENCE.FOLDER.LOADING" : "文件夹加载中...",
"PROPERTY.FORMREFERENCE.FOLDER.EMPTY" : "文件夹未包含子文件夹",
"PROPERTY.FORMREFERENCE.FORM.LOADING" : "表单加载中...",
"PROPERTY.FORMREFERENCE.FORM.EMPTY" : "文件夹包含子文件夹",
"PROPERTY.TASKLISTENERS.VALUE" : "{{length}}任务监听",
"PROPERTY.TASKLISTENERS.EMPTY" : "未配置任务监听",
"PROPERTY.TASKLISTENERS.EVENT" : "事件",
"PROPERTY.TASKLISTENERS.CLASS" : "类",
"PROPERTY.TASKLISTENERS.CLASS.PLACEHOLDER" : "输入类名",
"PROPERTY.TASKLISTENERS.EXPRESSION" : "表达式",
"PROPERTY.TASKLISTENERS.EXPRESSION.PLACEHOLDER" : "请输入表达式",
"PROPERTY.TASKLISTENERS.DELEGATEEXPRESSION" : "委托表达式",
"PROPERTY.TASKLISTENERS.DELEGATEEXPRESSION.PLACEHOLDER" : "请输入委托表达式",
"PROPERTY.TASKLISTENERS.UNSELECTED" : "没有选择任务监听",
"PROPERTY.TASKLISTENERS.FIELDS.NAME" : "名称",
"PROPERTY.TASKLISTENERS.FIELDS.NAME.PLACEHOLDER" : "请输入名称",
"PROPERTY.TASKLISTENERS.FIELDS.EXPRESSION" : "表达式",
"PROPERTY.TASKLISTENERS.FIELDS.EXPRESSION.PLACEHOLDER" : "请输入表达式",
"PROPERTY.TASKLISTENERS.FIELDS.STRINGVALUE" : "字符串",
"PROPERTY.TASKLISTENERS.FIELDS.STRINGVALUE.PLACEHOLDER" : "请输入字符串",
"PROPERTY.TASKLISTENERS.FIELDS.STRING" : "字符串",
"PROPERTY.TASKLISTENERS.FIELDS.STRING.PLACEHOLDER" : "请输入字符串",
"PROPERTY.TASKLISTENERS.FIELDS.IMPLEMENTATION" : "执行",
"PROPERTY.TASKLISTENERS.FIELDS.EMPTY" : "未选择字段",
"PROPERTY.EVENTLISTENERS.DISPLAY" : "{{length}}事件监听",
"PROPERTY.EVENTLISTENERS.EMPTY" : "未配置事件监听",
"PROPERTY.EVENTLISTENERS.EVENTS": "事件",
"PROPERTY.EVENTLISTENERS.RETHROW": "抛出事件?",
"PROPERTY.EVENTLISTENERS.CLASS" : "类",
"PROPERTY.EVENTLISTENERS.CLASS.PLACEHOLDER" : "输入类名",
"PROPERTY.EVENTLISTENERS.DELEGATEEXPRESSION" : "委托表达式",
"PROPERTY.EVENTLISTENERS.DELEGATEEXPRESSION.PLACEHOLDER" : "请输入委托表达式",
"PROPERTY.EVENTLISTENERS.ENTITYTYPE" : "类型",
"PROPERTY.EVENTLISTENERS.ENTITYTYPE.PLACEHOLDER" : "请输入类型",
"PROPERTY.EVENTLISTENERS.RETHROWTYPE": "抛出事件类型",
"PROPERTY.EVENTLISTENERS.ERRORCODE" : "错误代码",
"PROPERTY.EVENTLISTENERS.ERRORCODE.PLACEHOLDER" : "请输入错误代码",
"PROPERTY.EVENTLISTENERS.MESSAGENAME" : "消息名称",
"PROPERTY.EVENTLISTENERS.MESSAGENAME.PLACEHOLDER" : "请输入消息名称",
"PROPERTY.EVENTLISTENERS.SIGNALNAME" : "信号名称",
"PROPERTY.EVENTLISTENERS.SIGNALNAME.PLACEHOLDER" : "请输入信号名称",
"PROPERTY.EVENTLISTENERS.UNSELECTED" : "没有选择事件监听",
"PROPERTY.SIGNALDEFINITIONS.DISPLAY" : "{{length}}信号定义",
"PROPERTY.SIGNALDEFINITIONS.EMPTY" : "没有配置信号定义",
"PROPERTY.SIGNALDEFINITIONS.SCOPE-GLOBAL": "全局",
"PROPERTY.SIGNALDEFINITIONS.SCOPE-PROCESSINSTANCE": "流程初始化",
"PROPERTY.SIGNALDEFINITIONS.ID" : "编号",
"PROPERTY.SIGNALDEFINITIONS.NAME" : "名称",
"PROPERTY.SIGNALDEFINITIONS.SCOPE" : "Scope",
"PROPERTY.MESSAGEDEFINITIONS.DISPLAY" : "{{length}}消息定义",
"PROPERTY.MESSAGEDEFINITIONS.EMPTY" : "没有配置消息定义",
"PROPERTY.MESSAGEDEFINITIONS.ID" : "编号",
"PROPERTY.MESSAGEDEFINITIONS.NAME" : "名称",
"PROPERTY.SEQUENCEFLOW.ORDER.EMPTY" : "没有确定顺序流排序",
"PROPERTY.SEQUENCEFLOW.ORDER.NOT.EMPTY" : "顺序流排序",
"PROPERTY.SEQUENCEFLOW.ORDER.NO.OUTGOING.SEQUENCEFLOW.FOUND" : "没有输出顺序流.",
"PROPERTY.SEQUENCEFLOW.ORDER.DESCRIPTION" : "不能设置已经被使用的编号:",
"PROPERTY.SEQUENCEFLOW.ORDER.SEQUENCEFLOW.VALUE" : "顺序流{{targetType}} {{targetTitle}}",
"PROPERTY.SEQUENCEFLOW.CONDITION.TITLE" : "条件",
"PROPERTY.SEQUENCEFLOW.CONDITION.TYPE.TITLE" : "条件类型",
"PROPERTY.SEQUENCEFLOW.CONDITION.TYPE.VARIABLE" : "选择的变量",
"PROPERTY.SEQUENCEFLOW.CONDITION.TYPE.STATIC" : "静态值",
"PROPERTY.SEQUENCEFLOW.CONDITION.STATIC" : "条件表达式",
"PROPERTY.SEQUENCEFLOW.CONDITION.STATIC_PLACEHOLDER" : "输入表达式值",
"PROPERTY.SEQUENCEFLOW.CONDITION.VARIABLE.TYPE" : "变量类型",
"PROPERTY.SEQUENCEFLOW.CONDITION.VARIABLE.NO-CONDITION" : "没有条件",
"PROPERTY.SEQUENCEFLOW.CONDITION.VARIABLE.FORM-FIELD" : "表单字段",
"PROPERTY.SEQUENCEFLOW.CONDITION.VARIABLE.FORM-OUTCOME" : "表单输出",
"PROPERTY.SEQUENCEFLOW.CONDITION.VARIABLE.SELECT-FIELD" : "选择的字段",
"PROPERTY.SEQUENCEFLOW.CONDITION.VARIABLE.NO-FIELDS-AVAILABLE" : "没有字段变量",
"PROPERTY.SEQUENCEFLOW.CONDITION.VARIABLE.SELECT-FORM" : "选择表单",
"PROPERTY.SEQUENCEFLOW.CONDITION.VARIABLE.NO-FORMS-AVAILABLE" : "没有表单变量",
"PROPERTY.SEQUENCEFLOW.CONDITION.VARIABLE.SELECT-OPERATOR" : "选择操作",
"PROPERTY.SEQUENCEFLOW.CONDITION.VARIABLE.EQUALS" : "等于",
"PROPERTY.SEQUENCEFLOW.CONDITION.VARIABLE.NOTEQUALS" : "不等于",
"PROPERTY.SEQUENCEFLOW.CONDITION.VARIABLE.LESSTHAN" : "小于",
"PROPERTY.SEQUENCEFLOW.CONDITION.VARIABLE.GREATERTHAN" : "大于",
"PROPERTY.SEQUENCEFLOW.CONDITION.VARIABLE.SELECT-OUTCOME" : "选择输出",
"PROPERTY.SEQUENCEFLOW.CONDITION.VARIABLE.NO-OUTCOMES-AVAILABLE" : "没有输出变量",
"PROPERTY.SEQUENCEFLOW.CONDITION.NO-CONDITION-DISPLAY" : "没有条件",
"MODEL.SAVE.TITLE" : "保存模型",
"MODEL.NAME" : "名称",
"MODEL.DESCRIPTION" : "描述",
"MODEL.SAVE.NEWVERSION" : "保存为新版本? 这样你可以随时回到以前的版本",
"MODEL.SAVE.COMMENT" : "注释",
"MODEL.SAVE.SAVING" : "保存",
"MODEL.LASTMODIFIEDDATE" : "上次保存时间",
"MODEL.SAVE.ERROR": "未知错误:保存失败!",
"EVENT_TYPE.ACTIVITY.COMPENSATE.TOOLTIP": "一个活动被另外一个活动替代执行",
"EVENT_TYPE.ACTIVITY.COMPLETED.TOOLTIP": "一个活动被成功的执行",
"EVENT_TYPE.ACTIVITY.ERROR.RECEIVED.TOOLTIP": "在收到活动错误之前,活动已收到错误事件",
"EVENT_TYPE.MEMBERSHIP.CREATED.TOOLTIP": "一个唯一的成员被创建",
"EVENT_TYPE.MEMBERSHIP.DELETED.TOOLTIP": "一个唯一的成员被删除",
"EVENT_TYPE.MEMBERSHIPS.DELETED.TOOLTIP": "所有成员都被删除.可能是由于没有事件被分配",
"EVENT_TYPE.TASK.ASSIGNED.TOOLTIP": "在ENTITY_UPDATED事件抛出时,任务已经被分配",
"EVENT_TYPE.TASK.COMPLETED.TOOLTIP": "在任务实体删除前任务已经被完成",
"EVENT_TYPE.UNCAUGHT.BPMNERROR.TOOLTIP": "一个BPMN被抛出,但没有捕获",
"EVENT_TYPE.VARIABLE.CREATED.TOOLTIP": "一个变量被创建",
"EVENT_TYPE.VARIABLE.DELETED.TOOLTIP": "一个变量被删除",
"EVENT_TYPE.VARIABLE.UPDATED.TOOLTIP": "一个变量被更新"
}

主启动类过滤掉security拦截:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication(exclude = {
org.activiti.spring.boot.SecurityAutoConfiguration.class,
org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class}
)
public class TestSping {
public static void main(String[] args) {
SpringApplication.run(TestSping.class, args);
}
}

配置MVC资源及消息相关:

import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.web.filter.FormContentFilter;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
@Configuration
@EnableWebMvc
class MvcConfig implements WebMvcConfigurer {
@Override
public void configureMessageConverters(List<HttpMessageConverter> converters) {
//定义一个convert转换消息的对象
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
//添加fastjson的配置信息
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setCharset(StandardCharsets.UTF_8);
fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
//处理中文乱码问题
List fastMediaTypes = new ArrayList();
fastMediaTypes.add(MediaType.APPLICATION_JSON);
//在convert中添加配置信息.
fastConverter.setSupportedMediaTypes(fastMediaTypes);
fastConverter.setFastJsonConfig(fastJsonConfig);
//将convert添加到converters中
converters.add(fastConverter);
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
registry.addResourceHandler("/templates/**").addResourceLocations("classpath:/templates/");
}
/**
* 接收PUT、DELETE等请求参数
* @return
*/
@Bean
public FormContentFilter formContentFilter() {
return new FormContentFilter();
}
}

数据库配置类:

import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
@Data
public class ActivitiDataSourceProperties {
@Value("${spring.datasource.url}")
private String url;
@Value("${spring.datasource.username}")
private String username;
@Value("${spring.datasource.password}")
private String password;
@Value("${spring.datasource.driver-class-name}")
private String driverClassName;
}

activiti数据源配置:

import org.activiti.engine.ProcessEngineConfiguration;
import org.activiti.spring.SpringProcessEngineConfiguration;
import org.activiti.spring.boot.AbstractProcessEngineAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.transaction.PlatformTransactionManager;
import javax.annotation.Resource;
import javax.sql.DataSource;
@Configuration
public class ActivitiDataSourceConfig extends AbstractProcessEngineAutoConfiguration {
@Resource
private ActivitiDataSourceProperties activitiDataSourceProperties;
@Bean
@Primary
public DataSource activitiDataSource() {
DriverManagerDataSource source = new DriverManagerDataSource();
source.setUrl(activitiDataSourceProperties.getUrl());
source.setDriverClassName(activitiDataSourceProperties.getDriverClassName());
source.setPassword(activitiDataSourceProperties.getPassword());
source.setUsername(activitiDataSourceProperties.getUsername());
return source;
}
@Bean
public PlatformTransactionManager transactionManager() {
return new DataSourceTransactionManager(activitiDataSource());
}
@Bean
public SpringProcessEngineConfiguration springProcessEngineConfiguration() {
SpringProcessEngineConfiguration configuration = new SpringProcessEngineConfiguration();
configuration.setDataSource(activitiDataSource());
configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
//configuration.setJobExecutorActivate(true);
configuration.setTransactionManager(transactionManager());
return configuration;
}
}

 汉化类:

@RestController
@RequestMapping("/activiti-explorer/service")
public class StencilsetRestResource {
@RequestMapping(value="/editor/stencilset", method = RequestMethod.GET, produces = "application/json;charset=utf-8")
public @ResponseBody String getStencilset() {
InputStream stencilsetStream = this.getClass().getClassLoader().getResourceAsStream("stencilset.json");
//System.out.println(this.getClass().getClassLoader().getResource("stencilset.json"));
//InputStream resourceAsStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("stencilset.json");
try {
return IOUtils.toString(stencilsetStream, "utf-8");
} catch (Exception e) {
throw new ActivitiException("Error while loading stencil set", e);
}
}
}

模型编辑json支持类:

@RestController
@RequestMapping("/activiti-explorer/service")
public class ModelEditorJsonRestResource implements ModelDataJsonConstants {
protected static final Logger LOGGER = LoggerFactory.getLogger(ModelEditorJsonRestResource.class);
@Autowired
private RepositoryService repositoryService;
@Autowired
private ObjectMapper objectMapper;
@RequestMapping(value="/model/{modelId}/json", method = RequestMethod.GET, produces = "application/json")
public ObjectNode getEditorJson(@PathVariable String modelId) {
ObjectNode modelNode = null;
Model model = repositoryService.getModel(modelId);
if (model != null) {
try {
if (StringUtils.isNotEmpty(model.getMetaInfo())) {
modelNode = (ObjectNode) objectMapper.readTree(model.getMetaInfo());
} else {
modelNode = objectMapper.createObjectNode();
modelNode.put(MODEL_NAME, model.getName());
}
modelNode.put(MODEL_ID, model.getId());
ObjectNode editorJsonNode = (ObjectNode) objectMapper.readTree(
new String(repositoryService.getModelEditorSource(model.getId()), "utf-8"));
modelNode.put("model", editorJsonNode);
} catch (Exception e) {
LOGGER.error("Error creating model JSON", e);
throw new ActivitiException("Error creating model JSON", e);
}
}
return modelNode;
}
}
import java.util.Date;
import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.JavaDelegate;
public class AutomatedDataDelegate implements JavaDelegate {
@Override
public void execute(DelegateExecution execution) {
Date now = new Date();
execution.setVariable("autoWelcomeTime", now);
System.out.println("Faux call to backend for ["
+ execution.getVariable("fullName") + "]");
}
}

 

spring boot 2.1 集成activiti 6.0.0和activiti-modeler 5.23.0可视化编辑器(随记)插图(3)

注意如上的@RequestMapping(“/activiti-explorer/service”) 路径与如下文件配置一致:

spring boot 2.1 集成activiti 6.0.0和activiti-modeler 5.23.0可视化编辑器(随记)插图(4) 

写个controller:

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import org.activiti.editor.constants.ModelDataJsonConstants;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.repository.Model;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
@Controller
@RequestMapping("/modeler")
public class ModelerController {
@Resource
private RepositoryService repositoryService;
@Resource
private ObjectMapper objectMapper;
/**
* 添加模型
*/
@GetMapping("/save")
public void save(HttpServletResponse response) throws IOException {
//创建模型
Model modelData = repositoryService.newModel();
ObjectNode modelObjectNode = objectMapper.createObjectNode();
//模型名称
modelObjectNode.put(ModelDataJsonConstants.MODEL_NAME, "请假");
//模型版本
modelObjectNode.put(ModelDataJsonConstants.MODEL_REVISION, 1);
//模型详情
modelObjectNode.put(ModelDataJsonConstants.MODEL_DESCRIPTION, "请假详情");
//以字符串信息存储进信息属性中
modelData.setMetaInfo(modelObjectNode.toString());
//模型名称
modelData.setName("请假");
//模型key
modelData.setKey("leave");
//完善ModelEditorSource,这里固定的
ObjectNode editorNode = objectMapper.createObjectNode();
editorNode.put("id", "canvas");
editorNode.put("resourceId", "canvas");
ObjectNode stencilSetNode = objectMapper.createObjectNode();
stencilSetNode.put("namespace", "http://b3mn.org/stencilset/bpmn2.0#");
editorNode.set("stencilset", stencilSetNode);
//添加模型
repositoryService.saveModel(modelData);
repositoryService.addModelEditorSource(modelData.getId(), editorNode.toString().getBytes(StandardCharsets.UTF_8));
response.sendRedirect("/static/modeler.html?modelId=" + modelData.getId());
}
}

 启动项目后访问:http://localhost:8081/modeler 就可以了。

本站无任何商业行为
个人在线分享-虚灵IT资料分享 » spring boot 2.1 集成activiti 6.0.0和activiti-modeler 5.23.0可视化编辑器(随记)
E-->