更新记录的状态

aki发表于:2016年11月24日 16:47:23更新于:2021年08月10日 16:40:40

Index

更新1条记录的状态

更新记录的状态。

  • 可在启用了流程管理的应用中使用。

  • 更新1条记录的状态和批量更新多条记录的状态,所使用的API不一样。

URI

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

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

HTTP 方法

PUT

必要的访问权限

使用用户身份验证的方式来执行API时

  • 应用的记录查看权限

  • 要获取值的记录的查看权限

  • 要获取值的字段的查看权限

  • 记录未指定执行者、或执行API的用户被设为记录的执行者

通过API令牌验证的方式来执行API时

  • 应用的记录查看权限

  • 要获取值的记录的查看权限

  • 要获取值的字段的查看权限

  • 记录未指定执行者、或“Administrator“被指定为记录的执行者

请求

参数

参数名称要指定的值必须说明
action字符串必须指定要执行的动作名称。
如果动作的名称设置了多语言,根据执行API的用户所设置的语言,指定对应语言下的名称。
※如当前状态下存在多个名称一样的动作,指定该动作将报错。
app数值或字符串必须指定应用的ID。
assignee字符串

条件
必须

以下条件为必须,并通过登录名称来指定执行者。

※在更改用户状态的设置中,选择“从以下用户选择执行者”且有可选择的用户时

※将“执行者”设置为初始状态并返回初始状态时

id数值或字符串必须指定记录的ID。
revision数值或字符串
指定状态更改前的记录修订号。如果指定的修订号不是最新的,请求将报错。
如果省略或指定“-1”,将不对修订号进行验证。

请求的范例

头部

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

正文

{
    "app": 4,
    "id": 1,
    "action": "申请",
    "assignee": "user2",
    "revision": 1
}


应答

参数

参数名称值的类型说明
revision字符串是状态更改后的记录修订号。因为会对执行动作和更新状态这两个操作进行记录,因此修订号会增加2。

应答的范例

{
    "revision": "3"
}

JavaScript 范例

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

var body = {
    "app": 1,
    "id": 1001,
    "action": "申请",
    "assignee": "user1",
}
kintone.api(kintone.api.url('/k/v1/record/status', true), 'PUT', body, function(resp) {
    //success
    console.log(resp);
}, function(error) {
    //error
    console.log(error);
});

使用 XMLHttpRequest 请求

var body = {
    "app": 1,
    "id": 1001,
    "action": "申请",
    "assignee": "user1",
    // CSRF TOKEN: 在kintone中执行API(POST, PUT, DELETE)时需要设置
    "__REQUEST_TOKEN__": kintone.getRequestToken()
};

var url = 'https://{subdomain}.cybozu.cn/k/v1/record/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));


批量更新多条记录的状态

URI

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

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

HTTP 方法

PUT

必要的访问权限

使用用户身份验证的方式来执行API时

  • 应用的记录查看权限

  • 要获取值的记录的查看权限

  • 要获取值的字段的查看权限

  • 记录未指定执行者、或执行API的用户被设为记录的执行者

通过API令牌验证的方式来执行API时

  • 应用的记录查看权限

  • 要获取值的记录的查看权限

  • 要获取值的字段的查看权限

  • 记录未指定执行者、或“Administrator“被指定为记录的执行者

请求

参数

参数名称要指定的值必须说明
app数值或字符串必须指定应用的ID。
records数组必须用来存放要更新状态的记录的数组。一次最多可指定100条。
records[].action字符串必须指定要执行的动作名称。
如果动作的名称设置了多语言,根据执行API的用户所设置的语言,指定对应语言下的名称。
※如当前状态下存在多个名称一样的动作,指定该动作将报错。
records[].assignee字符串

条件
必须

以下条件为必须,并通过登录名称来指定执行者。

※在更改用户状态的设置中,选择“从以下用户选择执行者”且有可选择的用户时

※将“执行者”设置为初始状态并返回初始状态时

records[].id数值或字符串必须指定记录的ID。
records[].revision数值或字符串
指定状态更改前的记录修订号。如果指定的修订号不是最新的,请求将报错。
如果省略或指定“-1”,将不对修订号进行验证。

请求的范例

头部

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

正文

{
    "app": 4,
    "records":[
        {
            " id ": 1,
            "action": "申请",
            "assignee": "user2",
            "revision": 1
        },
        {
           " id ": 2,
            "action": "批准",
        },
        {
           " id ":3,
           "action": "拒绝",
           "revision":5
        }
    ]
}


应答

参数

参数名称值的类型说明
records数组用来存放已更新了状态的记录信息的数组。
records[].id字符串记录ID。
records[].revision字符串是状态更改后的记录修订号。因为会对执行动作和更新状态这两个操作进行记录,因此修订号会增加2。

应答的范例

{
    "records": [
        {
            "id": "1",
            "revision": "3"
        },
        {
            "id": "2",
            "revision": "9"
        },
        {
            "id": "3",
            "revision": "7"
        }
    ]
}

JavaScript 范例

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

var body = {
    "app": 1,
    "records": [
        {
            "id": 1001,
            "action": "申请",
            "assignee": "user2",
            "revision": 1
        },
        {
            "id": 1002,
            "action": "批准"
        },
        {
            "id": 1003,
            "action": "拒绝",
            "revision": 5
        }
    ]
}
kintone.api(kintone.api.url('/k/v1/records/status', true), 'PUT', body, function(resp) {
    //success
    console.log(resp);
}, function(error) {
    //error
    console.log(error);
});

使用 XMLHttpRequest 请求

var body = {
    "app": 1,
    "records": [
        {
            "id": 1001,
            "action": "申请",
            "assignee": "user2",
            "revision": 1
        },
        {
            "id": 1002,
            "action": "批准"
        },
        {
            "id": 1003,
            "action": "拒绝",
            "revision": 5
        }
    ],
     // CSRF TOKEN: 在kintone中执行API(POST, PUT, DELETE)时需要设置
    "__REQUEST_TOKEN__": kintone.getRequestToken()
};

var url = 'https://{subomain}.cybozu.cn/k/v1/records/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));

相关内容