お世話になります。
主題の通り、レコードの新規作成時に添付ファイルのファイル名称を取得し、
貼り付けたいと考えております。
添付、保存後に貼り付けできることがわかっているため、レコード追加時
には、REST API等非同期処理が必要だということがわかっており、
下記コードを試しましたが、なぜかedit.jsのみでエラーが出ます。
どうしたらいいかご教授いただけないでしょうか。
よろしくお願いいたします。
コード
(() => {
'use strict';
kintone.events.on('app.record.create.submit', async (event) => {
var record = event.record;
var appId = kintone.app.getId();
var id = event.record.$id.value;
var res = await kintone.api(kintone.api.url('/k/v1/record', true), 'GET', {app:appId, id: id});
var attach = await res['record']['AF_attachedFile']['value'];
for (var i = 0; attach.length > i; i++) {
event.record.S1_fileName.value = files[i]["name"];
}
return event;
});
})();
エラーコード
どうもできなそうなのでアプローチを変えましたが、
保持されないようです。
お分かりになる方、アドバイスいただければ幸いです。
(function() {
'use strict';
kintone.events.on('app.record.detail.show', function(event) {
var appId = kintone.app.getId();
var rec = event.record;
var id = rec.$id.value;
var name;
kintone.api('/k/v1/record', 'GET', {app: appId,id: id}, function(resp) {
var attach = resp.record.AF_attachedFile.value;
for (var i = 0; attach.length > i; i++) {
name = attach[i].name;
}
var record = kintone.app.record.get();
//console.log(name);
record.record.S1_fileName.value = name;
//console.log(record.record.S1_fileName.value);
kintone.app.record.set(record);
});
});
})();
Tofu様
submitでは,レコード番号が取得できません.
var id = event.record.$id.value;
おそらく,ここでエラーになると思います.
ただ,ここででるエラーが提示されているものとはちょっと違うかもしれないので,
他にエラーにつながる箇所があるかもしれません.
同様に添付ファイルも同様にsubmitではAPIを使っても空だと思います.
なので,上記を実行するのであればsubmit.successになると思います.
途中の値の格納状態についてはconsole.logなどで確認してみてください.
追記:
<2番目の投稿に対して>
詳細画面で実行していますが,イベントハンドラー内なのでrecord.get/setでエラーになりませんか?
もしrecord.setまでできるようでしたら,return eventすればsetした値が画面にでてくるかもしれません.
Tofu 様
https://developer.cybozu.io/hc/ja/articles/201942014-レコード詳細情報取得#step4
ここにあるとおり、record.setは追加/編集画面でしか使えない、とあるのでその旨コメントした次第です。
return eventは1番最後で良いのですが、record.setが反映されるかはちょっと自信がなくて、
location.reloadかな?と思っていたりします。
TO様
お世話になっております。
DOM操作となりますが、非常に単純な形でできました。
とりあえずとなってしまいますが一応ということで。
(function() {
"use strict";
kintone.events.on("app.record.edit.submit", function(event){
var record = event.record;
var data = document.getElementsByClassName('plupload_file_name')[0].title;
var data1 = data;
record.S1_fileName.value = data1;
return event;
});
})();
system
(system)
クローズされました:
2024 年 6 月 6 日午前 12:58
7
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。