更改应用的流程管理的设置

aki发表于:2019年08月01日 10:13:23更新于:2021年08月09日 15:26:32

更改应用的流程管理的设置。

此API仅将应用的设置反映到测试环境中,如需反映到正式环境,需要执行将应用的设置反映到正式环境中API

URI

https://(子域名).cybozu.cn/k/v1/preview/app/status.json

来宾空间的应用:https://(子域名).cybozu.cn/k/guest/(空间的ID)/v1/preview/app/status.json

HTTP方法

PUT

必要的访问权限

应用的管理权限。

※从2020年4月版起可使用API令牌来执行此API。

请求参数

以下是请求参数列表。省略的参数其设置不会被更新。

参数名称要指定的值必须说明
app数值或字符串必须应用ID。
enable布尔值或字符串

指定流程管理是否启用。

  • true:启用流程管理

  • false:禁用流程管理

states对象
状态信息的对象。
states.(状态名称)对象
各状态的设置信息的对象。“(状态名称)”中指定更新前的状态名称。
  • 在“(状态名称)”中指定不存在的状态时,作为新增的状态添加。

    • 不可添加起始状态,如要更改起始状态,请更改原起始状态的名称。

  • 在“(状态名称)”中未指定已存在的状态时,该状态将被删除。


states.(状态名称).name字符串条件必须状态名称不得超过64个字符。
新增的状态此项必须指定,且要指定和“states.(状态名称)”的key名称一样的值。
states.(状态名称).index数值或字符串
条件必须

指定状态的顺序(从0开始按升序方式)。
指定“(状态名称)”时,必须指定。

states.(状态名称).assignee对象

相应状态下的执行者的对象。
states.(状态名称).assignee.type字符串条件必须

相应状态下的执行者的指定方法。

  • ONE : 从以下用户中选择执行者

  • ALL  : 以下所有用户

  • ANY : 以下用户中其中1人

指定了“assignee”时,此参数必须指定。
states.(状态名称).assignee.entities 数组 条件必须

相应状态下的执行者的信息在各entity中指定。
指定了“assignee”参数时,此参数必须指定。

states.(状态名称).assignee.entities[].entity对象条件必须相应状态下的执行者的用户信息的对象。
必须在“entities”里指定。
states.(状态名称).assignee.entities[].entity.type字符串条件必须

相应状态下的执行者的类型。

  • USER: 用户

  • GROUP: 组

  • ORGANIZATION: 组织

  • FIELD_ENTITY: 用户字段

  • CREATOR: 应用创建人

  • CUSTOM_FIELD: .cn共同管理的自定义项目

各“entity”必须指定。在来宾空间的应用里,不可以指定组织。

states.(状态名称).assignee.entities[].entity.code字符串条件必须

相应状态下的执行者的代码。

在“entity.type”中指定“FIELD_ENTITY”时,可指定以下字段的字段代码。

  • 创建人

  • 更新人

  • 选择用户

  • 选择组织

  • 选择组

在“entity.type”中指定了“CUSTOM_FIELD”时,要指定自定义项目的代码。

只有当“entity.type”为“CREATOR”时不需要指定,其他情况都必须指定。指定来宾用户时,在登录名前加上“guest/”。

states.(状态名称).assignee.entities[].includeSubs布尔值或字符串

指定执行者中是否包含下级组织。

  • true: 包含

  • false: 不包含(初始值)

只有当“entity.type”中指定了“ORGANIZATION”或“FIELD_ENTITY”且指定了“选择组织字段”时有效。其他情况一律忽视设置。

actions数组
动作信息的数组。
actions[].name字符串条件必须

动作名称不得超过64各字符。
指定了“actions”参数时,此参数必须指定。

actions[].from字符串条件必须

动作执行前的状态名称。
指定了“actions”参数时,此参数必须指定。
更改了状态名称时,指定更改后的名称。

actions[].to字符串 条件必须指定动作执行后的状态名称。
指定了“actions”参数时,此参数必须指定。
更改了状态名称时,指定更改后的名称。
actions[].filterCond字符串

用查询方式指定动作的执行条件。关于查询方式,请参考以下链接。
批量获取记录(在查询中指定条件)


以下为限制事项。

  • 在筛选条件中不可以指定“状态”字段。

revision数值或字符串
指定应用的设置更改之前的版本号。如果指定的版本号不是最新的,请求将报错。省略时或指定了“-1”时,不会检查版本号。 

请求的范例

头部

PUT /k/v1/preview/app/status.json HTTP/1.1
Host: example.cybozu.cn:443
X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU=
Authorization: Basic QWRtaW5pc3RyYXRvcjpjeWJvenU=
Content-Type: application/json

正文

