失礼いたします。
コミュニティにて投稿されて居た、「ルックアップで添付ファイルフィールドをコピー」と言うものとその内容に寄せられたコメントを元に、テーブル内にルックアップの添付ファイルをコピーしたいと思い導入させて頂こうとした者です。
使用しているフィールド、フィールド名はそのままで、テーブル内に入れなければ導入が成功しているのですが、テーブル内に入れる為のコードを使用し、テーブル内に入れた際に、以下三点の様な状況になってしまいます。
Javascriptに不慣れな為、コードの何処をどのように修正すれば良いのかわかりません。
宜しければお詳しい方から見ての、アドバイスやご指摘などをいただければ幸いです。
36件のコメント
nagashimaさん
こんにちは。
江田さんが投稿された初回のコードではなく、その後にテーブル用に投稿されたコードを使用されていますか?
テーブル用コード
また、テーブルが画像のような構成になっていますでしょうか。
koichi様こんにちは、お世話になっております。
はい、その通りです。初回のコードではなく、その後にテーブル用に投稿されたコードを使用させていただいています。
テーブルの画像につきましては、その画像そのままの構成です。相違ありません。
ご確認ありがとうございます。
エラー画像(コンソール画面)の「download.do?app=43~~~」をクリックしてください。
エラーになったコード箇所が表示されるはずです。
undefined (reading value)ですので、フィールドコードが存在しないなど、value値が取れないエラーと思われます。
ありがとうございます、ご指摘の通りにクリックした所、
return kintone.Promise.all(originRecord.record[originAttachmentsField].value.map(function(originFileInfomation){
(コード内30行目)
の部分がハイライトされました。この部分がエラー部分だと思われるのですが、どうでしょうか?
「originAttachmentsField」を冒頭で定義していると思うのですが
その値とコピー元アプリの添付ファイルフィールドのフィールドコードは一致していますか?
一致していませんでした、修正致しました。
その上でもう一度試みてみたところ、次はこういったエラーコードが出ます。
デベロッパーツールのNetworkタブを開いてください。
以下画像のように、「update.json」から始まるものがあるはずです。
エラーのため恐らく赤文字になっていると思います。
それをクリックし、「Response」タブを開くと横長の文字列と思いますが、途中にエラーの原因が記載されているはずです。
此方でしょうか?
そちらです。
「編集中に、ほかのユーザーがレコードを更新しました」とありますので
自レコードの保存成功後に、同時に複数の更新処理が重なっているものと思われます。
この添付ファイルの処理とは別に、自レコードに対してPUTする処理が入っていないでしょうか?
自作のJavaScriptでなくて、プラグインでの処理の可能性もあります。
なるほど・・・!
自作のJavaScriptはこの江田様とそのコメント欄で行われた際のコードしか入れておりませんので、恐らくプラグインかと思われます。
「JSEdit for kintone」「kintone ルックアップ動的絞り込みプラグイン」「タブ表示試用版」の3つが入って居るのですが、この中だと2つ目の絞り込みプラグインでしょうか?
それらのプラグインは関係ない気がします。
先ほどのNetworkの「update.json」よりも上に、同じく「update.json」や「record.json」から始まるものはありますか?
あれば、それが先に実行されているPUT処理です。
「update.json」と「record.json」が先にありました。
同じ処理が2回走っているように思います。
コード内に「client.record.updateRecord」の記述が2回以上登場したり
アプリ設定のJavaScript / CSSでカスタマイズに類似したソースコードが2個以上参照されていたりしないでしょうか。
コード内に「client.record.updateRecord」の記述は一度だけでした。
また、アプリ設定のJavaScript / CSSのカスタマイズには江田様の所で導入した物しか入っておりません。
こちらでも動作を確認したいので、お手数ですがnagashimaさんのコードを載せていただくことは可能ですか?
江田さんのコードをもとにされているとは存じますが、その後のやり取りまで反映された部分もあるかもしれませんので、お願いいたします。
こうなっております。
ありがとうございます。違いが見当たらないですね。。
47行目からのコードを以下に変えていただけますか?
保存後にコンソールに画像のようなログが出るか、確認をお願いします。
※新規登録ではなく、既に登録したものを編集保存でお願いします。
また、最初の画像でテーブルが3つあるかと思いますが
他2つのテーブルについては、コード上は何も処理をしないものでしょうか。
画像の方のログの方は出ませんでした。
他2つのテーブルに関しては何も処理をする予定がありません。
追加で2点確認をお願いします。
①全てのプラグインを無効状態にして動作確認お願いします。
②23行目付近を以下に変更して、再度コンソールのログを確認してください。
※先ほどと同様に新規登録ではなく、既存のレコードの編集保存でお願いします。
③お使いのブラウザはChromeですか?
あまり考えにくいですが、ブラウザによって挙動が変わるかもしれませんので、別のブラウザがありましたら、そちらでも動作を試してみてください。
ご返信遅れまして申し訳ございません。
①、②を行った状態で動作確認をした所、エラーメッセージは発生しませんでしたが、添付ファイルにコピーされるべきオリジナルのデータが表示されませんでした。
また、③に関しましては使用して居るブラウザはChromeです。
ご確認ありがとうございます。
②を反映した状態でコンソールのログのキャプチャを頂けますか?
以下画像のようなログが出るはずです。
また、以前の投稿で「Network」にupdate.jsonが二回登場するということでご回答いただいていました。
それぞれをクリックした際の「Payload」の中身のキャプチャもお願いします。
※赤枠以外はマスキングしていただいて問題ありません。
これがありました。
また、update.jsonが2つあった件ですが、今は見当たりませんでした。
1つあった方の中身はこの様になっていました。
ありがとうございます。
白文字の「download.do?~~~」をクリックすると、エラーになったコード箇所が表示されます。
恐らく、コード全体の最後の括弧が足りない(あるいは多い)可能性があります。
括弧の有無をご確認ください。
この部分かと思われます。
閉じ括弧が無いのかもしれないです。
私が確認したコード全文を貼ります。
全文のコードをお借りさせて頂いた上で仮運用してみました。

ルックアップのコピー元にレコード番号が指定されてますでしょうか?
行えて居ます
レコード番号であれば重複しない値なので、そのエラーが出ないはずなのですが不思議な現象ですね。
デベロッパーツールでブレークポイントを打って、上から順に実行した際にどこで止まるかご確認ください。
ブレークポイントを設定する
再三の確認で申し訳ありませんが
先ほどのルックアップの設定画像は、テーブル内に設置したルックアップでお間違いないでしょうか。
加えて、コード冒頭の変数値がテーブル内のフィールドコードと一致しているか、今一度ご確認お願いします。