実現したいこと
マスタ更新アプリで入力した「新住所」をマスタの「住所」にセットして更新したい。
マスタ更新アプリは、ルックアップでマスタから「住所」を獲得し、旧住所のフィールドに表示し、
「新住所」を入力する仕様であある。
エラー情報
マスタの「住所」が更新されない。
window.alertとして以下の内容が表示される。
利用したソースコード
(function() {
'use strict';
kintone.events.on(['app.record.create.submit', 'app.record.edit.submit'], function (event){
// 新住所を取得する
var record = event.record;
var updatedAt = record['新住所'].value;
window.alert(updatedAt);
var lookupvl = record['ルックアップ'].value;
window.alert(lookupvl);
//
var body = {
'app': (1) ,
'updatekey': {
'field' : '(生徒コード)' ,
'value' : (lookupvl) ,
},
'record': {
'住所': {
'value': (updatedAt),
},
}
}
kintone.api(kintone.api.url('/k/v1/record.jason', true), 'PUT', body, function(resp) {
// success
window.alert(resp);
}, function(error) {
// error
window.alert(error);
})})})();
試したこと
再現条件
- 画面・イベント:詳細画面
- カスタマイズに関連するフィールド(フィールド種類/フィールド名/フィールドコード):
- 権限設定:
- デバイス(PC or モバイル):PC
- OS・ブラウザ:Windows10・edge
- IP制限などネットワークに特殊なことがあれば:
よろしくお願いいたします。
19件のコメント
こんばんは。
細かいところは確認していませんが、APIのURLが間違ってるようです。
jason → json ですね。
こんにちは。
ご指摘ありがとうございました。
早速、修正し再実行いたしましたが、結果は同じものでした。
.jsonを削除して実行したところ、エラーではありましたが、window.alert(error)の内容が変化しました。
以下の表示です。
こんにちは。
window.alert() の箇所を console.log() に置き換えたら、内容を確認できるかと思います。
その際、結果は開発者ツールのコンソールに表示されるのでご注意下さい。
コンソールについては以下をご覧下さい。
https://developer.cybozu.io/hc/ja/articles/207613916
ありがとうございます。ブラウザをchromeに変更し、コンソールに表示しました。
エラーの意味がよくわかりませんが、ご指摘いただけますでしょうか。よろしくお願いいたします。
1つ前のコメントに加えて、以下の質問をさせていただいてもよろしいでしょうか。
PUTの説明に以下のリクエストヘッダが必要とありましたが、これが関連しているのでしょうか。
こんにちは。
送っているデータがおかしい可能性がありますね。
コンソールに表示されているメッセージをクリックすると、隠れている部分が展開されてもう少し詳細なエラーメッセージを確認できる場合がありますので、確認してみてはいかがでしょうか。
パッと見た感じだと、JSON内にある()は不要そうです。
お疲れ様です。
以下の詳細メッセージが表示されました。
リエストヘッダについて、ご教授おねがいできますか。
こんにちは。
JavaScript APIを使ってる場合、通常はそのエラーは出ないはずなんですよね・・・。
他に原因があるかもしれないので、最新のソースコードを貼って頂いて良いでしょうか?
ご対応ありがとうございます。最新のソースコードです。
最後の()を削除すると、最初の2件のwindow.alertが表示されなくなったので、もどしました。
よろしくお願いいたします。
こんにちは。
実行しているAPIが「/k/v1/record」という事は、1レコードを更新されたいという事ですよね?
だとしたら、JSONのフォーマットが違ってそうです。(recordsの配列にはならない)
こんな感じでしょうか。
お世話になっております。
1レコード更新にソースを置き換えて、再実行しましたが、エラーでした。ピンクの部分だけになりましたが・・・。
お疲れ様です。
PUT (中略) 400 Bad Request とエラーメッセージが出力されていますが、
エラー概要一覧のようなドキュメントはないのでしょうか。
あるいは、1件更新のサンプルソースはないのでしょうか。
よろしくお願いいたします。
JSONを修正すればいけそうなのですが、なんででしょうね・・・。
(400 Bad Requestなので、送ってるJSONに原因がありそうな気はします)
サンプルですが、チュートリアルには1件の追加、複数件の更新しか無さそうですね。
APIドキュメントのJavaScriptサンプルか、コミュニティの過去記事を検索するぐらいでしょうか。
そもそも、APIドキュメントのPUTのサンプルを見てソースを作成しました。()をつけたり、はずしたり、
’→”へ変更したり、いろいろ試してみましたが、だめでした。
eslintをインストールし、チェックしましたが、エラーは0でした。ワーニングはたくさんありましたが、・・・。
マスタのアクセス権限もすべてチェックを入れてあります。
Kintoneのバグ・・・。マスタのアップデートキーの項目の設定も、重複禁止にチェックを入れてあります。
1件の更新(PUT)について、アップデートキーによる例題をぜひ、テストお願いできないでしょうか。
そして、詳細イベントの処理については、正しく動作しています。入力した、ルックアップと新住所はアラートで正しく
表示されます。
最新のソースを見せて頂ければ、確認はさせて頂けますよ。(解決するかどうかは・・・^^;)
ありがとうございます。最新のソースを貼り付けます。(From Visual Studio Code : ESLint インストール済 )
よろしくお願いいたします。
JSONを作ってる箇所ですが、updatekeyをupdateKeyに変えたらどうなりますか?(kを大文字)
多分、400エラーが出ているのは、これが原因な気がします。
お世話になりました!!!
マスタ更新成功しました。
KintoneのJavaScriptによるカスタマイズの第一歩を踏み出すことができました。
今後、カスタマイズの処理を続ける上で、おおきな記念になりました。教訓になりました。
ほんとうにありがとうございました。
さまざまな失礼をお許しください・・・。
うまく動いたんですね、良かったです!