新規投稿
フォローする

添付ファイル名称をレコード追加時に文字列(1行)へ貼り付け

お世話になります。
主題の通り、レコードの新規作成時に添付ファイルのファイル名称を取得し、
貼り付けたいと考えております。

添付、保存後に貼り付けできることがわかっているため、レコード追加時
には、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;
    });
})();

エラーコード

0

4件のコメント

Avatar
Tofu

どうもできなそうなのでアプローチを変えましたが、

保持されないようです。

お分かりになる方、アドバイスいただければ幸いです。

(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);
        });
    });
})();
0
Avatar
TO

 Tofu様

submitでは,レコード番号が取得できません.

var id = event.record.$id.value;

おそらく,ここでエラーになると思います.
ただ,ここででるエラーが提示されているものとはちょっと違うかもしれないので,
他にエラーにつながる箇所があるかもしれません.
同様に添付ファイルも同様にsubmitではAPIを使っても空だと思います.
なので,上記を実行するのであればsubmit.successになると思います.

途中の値の格納状態についてはconsole.logなどで確認してみてください.

追記:
<2番目の投稿に対して>
詳細画面で実行していますが,イベントハンドラー内なのでrecord.get/setでエラーになりませんか?
もしrecord.setまでできるようでしたら,return eventすればsetした値が画面にでてくるかもしれません.

TOにより編集されました
0
Avatar
Tofu

TO様

アドバイスありがとうございます。

とりあえずは2番目で進めておりますが、ご指摘の件、

https://developer.cybozu.io/hc/ja/community/posts/202656630-%E8%A9%B3%E7%B4%B0%E7%94%BB%E9%9D%A2%E8%A1%A8%E7%A4%BA%E6%99%82%E3%81%AB%E5%80%A4%E3%81%AE%E8%A1%A8%E7%A4%BA%E3%82%92%E6%9B%B4%E6%96%B0%E3%81%97%E3%81%9F%E3%81%84

を参考にしたのですが、間違っているのでしょうか?

return eventを差し込むところがよくわかりません。

 

0
Avatar
TO

Tofu

https://developer.cybozu.io/hc/ja/articles/201942014-レコード詳細情報取得#step4

ここにあるとおり、record.setは追加/編集画面でしか使えない、とあるのでその旨コメントした次第です。
return eventは1番最後で良いのですが、record.setが反映されるかはちょっと自信がなくて、
location.reloadかな?と思っていたりします。 

0
サインインしてコメントを残してください。