文档首页/ 华为云Astro轻应用/ API参考/ API/ 工作流/ 创建工作流 - CreateBPM
更新时间:2025-10-11 GMT+08:00

创建工作流 - CreateBPM

功能介绍

创建一个工作流。

URI

POST 华为云Astro轻应用域名/u-route/baas/bp/v2.0/metadata/definitions

请求参数

表1 请求参数

参数

是否必选

参数类型

描述

name

是

String

参数解释:

工作流的名称。

约束限制:

不涉及。

取值范围:

必须以英文字母开头,只能由英文字母,数字和单下划线组成,没有连续的下划线,不能以单下划线结尾,且长度不能超过64个字符。

默认取值:

不涉及。

label

是

String

参数解释:

工作流的标签。

约束限制:

不涉及。

取值范围:

1~80个字符。

默认取值:

不涉及。

description

否

String

参数解释:

工作流的描述信息。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

version

否

String

参数解释:

工作流的版本号。工作流保存时 ,可以保存为不同的版本,在启用时,可以选择不同的版本进行启用,但是同时只能有一个版本被启用。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

instanceLabel

否

String

参数解释:

实例标签,可以内嵌系统变量。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

laneSet

否

object

参数解释:

泳道信息。一条泳道代表工作流的流程处理中的一种用户角色。工作流中每个泳道都和队列一一对应。配置了工作队列后,处于不同泳道的图元,分别归属不同的工作队列中的用户去处理。工作队列是在业务场景中,用来记录一类具有相同权限和任务对象的成员集。

约束限制:

不涉及。

config

否

object

参数解释:

工作流中的基本配置信息,用于设置隐私(流程或任务是否仅限当前所有者可查看)和流程是否允许撤销,以及通过哪个工作流节点之后不允许撤销。

约束限制:

不涉及。

startEvents

否

Array of object

参数解释:

起始图元的定义。起始图元的属性包含其下一个连接图元的名称。起始图元是工作流的开始节点,属性中的type默认为“Start”。

约束限制:

不涉及。

dataMappers

否

Array of object

参数解释:

数据映射定义。数据映射图元主要用来进行变量、字段、属性和常量间的赋值。例如可,以将某个变量或常量的值,通过该图元赋值给另一个变量。当流程到达“数据映射”任务时,进行赋值操作,完成后继续执行后续路线。

约束限制:

不涉及。

userTasks

否

Array of object

参数解释:

用户任务定义。用户任务用来表示业务流程中由用户参与完成的工作。当引擎处理到该节点时,给指定的用户(参与者)或者一组用户(如某泳道的工作队列)创建待处理的任务项,等待用户的处理。可以配置用户任务的审批信息,界面渲染信息,接收人信息,前置后置动作,数据映射等。

约束限制:

不涉及。

serviceTasks

否

Array of object

参数解释:

自动任务定义,是脚本图元、服务编排图元、记录创建图元、记录查询图元、记录更新图元、记录删除图元和邮件图元的配置信息的集合。例如:

  • 脚本图元,可以配置指定脚本的出入参,在工作流中执行指定的脚本。
  • 服务编排图元可以在工作流中执行指定的服务编排。
  • 记录增删改查图元可以在工作流中对指定对象进行增删改查。

约束限制:

不涉及。

businessRuleTasks

否

Array of object

参数解释:

决策表任务定义。该图元根据决策表的配置生成一定的规则,后续根据规则的输出连接网关路由到不同的其他图元节点,当流程到达“规则”任务时,系统根据该规则路由到不同的路线。使用该图元时,需要选择具体使用的决策表。

约束限制:

不涉及。

callActivities

否

Array of object

参数解释:

活动调用定义。在工作流中,可以嵌套其他工作流。当流程到达“调用活动”任务时,系统自动执行该活动(其实是调用的另一个工作流),执行完成后继续执行后续路线。这里可以配置其他工作流的属性信息,如配置选中工作流的出入参。

约束限制:

不涉及。

subProcesses

否

Array of object

参数解释:

