(重複かもしれませんが)
PythonでREST APIを使って空のサブテーブルに値を追加しようとして
手詰まりになっております。
サブテーブルが空の状態から、後述のリクエストを投げたところ、
なにも記載のない行が追加されるだけで意図した動作になりません。
リクエストの内容は以下の通りです
Method: Put
ヘッダ : X-Cybozu-API-Token : xxxxxxxxxx
Content-Type: application/json
リクエストボディ
{
“app”: (アプリID),
“id”: (レコード番号),
“record”: {
“(サブテーブルのフィールドコード)”: {
“value”: [
{
“(【勤務形態】のフィールドコード)”: {
“value”: “正社員”
},
“(【日付_勤務形態】のフィールドコード)”:{
“value”:“2020-02-01”
}
}
]
}
}
}
どこを間違えているかご教示いただけますでしょうか?
以上、よろしくお願いいたします。
空の行が一行追加される、ということでしたらテーブル内のフィールドコードが間違っている可能性がありそうですがいかがでしょうか。
コメントありがとうございます。
改めてサブテーブルおよびその中の入力欄のフィールドコードをコピペして実行しましたが、
結果変わらずです。
ちなみにフィールドコードはそれぞれ、
【サブテーブル】: テーブル_勤務形態
【勤務形態】: 勤務形態
【日付_勤務形態】: 勤務形態_日付
としています。使ってはいけない文字を使ってるとか、
そもそも日本語はダメとかいう事はないでしょうか?
フィールドコードに指定できている文字であれば日本語であろうと特に問題ありません。
なにもない行が追加されている、ということは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
それも問題なさそうな場合、実際どういうリクエストを送っているか丸々みてみたいです。
コメントありがとうございます。
フィールドコードの文字コードについてはどう確かめたらいいか分からなかったので、
ASCIIに変更して同様の事を試してみましたが、結果変わらずでした。
ちなみに(フィールドコード変更前の)リクエストは以下の通りです。
なるほど、ありがとうございます。
問題切り分けのために、別のアプリを作成しその中に英字だけのフィールドコードを作りどうなるかためしてみてはいかがでしょうか?
それで問題なければ、やはりフィールドコード周りに問題がある気がしますね。
横から失礼します。
テーブル部分のJSONが間違って無いですかね?
"テーブル_勤務形態": {
"value" : [
{
"value": { ←これが無い???
"勤務形態":{
"value" : "正社員"
},
"勤務形態_日付": {
"value" :"2020-12-01"
}
}
}
]
}
エラーになってくれたら良いんですけど、気づきにくいですよね^^;
コメントありがとうございます。試してみました。
結果ですが、リクエストを投入してもサブテーブルに変化なしでした。
(空行が追加されない)
切り分けのために別アプリを作る件については、時間的にまだ試せておりません。
解決しました。JSONの形が悪かったようです。
最終的に以下の形でテーブル値を更新する事が出来ました。
ありがとうございました!