ご返信遅れまして申し訳ございません。
①、②を行った状態で動作確認をした所、エラーメッセージは発生しませんでしたが、添付ファイルにコピーされるべきオリジナルのデータが表示されませんでした。
また、③に関しましては使用して居るブラウザはChromeです。
ご返信遅れまして申し訳ございません。
①、②を行った状態で動作確認をした所、エラーメッセージは発生しませんでしたが、添付ファイルにコピーされるべきオリジナルのデータが表示されませんでした。
また、③に関しましては使用して居るブラウザはChromeです。
ご確認ありがとうございます。
②を反映した状態でコンソールのログのキャプチャを頂けますか?
以下画像のようなログが出るはずです。
また、以前の投稿で「Network」にupdate.jsonが二回登場するということでご回答いただいていました。
それぞれをクリックした際の「Payload」の中身のキャプチャもお願いします。
※赤枠以外はマスキングしていただいて問題ありません。
これがありました。
また、update.jsonが2つあった件ですが、今は見当たりませんでした。
1つあった方の中身はこの様になっていました。
ありがとうございます。
白文字の「download.do?~~~」をクリックすると、エラーになったコード箇所が表示されます。
恐らく、コード全体の最後の括弧が足りない(あるいは多い)可能性があります。
括弧の有無をご確認ください。
この部分かと思われます。
閉じ括弧が無いのかもしれないです。
私が確認したコード全文を貼ります。
(function() {
"use strict";
var table = 'テーブル';
var lookupField = 'ルックアップ';
var lookupIdField = 'ルックアップID';
var originAttachmentsField = '添付ファイル';
var copyAttachmentsField = '添付ファイル';
kintone.events.on([
'app.record.detail.show',
'app.record.create.show',
'app.record.edit.show',
], function(event) {
kintone.app.record.setFieldShown(lookupIdField, false);
event.record[table].value.forEach(function(row) {
row.value[copyAttachmentsField].disabled = true;
});
return event;
});
kintone.events.on([
'app.record.create.submit.success',
'app.record.edit.submit.success',
], function(event) {
console.log(event);
var client = new KintoneRestAPIClient();
return kintone.Promise.all(event.record[table].value.map(function(row) {
if (!row.value[lookupIdField].value) return [];
return client.record.getRecord({
app: kintone.app.getLookupTargetAppId(lookupField),
id: row.value[lookupIdField].value
}).then(function(originRecord) {
return kintone.Promise.all(originRecord.record[originAttachmentsField].value.map(function(originFileInfomation) {
return client.file.downloadFile({
fileKey: originFileInfomation.fileKey
}).then(function(fileData) {
return {
file: {
name: originFileInfomation.name,
data: new Blob([fileData], { type: originFileInfomation.contentType })
}
};
});
}));
}).then(function(files) {
return kintone.Promise.all(files.map(function(files) {
return client.file.uploadFile(files);
}));
});
})).then(function(copyFileInfomationsChunks) {
console.log('start');
return client.record.updateRecord({
app: event.appId,
id: event.recordId,
record: {
[table]: {
value: event.record[table].value.map(function(row, index) {
return {
value: {
...row.value,
[copyAttachmentsField]: {
value: copyFileInfomationsChunks[index]
}
}
}
})
}
}
}).then(function() {
console.log('end');
});
});
});
})();
全文のコードをお借りさせて頂いた上で仮運用してみました。
ルックアップのコピー元にレコード番号が指定されてますでしょうか?
行えて居ます
レコード番号であれば重複しない値なので、そのエラーが出ないはずなのですが不思議な現象ですね。
デベロッパーツールでブレークポイントを打って、上から順に実行した際にどこで止まるかご確認ください。
再三の確認で申し訳ありませんが
先ほどのルックアップの設定画像は、テーブル内に設置したルックアップでお間違いないでしょうか。
加えて、コード冒頭の変数値がテーブル内のフィールドコードと一致しているか、今一度ご確認お願いします。
var table = 'テーブル';
var lookupField = 'ルックアップ'; // ★テーブル内
var lookupIdField = 'ルックアップID'; // ★テーブル内
var originAttachmentsField = '添付ファイル'; // コピー元アプリのフィールド
var copyAttachmentsField = '添付ファイル'; // ★テーブル内
ルックアップ先を選択→保存までは一時停止されませんが、(保存しようとすると他の人がレコードを編集した、というエラーは出ています)レコードを編集しようとしたり編集を終わらせレコードの一覧に戻ろうとすると止まってしまう様です。
また、もう一度フィールドコードとテーブルの設定を再確認いたしてみましたが、相違ございませんでした。
レコード編集の右側の時計アイコンから変更履歴が見れます。
保存ボタンを押した後、画面を一度リロードいただき、当時刻の変更履歴があるかご確認ください。
どのような履歴になっているか合わせてご確認ください。
また、試しに以下からアプリテンプレートをダウンロードして
他の方に見えない非公開スペースなどにアプリを作成いただくことは可能でしょうか。
中身は「ファイル」アプリと「テーブル」アプリです。
(右上の ↓ からダウンロードできます)
このアプリでも症状が出れば、お使いの端末やブラウザやネットワークなどに起因するもの
症状が出なければアプリに起因するものといえます。
保存ボタンを押した後、画面を一度リロード致しました所、当時刻の変更履歴がございませんでした。
また、お送り頂いたファイルを設定し試してみた所、テーブル内に添付ファイルをルックアップ出来ましたので、アプリに起因した物かと思われます。
ご確認ありがとうございます。
アプリ起因ですと、お手数ですが双方のアプリを比べていただき、違いがあれば修正お願いします。
既にご確認いただいた箇所もありますがご了承ください。
①コピー元アプリのフィールドの設定
・レコード番号
・添付ファイル
②コピー先アプリのフィールドの設定
・テーブル
・ルックアップ(テーブル内)
・ルックアップID(テーブル内)
・添付ファイル(テーブル内)
③コピー先アプリのJavaScriptの設定
・https://js.cybozu.com/kintone-rest-api-client/3.1.3/KintoneRestAPIClient.min.js
・添付ファイルコピー用スクリプト
ご返信遅くなり申し訳ありません、koichi様から頂いたデータと、元あったデータの違いを細かに修正し直してみていった所、当初の目的であった動きになりました。
数日間に渡りご相談に乗って頂き、誠にありがとうございます。大変助かりました。
ご確認いただきありがとうございます。解決に繋がり何よりです。
もっと早い解決に繋がるようご回答できれば良かったですが、色々とお手数おかけしました。
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。