内嵌子流程定义。调用活动和子流程图元都是工作流的内嵌子流程,区别是:

  • 调用活动把子流程当做一个黑盒,通过参数传递进行调用。
  • 内嵌子流程直接在当前流程中规划出一个子流程,子流程可共享父流程的变量,可用于流程步骤的划分、封装和复用。

约束限制:

不涉及。

sendEvents

否

Array of object

参数解释:

抛出信号事件定义。当工作流执行到“抛出信号”事件时,引擎向系统内部发出一个事件,事件发出后流程沿后续路线继续执行。抛出的信号,可以被“捕获信号”订阅处理。使用该图元时,需要配置抛出的具体事件,并需要在“输入参数”配置事件参数。

约束限制:

不涉及。

catchEvents

否

Array of object

参数解释:

捕获事件定义,包括捕获时间事件图元和捕获信号事件图元的配置信息。

  • 当工作流执行到“捕获时间”事件时中断在这里,引擎会创建一个定时器,当定时器触发后事件结束,流程沿后续路线继续执行。使用该图元时,需要配置基准时间、偏移时间和偏移单位。
  • 当工作流执行到“捕获信号”事件时中断在这里,等待抛出信号事件或者API发出匹配的信号后结束,流程沿后续路线继续执行。使用该图元时,需要配置需要捕获的具体事件、捕获条件以及输出参数。

约束限制:

不涉及。

exclusiveGateways

否

Array of object

参数解释:

排他网关定义。排他网关用来在流程中,实现一组分支的唯一决策。系统将按照“条件顺序”评估流出网关的分支,流程会执行第一个连线条件被评估为true(当多个条件为true时,将执行第一个决策)的分支,并且不再继续评估下面的分支。如果所有分支条件决策都为false且该网关定义了一个默认的连线,那么该默认分支将被执行。如果没有可到达的分支,抛出异常,流程被中断。

约束限制:

不涉及。

inclusiveGateways

否

Array of object

参数解释:

包容网关定义。包容网关是一类特殊的并行网关,在并行网关的基础上每条连线都可以配置一个条件,符合条件的连线分支都将被并行执行。如果都不符合,若配置了默认分支,将会执行默认分支。每个包容网关都应该成对出现,从包容发散网关出发最终连接到汇聚网关。

约束限制:

不涉及。

parallelGateways

否

Array of object

参数解释:

并行网关定义。并行网关用于无条件的合并分支,该类网关对连线条件是忽略的。允许流程多进一出,引出的多个分支被工作流引擎并发执行。 并行网关是成对出现的,一对网关中可以有多个并行分支的。

约束限制:

不涉及。

eventGateways

否

Array of object

参数解释:

事件网关定义。通常网关根据连线条件来决定后续路径,这要求条件信息必须存在于流程自身之中。但是,当需要选择的后续路径的条件不是来自该流程时,可以使用事件网关。事件网关只有分支行为,允许从多个候选分支中选择事件最先到达的分支(如时间事件、消息事件),并取消其他分支。

约束限制:

不涉及。

slas

否

Array of object

参数解释:

SLA定义。SLA是为用户任务设置定时器,时间逾期可增加紧急程度并执行相应动作。

约束限制:

不涉及。

constants

否

Array of object

参数解释:

常量定义,即全局上下文中配置的常量信息。

约束限制:

不涉及。

variables

否

Array of object

参数解释:

变量定义,即全局上下文中配置的变量信息。

约束限制:

不涉及。

endEvents

否

Array of object

参数解释:

结束事件定义,表示工作流或分支的自然结束。当存在多个执行分支路线时,最末尾一个分支自然结束后,工作流实例结束。

约束限制:

不涉及。

响应参数

表2 响应参数

参数

参数类型

描述

resCode

String

参数解释:

返回码。

取值范围:

如果返回“0”代表请求成功,其他错误码说明请参考错误码。

resMsg

String

参数解释:

返回消息。

取值范围:

成功返回“成功”,其他情况会返回具体的错误信息。

result

Object

参数解释:

成功会返回工作流的一个ID值,失败会返回错误和警告信息。