{    
    "app": "5",
    "enable": true,
    "states": {
        "未处理": {
            "name": "未处理",
            "index": "0",
            "assignee": {
                "type": "ONE",
                "entities": [
                ]
            }
        },
        "处理中": {
            "name": "处理中",
            "index": "1",
            "assignee": {
                "type": "ALL",
                "entities": [
                    {
                        "entity": {    
                        "type": "USER",    
                        "code": "user1"    
                        },    
                        "includeSubs": false    
                    },    
                    {    
                        "entity": {    
                            "type": "FIELD_ENTITY",    
                            "code": "creator"    
                        },    
                        "includeSubs": false    
                    },    
                    {    
                        "entity": {    
                            "type": "CUSTOM_FIELD",    
                            "code": "上司"    
                        },    
                        "includeSubs": false    
                    }    
                ]    
            }    
        },    
        "完成": {    
            "name": "完成",    
            "index": "2",    
            "assignee": {    
                "type": "ONE",    
                "entities": [    
                ]    
            }    
        }    
    },    
    "actions": [    
        {    
            "name": "开始处理",    
            "from": "未处理",    
            "to": "处理中",    
            "filterCond": "记录编号 = \"1\""    
        },    
        {    
            "name": "改为完成",    
            "from": "处理中",    
            "to": "完成",    
            "filterCond": ""    
        }    
    ],    
    "revision": "3"    
}

应答

参数

参数名称值的类型说明
revision字符串应用的设置更改之后的版本号。

应答范例

{    
    "revision": "3"    
}

JavaScript范例

使用API请求发送 kintone REST API 请求

var body = {    
    "app": "5",    
    "enable": true,    
    "states": {    
        "未处理": {    
            "name": "未处理",    
            "index": "0",    
            "assignee": {    
                "type": "ONE",    
                "entities": [    
                ]    
            }    
        },    
        "处理中": {    
            "name": "处理中",    
            "index": "1",    
            "assignee": {    
                "type": "ALL",    
                "entities": [    
                    {    
                        "entity": {    
                            "type": "USER",    
                            "code": "user1"    
                        },    
                        "includeSubs": false    
                    },    
                    {    
                        "entity": {    
                            "type": "FIELD_ENTITY",    
                            "code": "creator"    
                        },    
                        "includeSubs": false    
                    },    
                    {    
                        "entity": {    
                            "type": "CUSTOM_FIELD",    
                            "code": "上司"    
                        },    
                        "includeSubs": false    
                    }    
                ]    
            }    
        },    
        "完成": {    
            "name": "完成",    
            "index": "2",    
            "assignee": {    
                "type": "ONE",    
                "entities": [    
                ]    
            }    
        }    
    },    
    "actions": [    
        {    
            "name": "开始处理",    
            "from": "未处理",    
            "to": "处理中",    
            "filterCond": "记录编号 = \"1\""    
        },    
        {    
            "name": "改为完成",    
            "from": "处理中",    
            "to": "完成",    
            "filterCond": ""    
        }    
    ]    
};

kintone.api(kintone.api.url('/k/v1/preview/app/status', true), 'PUT', body, function(resp) {    
    // success    
    console.log(resp);    
}, function(error) {    
    // error    
    console.log(error);    
});

使用 XMLHttpRequest 请求

var body = {    
    "app": "5",    
    "enable": true,    
    "states": {    
        "未处理": {    
            "name": "未处理",    
            "index": "0",    
            "assignee": {    
                "type": "ONE",    
                "entities": [    
                ]    
            }    
        },    
        "处理中": {    
            "name": "处理中",    
            "index": "1",    
                "assignee": {    
                "type": "ALL",    
                "entities": [    
                    {    
                        "entity": {    
                            "type": "USER",    
                            "code": "user1"    
                        },    
                        "includeSubs": false    
                    },    
                    {    
                        "entity": {    
                            "type": "FIELD_ENTITY",    
                            "code": "creator"    
                        },    
                        "includeSubs": false    
                    },    
                    {    
                        "entity": {    
                            "type": "CUSTOM_FIELD",    
                            "code": "上司"    
                        },    
                        "includeSubs": false    
                    }    
                ]    
            }    
        },    
        "完成": {    
            "name": "完成",    
            "index": "2",    
            "assignee": {    
                "type": "ONE",    
                "entities": [    
                ]    
            }    
        }    
    },    
    "actions": [    
        {    
            "name": "开始处理",    
            "from": "未处理",    
            "to": "处理中",    
            "filterCond": "记录编号 = \"1\""    
        },    
        {    
            "name": "改为完成",
            "from": "处理中",    
            "to": "完成",    
            "filterCond": ""    
        }    
    ],    
// CSRF TOKEN: 从kintone上执行API(POST, PUT, DELETE)时必须设置   
"__REQUEST_TOKEN__": kintone.getRequestToken()    
};

var url = 'https://{subdomain}.cybozu.cn/k/v1/preview/app/status.json';    
var xhr = new XMLHttpRequest();    
xhr.open('PUT', url);    
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');    
xhr.setRequestHeader('Content-Type', 'application/json');    
xhr.onload = function() {    
    if (xhr.status === 200) {    
        // success    
        console.log(JSON.parse(xhr.responseText));    
    } else {    
        // error    
        console.log(JSON.parse(xhr.responseText));    
    }    
};    
xhr.send(JSON.stringify(body));