新規投稿
フォローする

REST APIを使ったサブテーブルの更新がうまくいかない

(重複かもしれませんが)

PythonでREST APIを使って空のサブテーブルに値を追加しようとして

手詰まりになっております。

サブテーブルが空の状態から、後述のリクエストを投げたところ、

なにも記載のない行が追加されるだけで意図した動作になりません。

リクエストの内容は以下の通りです

Method: Put

ヘッダ : X-Cybozu-API-Token : xxxxxxxxxx 

               Content-Type: application/json

リクエストボディ

----------------------------------------

{
"app": (アプリID),
"id": (レコード番号),
"record": {
"(サブテーブルのフィールドコード)": {
"value": [
{
"(【勤務形態】のフィールドコード)": {
"value": "正社員"
},
"(【日付_勤務形態】のフィールドコード)":{
"value":"2020-02-01"
}
}
]
}
}
}

----------------------------------------

どこを間違えているかご教示いただけますでしょうか?

以上、よろしくお願いいたします。

0

10件のコメント

Avatar
村濱一樹

空の行が一行追加される、ということでしたらテーブル内のフィールドコードが間違っている可能性がありそうですがいかがでしょうか。

0
Avatar
M.Tani

コメントありがとうございます。

改めてサブテーブルおよびその中の入力欄のフィールドコードをコピペして実行しましたが、

結果変わらずです。

 

ちなみにフィールドコードはそれぞれ、

【サブテーブル】: テーブル_勤務形態

【勤務形態】: 勤務形態

【日付_勤務形態】: 勤務形態_日付

としています。使ってはいけない文字を使ってるとか、

そもそも日本語はダメとかいう事はないでしょうか?

0
Avatar
村濱一樹

フィールドコードに指定できている文字であれば日本語であろうと特に問題ありません。

なにもない行が追加されている、ということはREST APIの送信自体は成功しているということですよね?

 

であれば、例えばフィールドコードの文字コード(UTF-8)が間違っているとかありえますでしょうか...?

https://developer.cybozu.io/hc/ja/articles/201941754-kintone-REST-API%E3%81%AE%E5%85%B1%E9%80%9A%E4%BB%95%E6%A7%98

 

それも問題なさそうな場合、実際どういうリクエストを送っているか丸々みてみたいです。

0
Avatar
M.Tani

コメントありがとうございます。

フィールドコードの文字コードについてはどう確かめたらいいか分からなかったので、

ASCIIに変更して同様の事を試してみましたが、結果変わらずでした。

ちなみに(フィールドコード変更前の)リクエストは以下の通りです。

0
Avatar
村濱一樹

なるほど、ありがとうございます。

問題切り分けのために、別のアプリを作成しその中に英字だけのフィールドコードを作りどうなるかためしてみてはいかがでしょうか?

それで問題なければ、やはりフィールドコード周りに問題がある気がしますね。

0
Avatar
あさが

横から失礼します。

テーブル部分のJSONが間違って無いですかね?

        "テーブル_勤務形態": {

"value" : [

{

"value": {      ←これが無い???

"勤務形態":{

"value" : "正社員"

},

"勤務形態_日付": {

"value" :"2020-12-01"

}

}

}

]

}
 
0
Avatar
村濱一樹

たしかに!全然きづきませんでした 🙇‍♂️

0
Avatar
あさが

エラーになってくれたら良いんですけど、気づきにくいですよね^^;

0
Avatar
M.Tani

コメントありがとうございます。試してみました。

結果ですが、リクエストを投入してもサブテーブルに変化なしでした。

(空行が追加されない)

切り分けのために別アプリを作る件については、時間的にまだ試せておりません。

0
Avatar
M.Tani

解決しました。JSONの形が悪かったようです。

最終的に以下の形でテーブル値を更新する事が出来ました。

ありがとうございました!

1
サインインしてコメントを残してください。