Index
更新记录(1条)
有记录编辑权限的用户可更新一条记录。
更新方法有指定记录编号、和指定【值为唯一】的字段代码及其值两种。
HTTP 方法
PUT
URI
https://(子域名).cybozu.cn/k/v1/record.json
来宾空间内的应用
https://(子域名).cybozu.cn/k/guest/(空间的ID)/v1/record.json
必要的访问权限
应用的记录编辑权限
要更新值的记录的编辑权限
要更新值的字段的编辑权限
请求参数
参数名称 | 要指定的值 | 必须 | 说明 |
---|---|---|---|
app | 数值或字符串 | 必须 | 指定应用的ID。 |
id | 数值或字符串 | 必须(带条件) | 指定记录ID。 |
updateKey | Object | 必须(带条件) | 指定值为唯一的字段代码和值。 可以指定的字段只有设置了值为唯一的单行文本框和数值。 |
record | Object | 可省略 | 在对象中指定记录的信息(字段代码和字段的值)。 ※字段的值的规格因字段格式的不同而不同。详情请参考字段格式。 ※如省略此项,将不更新数据。 |
revision | 数值或字符串 | 可省略 | 修订号。和实际的修订号不一致时报错(不会更新记录)。 但值为-1时或不指定时,将不检验修订号。 |
请求正文的构成(指定记录ID)
{ "app": (应用的ID), "id": (要更新的记录的ID), "record": { "(字段代码)": { "value": (字段值) }, // 表格中的字段的第一行 "(表格的字段代码)": { "value": [ { "id": (行的ID), "value": { "(字段代码)": { "value": (字段值) } } } ] } }, "revision": (要更新的记录的修订号) // 不需要时可不用写 }
请求正文的构成(指定【值为唯一】的字段代码及其值)
{ "app": (应用的ID), "updateKey": { "field": "(值为唯一的字段代码)", "value": "(值)" }, "record": { "(字段代码)": { "value": (字段值) }, // 表格中的字段的第一行 "(表格的字段代码)": { "value": [ { "id": (行的ID), "value": { "(字段代码)": { "value": (字段值) } } } ] } }, "revision": (要更新的记录的修订号) // 不需要时可不写 }
请求范例
请求头部
PUT /k/v1/record.json HTTP/1.1 Host: example.cybozu.cn:443 X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU= Authorization: Basic QWRtaW5pc3RyYXRvcjpjeWJvenU= Content-Type: application/json
在Content-Type中指定application/json。如不指定无法识别JSON,执行时将报错。
正文(指定记录ID)
对应用ID为【1972】的应用更新如下记录时
字段的格式 | 字段代码 | 值 |
---|---|---|
要更新的记录的编号 | 1 | |
要更新的记录的修订号 | 4 | |
多行文本框 | string_multi | character string is changed |
正文(指定【值为唯一】的字段代码及其值)
对应用ID为【1972】的应用更新如下记录时
字段的格式 | 字段代码 | 值 |
---|---|---|
要作为Key的字段代码及其值 | string_code | CODE123 |
要更新的记录的修订号 | 4 | |
多行文本框 | string_multi | character string is changed |
应答
返回更新成功的记录的修订号。
{ "revision": "5" }
JavaScript范例
使用API请求发送 kintone REST API 请求
var body = { "app": 1, "id": 1001, "record": { "单行文本框": { "value": "ABC" } } }; kintone.api(kintone.api.url('/k/v1/record', true), 'PUT', body, function(resp) { // success console.log(resp); }, function(error) { // error console.log(error); });
使用 XMLHttpRequest 请求
var url = 'https://{subdomain}.cybozu.cn/k/v1/record.json'; var body = { "app": 1, "id": 1001, "record": { "单行文本框": { "value": "ABC" } }, // CSRF TOKEN: 在kintone上执行API(POST, PUT, DELETE)时需要设置 "__REQUEST_TOKEN__": kintone.getRequestToken() }; 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));
记录的批量更新
有记录的编辑权限的用户可批量更新多条记录。
一次最多可更新100条记录。
更新方法有指定记录ID和指定【值为唯一】的字段代码及其值两种。
批量更新失败时,请求中包含的记录的处理将全部被取消。
HTTP 方法
PUT
URI
https://(子域名).cybozu.cn/k/v1/records.json
来宾空间内的应用
https://(子域名).cybozu.cn/k/guest/(空间的ID)/v1/records.json
必要的访问权限
应用的记录编辑权限
要更新值的记录的编辑权限
要更新值的字段的编辑权限
请求参数
※必须指定参数名称为id或updateKey其中一项。但同时指定这两项会报错。
参数名称 | 要指定的值 | 必须 | 说明 |
---|---|---|---|
app | 数值或字符串 | 必须 | 指定应用的 ID。 |
records | 数组 | 必须 | 指定要更新的记录的信息。 作为参数的值,用数组形式指定对象,对象中须包含记录ID和记录信息的组合。 |
records.id | 数值或字符串 | 可省略 ※指定了updateKey时不可指定此项 | 要更新的记录的编号。 在records数组中指定。 |
records.updateKey | Object | 可省略 ※指定了id时不可指定此项 | 指定值为唯一的字段代码和值。 可以指定的字段只有设置了值为唯一的单行文本框和数值。 |
records.record | Object | 可省略 | 在对象中指定记录的信息(字段代码和字段的值)。 |
records.revision | 数值或字符串 | 可省略 | 修订号。和实际的修订号不一致时报错(不会更新记录)。 但值为-1时或不指定时,将不检验修订号。 |
请求正文的构成(※更新n条记录时)
{ "app": (应用的ID), "records": [ { // 第1条记录 "id": (要更新的记录的ID), "revision": (要更新的记录的修订号),// 不需要时可不写 "record": { "(字段代码)": { "value": (字段值) }, "(字段代码)": { "value": (字段值) } } }, { // 第2条数据 "id": (要更新的记录的ID), "revision": (要更新的记录的修订号),// 不需要时可不写 "record": { "(字段代码)": { "value": (字段值) }, "(字段代码)": { "value": (字段值) } } }, { // 第n条数据 "id": (要更新的记录的ID), "revision": (要更新的记录的修订号),// 不需要时可以不写 "record": { "(字段代码)": { "value": (字段值) }, "(字段代码)": { "value": (数组值) } } } ] }
请求的范例
正文
对应用ID为【1972】的应用,更新如下两条记录时
第1条
字段的格式 | 字段代码 | 值 |
---|---|---|
要更新的记录的编号 | 1 | |
要更新的Key字段 | string_code | CODE123 |
要更新的记录的修订号 | 4 | |
单行文本框 | string_1 | abcdef |
第2条
字段的格式 | 字段代码 | 值 |
---|---|---|
要更新的记录的编号 | 2 | |
要更新的Key字段 | string_code | CODE456 |
要更新的记录的修订号 | 1 | |
多行文本框 | string_multi | opqrstu |
以记录ID为Key时的请求范例
// 以记录ID为Key时的请求范例 { "app": 1972, "records": [ { "id": 1, "revision": 4, "record": { "string_1": { "value": "abcdef" } } }, { "id": 2, "revision": 1, "record": { "string_multi": { "value": "opqrstu" } } } ] }
以值为唯一的记录为Key时的请求范例
// 以值为唯一的记录为Key时的请求范例 { "app": 1972, "records": [ { "updateKey": { "field": "string_code", "value": "CODE123" }, "revision": 4, "record": { "string_1": { "value": "abcdef" } } }, { "updateKey": { "field": "string_code", "value": "CODE456" }, "revision": 1, "record": { "string_multi": { "value": "opqrstu" } } } ] }
应答
返回更新成功的各记录的id和修订号。
{ "records": [ { // 第1条数据 "id": "1", "revision": "5" }, { // 第2条数据 "id": "2", "revision": "2" } ] }
JavaScript范例
使用API请求发送 kintone REST API 请求
var body = { "app": kintone.app.getId(), "records": [ { "id": 1001, "record": { "单行文本框": { "value": "ABC" } } }, { "id": 1002, "record": { "单行文本框": { "value": "ABC" } } } ] }; kintone.api(kintone.api.url('/k/v1/records', true), 'PUT', body, function(resp) { // success console.log(resp); }, function(error) { // error console.log(error); });
使用 XMLHttpRequest 请求
var url = 'https://{subdomain}.cybozu.cn/k/v1/records.json'; var body = { "app": 1, "records": [ { "id": 1001, "record": { "单行文本框": { "value": "ABC" } } }, { "id": 1002, "record": { "单行文本框": { "value": "ABC" } } } ], // CSRF TOKEN: 在kintone上执行API(POST, PUT, DELETE)时需要设置 "__REQUEST_TOKEN__": kintone.getRequestToken() }; 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));
注意事项
附件字段的更新和删除
已添加多个附件的情况下,要再添加新的附件时,需要在请求中指定已添加的fileKey。无法更新已添加的附件。
删除文件时,如不将该文件的fileKey传给请求,将删除该文件。
表格的数据更新
未包含在请求的JSON数据中的记录不被更新。但,在表单中设置的【表格】内的数据有以下注意事项。
表格数据的有无 | 数据的保留 |
---|---|
更新时不包含表格的数据 |
|
更新时包含表格的数据 |
|
限制事项
无法更新以下字段的值。
值是通过Lookup复制来输入的字段
状态
类别
计算
执行者
创建人
创建日期
更新人
更新日期
设置为自动计算的单行文本框字段
其他请参考共通规格的限制事项。
回复(14)
已经解决了,日期格式应该是:
var workTime = moment(getUTCDateByServer()).format("YYYY-MM-DDTHH:mm:ssZ")。
您好,我现在有这样的问题。
我使用 kintone.api() 去更新 我应用中的 一个 日期 类型的字段,要更新 的日期类型的字段的 值 是 获取 kintone 的系统时间, 然后我更新的时候报:
messages: ["date time must be ISO8601 format."]。
这个日期格式 应该是什么样的? 谢谢
代码如下:
打印时无法更新记录的值哦
您好,现在有一个这样的问题,我需要在出现打印按钮之后:也就是“...” 这个图标,点击出来打印按钮;点击后去更新记录的值,我应该怎么做。
打印显示事件是无法执行重写字段的值的。 在事件发生时可执行的操作: 切换字段的显示/隐藏
具体请参照
https://cybozudev.kf5.com/hc/kb/article/206888/
请问我点击打印按钮,能否回调去实现更新记录中字段的值
是记录显示事件时候刷新,现在已经解决了。谢谢您。
不知道你这个满足条件是什么时候发生?
记录显示事件时自动刷新没有问题,但是记录编辑事件时你要刷新,那修改的字段值会恢复到原来的值。
刷新的话网上可以搜索到各种各样的js刷新方法,你可以选择适合的使用。
您好,我想问一下,在详细页面,是否可以当满足某种条件的时候,页面自动刷新一下,如果可以,应该如何做?谢谢。
好的,这个问题已经解决了,谢谢您。
根据提示是:必填项目 没填 ,你可以看一下
更新失败,原因:{"code":"CB_VA01","id":"zBj114yzwUQ3E9XifkP6","message":"输入有误。","errors":{"records":{"messages":["必填项目。"]}}}
想请教一下,我现在在做一个批量更新的小例子,总是出现这个错误,出现这个问题的原因是什么?我应该如何来解决这个问题。谢谢。
我按照你的json执行成功了
你这个app的设置是这样的吗?
app包含
字段代码为 No的字段,值为唯一
字段代码为 type的字段
我按照这样的配置 执行你的json 是ok的
{
"app": 369,
"updateKey": {
"field": "No",
"value": "026"
},
"record": {
"type": {
"value": "abcdef"
}
}
}
请问这个json串错误在哪,更新不了