レコードの更新(PUT)

フォローする

Index

レコードの更新(1件)

  • レコードの編集権限のあるユーザーが、1件のレコードを更新できます。
  • レコードIDを指定する方式と重複禁止フィールドコードと値を指定する方式があります。

HTTP メソッド

PUT

URI

https://(サブドメイン名).cybozu.com/k/v1/record.json

ゲストスペース内のアプリの場合

https://(サブドメイン名).cybozu.com/k/guest/(スペースのID)/v1/record.json 

アクセス権

レコードの編集権限がない場合、編集権限のないフィールドを登録する場合、エラーが発生します。

リクエストパラメータ

※パラメータ名 idとupdateKeyのどちらかを指定する必要があります。両方を指定すると、エラーになります。

パラメータ名 指定する値 必須 説明
app 数値又は文字列 必須 アプリのID を指定します。
id 数値又は文字列 省略可
※updateKeyを指定する際には指定不可
レコードID を指定します。
updateKey Object 省略可
※idを指定する際には指定不可
重複禁止フィールドコードと値を指定します。
指定できるフィールドは重複を禁止が設定された文字列(1行)と数値のみです。
record Object 省略可 レコードの情報(フィールドコードとフィールドの値)をオブジェクトで指定します。
※フィールド値の仕様についてはフィールドの形式により異なります。 詳細については フィールド形式をご確認ください。
※省略した場合は、データは更新されません。
revision 数値又は文字列 省略可 期待しているリビジョン番号。 実際のリビジョン番号と一致しない場合はエラーとなります(レコードは更新しない)。 
ただし、値が-1あるいは指定しなかった場合はリビジョン番号の検証を行いません。


リクエストボディの構造(レコードIDを指定する)

リクエストボディの構造(重複禁止のフィールドコードと値を指定する)

リクエストの例

リクエストヘッダ

PUT /k/v1/record.json HTTP/1.1
Host: example.cybozu.com: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」のアプリ対して以下のレコード更新をする場合

フィールドの形式 フィールドコード
キーにするフィールドコードと値 string_code CODE123
更新するレコードのリビジョン   4
文字列(複数行) string_multi character string is changed

レスポンス

更新したレコードのリビジョンが返されます。

JavaScriptサンプル

kintone REST API

XMLHttpRequest

レコードの一括更新

レコードの編集権限のあるユーザーが、複数のレコードを一括で更新できます。

  • 一度に更新できるレコードは 100 件までです。
  • レコード更新には、レコードIDを指定する方式と重複禁止フィールドコードと値を指定する方式があります。
  • 一括更新に失敗すると、リクエストに含まれるレコードの処理はすべてキャンセルされます。

HTTP メソッド

PUT

URI

https://(サブドメイン名).cybozu.com/k/v1/records.json

ゲストスペース内のアプリの場合

https://(サブドメイン名).cybozu.com/k/guest/(スペースのID)/v1/records.json 

アクセス権

レコードの編集権限がない場合、編集権限のないフィールドを登録する場合、エラーが発生します。

リクエストパラメータ

※パラメータ名 idとupdateKeyのどちらかを指定する必要があります。両方を指定すると、エラーになります。

パラメータ名 指定する値 必須 説明
app 数値又は文字列 必須 アプリの ID を指定します。
records 配列 必須 更新するレコードの情報を指定します。
本パラメータの値は、更新したいレコードIDと更新したいレコード情報をセットにしたオブジェクトを配列で記述します。
id 数値又は文字列 省略可
※updateKeyを指定する際には指定不可
更新するレコードの番号。 records 配列内に記述します。
updateKey Object 省略可
※idを指定する際には指定不可
重複禁止フィールドコードと値を指定します。
指定できるフィールドは重複を禁止が設定された文字列(1行)と数値のみです。
record Object 省略可 レコードの情報(フィールドコードとフィールドの値)をオブジェクトで指定します。
※フィールド値の仕様についてはフィールドの形式により異なります。
詳細については フィールド形式をご確認ください。
※省略した場合は、データは更新されません。
revision 数値又は文字列 省略可 期待しているリビジョン番号。
実際のリビジョン番号と一致しない場合はエラーとなります(いずれのレコードも更新しない)。 
ただし、値が-1あるいは指定しなかった場合はリビジョン番号の検証を行いません。


リクエストボディの構造(※n件のレコードを更新する場合)

リクエストの例

ボディ

アプリID「1972」のアプリに対し、以下の2件のレコード更新をする場合

1件目
フィールドの形式 フィールドコード
更新するレコードの番号   1
更新対象のキーフィールド string_code CODE123
更新するレコードのリビジョン   4
文字列(1行) string_1 abcdef
2件目
フィールドの形式 フィールドコード
更新するレコードの番号   2
更新対象のキーフィールド string_code CODE456
更新するレコードのリビジョン   1
文字列(複数行) string_multi opqrstu

レコードIDをキーにしたリクエスト例

重複禁止フィールドをキーにしたリクエスト例

レスポンス

レコードごとに更新したレコードのidとリビジョンが返されます。

JavaScriptサンプル

kintone REST API

XMLHttpRequest

注意事項

添付ファイルフィールドの更新と削除

  • 複数ファイルを添付している状態で、新たにファイルを追加する場合には、登録済みのfileKeyをリクエストに含める必要があります。 すでに添付しているファイルを更新することはできません。
  • ファイルを削除する場合には、そのファイルのfileKeyをリクエストに渡さなければそのファイルは削除されます。