请求示例

创建工作流实例。
POST https://华为云Astro轻应用域名/u-route/baas/bp/v2.0/metadata/definitions 

{
    "config": {
        "cancelable": false,
        "noCancelAfterElem": ""
    },
    "dataMappers": [
        {
            "assignmentItems": [
                {
                    "assignTo": "dateList",
                    "name": "",
                    "operator": "add",
                    "value": "2019-03-04",
                    "valueType": ""
                },
                {
                    "assignTo": "dateList",
                    "name": "",
                    "operator": "add",
                    "value": "2020-01-02",
                    "valueType": ""
                }
            ],
            "connector": "userTask",
            "connectorPoint": "{\"fromPort\":\"R1\",\"toPort\":\"L1\",\"points\":[\"619 125\",\"643 125\",\"662.5 125\",\"662.5 100\",\"682 100\",\"706 100\"]}",
            "description": "",
            "label": "Data Mapper",
            "locationX": 575,
            "locationY": 125,
            "name": "dataMapper",
            "connectors": []
        }
    ],
    "description": "",
    "label": "SimpleBP",
    "laneSet": {
        "label": "",
        "lanes": [
            {
                "elements": [
                    "userTask",
                    "userTask1",
                    "dataMapper",
                    "start"
                ],
                "height": 201.35220031738282,
                "label": "lane",
                "name": "lane",
                "role": "LoanRequest.Applicant",
                "width": 1080
            }
        ],
        "name": ""
    },
    "name": "SimpleBP",
    "slas": [
        {
            "active": true,
            "criteria": "",
            "deadlineDays": 0,
            "deadlineHours": 0,
            "deadlineIncreaseUrgencyBy": 2,
            "deadlineMinutes": 0,
            "deadlineOnlyBusinessDays": false,
            "goalActions": [
                {
                    "action": "",
                    "criteria": "{!IsMatched} && {!Owner}",
                    "name": "sla-act",
                    "type": "Notify Manager"
                }
            ],
            "goalDays": 0,
            "goalHours": 0,
            "goalIncreaseUrgencyBy": 1,
            "goalMinutes": 0,
            "goalOnlyBusinessDays": false,
            "label": "userTask1_sla",
            "name": "userTask1_sla",
            "startWhen": "",
            "variable": "",
            "actions": []
        },
        {
            "active": true,
            "criteria": "",
            "deadlineDays": 0,
            "deadlineHours": 0,
            "deadlineIncreaseUrgencyBy": 2,
            "deadlineMinutes": 0,
            "deadlineOnlyBusinessDays": false,
            "goalActions": [
                {
                    "action": "NotifyBPManager",
                    "criteria": "",
                    "name": "sla-act1",
                    "type": "Notify Manager"
                }
            ],
            "goalDays": 1,
            "goalHours": 0,
            "goalIncreaseUrgencyBy": 1,
            "goalMinutes": 0,
            "goalOnlyBusinessDays": false,
            "label": "userTask_sla",
            "name": "userTask_sla",
            "startWhen": "",
            "variable": "",
            "actions": []
        }
    ],
    "startEvents": [
        {
            "connector": "dataMapper",
            "connectorPoint": "{\"fromPort\":\"R1\",\"toPort\":\"L0\",\"points\":[\"151.5 100\",\"175.5 100\",\"341.25 100\",\"341.25 110.5\",\"507 110.5\",\"531 110.5\"]}",
            "label": "Start",
            "locationX": 125,
            "locationY": 100,
            "name": "start",
            "type": "Start",
            "startType": "",
            "renderType": "",
            "render": "",
            "document": "",
            "description": ""
        }
    ],
    "userTasks": [
        {
            "approvalType": "Single",
            "connector": "userTask1",
            "connectorPoint": "{\"fromPort\":\"R1\",\"toPort\":\"L1\",\"points\":[\"794 100\",\"818 100\",\"875 100\",\"875 100\",\"932 100\",\"956 100\"]}",
            "description": "wuli desc",
            "groupAsSingleParticipant": false,
            "inputAssignments": [
                {
                    "input": "$Task.Title",
                    "name": "",
                    "value": "{!$GlobalConstant.EmptyString}",
                    "valueType": ""
                }
            ],
            "label": "User Task",
            "locationX": 750,
            "locationY": 100,
            "name": "userTask",
            "participants": [
                {
                    "type": "user",
                    "value": "ecommerce6"
                }
            ],
            "preActions": [
                {
                    "action": "{!$GlobalConstant.EmptyString}",
                    "criteria": "",
                    "name": "action",
                    "type": "Set Status"
                }
            ],
            "render": "SimpleBP$Form1$form",
            "renderType": "Form",
            "routeType": "Name and Expressions",
            "router": {
                "defaultRouteTo": "",
                "defaultRouteType": "",
                "name": ""
            },
            "title": "wu li tu cao",
            "usingSLA": "userTask_sla",
            "routeTo": "",
            "faultConnector": "",
            "boundaryEvents": [],
            "outputAssignments": [],
            "document": "",
            "priority": 3
        },
        {
            "approvalType": "Single",
            "groupAsSingleParticipant": false,
            "label": "User Task",
            "locationX": 1000,
            "locationY": 100,
            "name": "userTask1",
            "priority": 3,
            "render": "SimpleBP$ut1$form",
            "renderType": "Form",
            "routeType": "Last Assignee In Lane",
            "router": {
                "defaultRouteTo": "",
                "defaultRouteType": "",
                "name": ""
            },
            "title": "T2",
            "routeTo": "",
            "connector": "",
            "faultConnector": "",
            "boundaryEvents": [],
            "inputAssignments": [],
            "outputAssignments": [],
            "document": "",
            "description": ""
        }
    ],
    "variables": [
        {
            "currencyFactor": 0,
            "dataType": "checkBox",
            "defaultValue": "{!$GlobalConstant.True}",
            "defaultValueType": "",
            "description": "",
            "extNS": "",
            "extType": "",
            "isCollection": false,
            "isInput": false,
            "isNested": false,
            "isOutput": false,
            "name": "IsMatched"
        },
        {
            "currencyFactor": 0,
            "dataType": "text",
            "defaultValue": "Hello",
            "defaultValueType": "",
            "description": "",
            "extNS": "",
            "extType": "",
            "isCollection": false,
            "isInput": false,
            "isNested": false,
            "isOutput": false,
            "name": "Owner"
        },
        {
            "currencyFactor": 0,
            "dataType": "date",
            "defaultValue": "",
            "defaultValueType": "",
            "description": "",
            "extNS": "",
            "extType": "",
            "isCollection": false,
            "isInput": false,
            "isNested": false,
            "isOutput": false,
            "name": "dateVar"
        },
        {
            "currencyFactor": 0,
            "dataType": "date",
            "defaultValue": "",
            "defaultValueType": "",
            "description": "",
            "extNS": "",
            "extType": "",
            "isCollection": true,
            "isInput": false,
            "isNested": false,
            "isOutput": false,
            "name": "dateList"
        },
        {
            "currencyFactor": 0,
            "dataType": "extStruct",
            "defaultValue": "",
            "defaultValueType": "",
            "description": "",
            "extNS": "SimpleBP",
            "extType": "Form1Form",
            "isCollection": false,
            "isInput": false,
            "isNested": false,
            "isOutput": false,
            "name": "Form1Form"
        }
    ],
    "version": "1.0.1",
    
    "constants": [],
    "serviceTasks": [],
    "businessRuleTasks": [],
    "callActivities": [],
    "subProcesses": [],
    "endEvents": [],
    "sendEvents": [],
   
    "catchEvents": [],
    "exclusiveGateways": [],
    "parallelGateways": [],
    "eventGateways": [],
    
}

响应示例

{
    "resCode": "0",
    "resMsg": "成功",
    "result": {
        "errors": [],
        "id": "000y000000aM8XixTN0S",
        "warnings": []
    }
}

状态码

状态码请参见状态码。

错误码

错误码请参见错误码。