テーブルのデータ更新

リクエストのJSONデータに記述しないフィールドは更新されません。ただし、フォームに設定した「テーブル」内のデータは、次の注意点があります。

テーブルデータの有無 データの保持
更新時にテーブルのデータを含まない
  • テーブルのデータは保持されます。
更新時にテーブルのデータを含む
  • リクエストのJSONデータに記述しないテーブル内のフィールド値は削除されます。
  • フィールドの値を保持する場合は、リクエストのJSONデータにテーブル内のフィールドの値を記述してください。
  • レコード取得APIで取得したテーブル行の「id」を指定して、特定のレコードとフィールドを更新できます。

制限事項

  • 次のフィールドは、値を更新できません。
    • ルックアップフィールドによって値が入力されるフィールド
    • カテゴリー
    • 計算

その他につきましては、制限事項 をご確認ください。

関連Tips

記事に関するフィードバック

直接的に記事と関連がないご質問はcybozu developer コミュニティをご活用ください。

Avatar
Hiroyuki Nakamura

サブテーブルの更新をJavascriptで実装している際に気が付きましたが、
サブテーブルの更新部分の記載に誤りがあるように思います。

(誤)

"(テーブルのフィールドコード)": { 
"value": {
"0":{
"value": {
"(フィールドコード)": {
"value": (フィールド値)
}
}
}
}
}

(正)

"(テーブルのフィールドコード)": { 
"value": [
{
"value": {
"id": "0"
"(フィールドコード)": (フィールド値)
}
}
]
}

テーブルのフィールドコードのvalueに対応するものはオブジェクトではなく配列かと思います。

Hiroyuki Nakamuraにより編集されました
Avatar
cybozu Development team

Hiroyuki Nakamuraさん

cybozu.com developer network事務局です。
リクエストボディのサブテーブルの記載内容を修正致しました。
ご指摘いただきありがとうございました。

Avatar
渡邊
渡邊により編集されました
Avatar
吉村啓治郎

テーブルのデータ更新で質問です。

「•リクエストのJSONデータに記述しないテーブル内のフィールド値は削除されます。」

とありますが、複数あるテーブル行のうち、1行だけ書き換えたて、ほかのテーブル行は残したい場合、

他のテーブル行は「テーブル行の『id』」だけを記入しておけば、現在のkintoneでは消えないようなのですが、

これは将来のバージョンアップも含めて消えることはないのでしょうか?

 

よろしくお願いいたします。

 

Avatar
cybozu Development team

吉村啓治郎さん

ご質問いただきありがとうございます。
cybozu developer network運営事務局です。

複数あるテーブル行のうち1行だけ書き換えたい場合は、
吉村さんのおっしゃる通りテーブルのidを指定することで実現できます。

APIにつきましては、APIを利用して開発されたアプリなどに影響を与えないよう、
原則として機能の追加のみを行います。

ただし、次のような場合は API の仕様を変更することがありますので、その点はご了承ください。

・データ破壊やセキュリティ障害などの原因を除去するなど運用上、仕様の変更が必要な場合
・cybozu及び その各サービスの改修により派生的に変更が必要な場合

なお、API の仕様変更を伴うアップデートがある場合、それが適用される定期アップデートの 4 週間前までに、
変更の詳細を以下のサイトで公開致します。
サイトのお知らせ(http://developers.cybozu.com/ja/category/news/)

▼参考リンク
https://cybozudev.zendesk.com/hc/ja/articles/201793494

追加でご質問等ありましたらお気軽にご連絡ください。
よろしくお願い致します。

Avatar
みなとん

いつもお世話になっております。



レコードの一括更新の章に

「必須項目が設定されている場合には、その値をリクエストに含めてください。」

と記載がございますが、こちらは誤りではないでしょうか。

PUTの時は更新する項目のみを指定する認識でおります。

 

細かい点で恐縮でございますが、ご確認よろしくお願いいたします。

Avatar
cybozu Development team

みなとん様

ご指摘をありがとうございます。

当方の環境でも確認し、該当の記述を削除いたしました。

POSTの記述と混同した可能性があり、大変申し訳ございませんでした。

今後ともどうぞよろしくお願いいたします。

Avatar
hana

お世話になっております。

以下ご確認いただけるでしょうか。

PUTのupdateKeyは日付は使えないのでしょうか。マニュアルには指定する値にObjectとありますが、下記のエラーが出ます。

{
"code": "GAIA_IN06",
"id": "1505999166-127152590",
"message": "レコードの更新に失敗しました。「updateKey」に指定したフィールド(code: DeliverDate)が不正です。「updateKey」には、文字列(1行)フィールドか数値フィールドのみ指定できます。また、フィールドの設定で、値の重複を禁止する必要があります。"
}

よろしくお願いします。

Avatar
cybozu Development team

hana 様

ご連絡をありがとうございます。cybozu Development teamでございます。

仕様を確認したところ、2016年5月版より、updateKeyに指定できるフィールドは重複を禁止が設定された文字列(1行)と数値のみとなっており、日付フィールドについては遅くともそのタイミングから対象外となっております。

ドキュメントに記載がなかったため、リクエストパラメーター欄の説明欄に追記させていただきました。記載がなかった点について、申し訳ございませんでした。

どうぞよろしくお願いいたします。

ログインしてコメントを残してください。
Powered by Zendesk