テーブル内の添付ファイルの有無判定について

過去に同じトピックがありましたが、改めて確認させて頂けませんでしょうか。
以下のような JS で添付ファイルの情報を拾おうとしたのですが意図した情報が取得出来ませんでした。どのように記載すべきでしょうか。

(function() {
  'use strict';

  var events = [
    'app.record.create.submit',
    'app.record.edit.submit'
  ];

  kintone.events.on(events, function(event) {
    var record = event.record;

    var table = record['テーブル'].value;

    for (var i = 0; i < table.length; i++) {
      var test1 = table[i].value['添付ファイル'];
      var test2 = table[i].value['添付ファイル'].value;
      var test3 = table[i].value['添付ファイル'].value[0];
      var test4 = table[i].value['添付ファイル'].value.length;
      var test5 = table[i].value['添付ファイル'][0];
      var test6 = table[i].value['添付ファイル'].length;
      
      console.log(test1 + ' / ' + test2 + ' / ' + test3 + ' / ' + test4 + ' / ' + test5 + ' / ' + test6);
    }
    return event;
  });
})();

@yutakam さん

こんばんは、少し気になったので回答させていただきました。
単刀直入ですが、意図した情報とはどのような情報なのでしょうか??
そちらを説明していただけたら、助力できるかもしれませんので…

「いいね!」 1

ここで言及されてますが、保存時だと取れないんですよね、
保存成功時ならとれはしますが、まずそれでやりたいことが叶うかですね…

「いいね!」 1

ご返信頂きましてありがとうございます。

以下の画像の赤枠のように、テーブルのカラムの1つとして添付ファイルが設定されています。


テーブルの行をループして、各行ごとの添付ファイルの個数を拾えないものかと考えております。
アドバイス頂けますと助かります。
よろしくお願いいたします。

「いいね!」 1

ご返信頂きありがとうございます。
そういうことだったのですね。承知しました。
とりあえず、保存成功時に警告を表示して利用者に認知してもらうことを試してみようと思います。
ご回答ありがとうございました。

保存成功時、alert で警告を表示するようには出来ました。
(event.error は処理が走りませんでしたので)

@yutakam さん

こんにちは、されたい事理解いたしました。
@mura さんがいわれているように確かにレコード保存成功イベント( app.record.create.submit.success等)以降でないと添付ファイルフィールドの内容を取得できないですね…

各行のファイルの個数としては、

kintone.events.on(['app.record.create.submit.success','app.record.edit.submit.success'], (event) => {

    const record = event.record;
    const table = record['テーブル'].value;

    for (let i = 0; i < table.length; i++) {
        let test = table[i].value['添付ファイル'].value.length; 
        console.log(`${test}個`);
      }
      return event;
 });

@yutakam さんのコードを利用させてもらうとこんな感じですかね…

おっしゃるように警告を表示されるなら、SweetAlert2(下記参考リンク添付します)がおすすめですし、もしなにかフィールドに表示されたいのならREST APIで更新するしかなさそうです。

こちら回答になっていなければ申し訳ございません…

参考リンク(SweetAlert2公式):https://sweetalert2.github.io/
参考リンク(cybozu CDN):cybozu CDN SweetAlert2

「いいね!」 1

ありがとうございます。
ご指摘の内容を意図しておりました。

また追加情報を頂きありがとうございます。
SweetAlert2 というのは知りませんでした。
早速使ってみようと思います!

「いいね!」 1

@yutakam さん

いえいえ、とんでもございません。
完全にお節介になっちゃうんですけど、一応下記にサンプル書かせていただきますね!
SweetAlert自体は非同期処理(Promise等)なので、下記のサンプルのようにawaitを入れてあげると、SweetAlertのOKボタンを押すまでイベント終了させないようにできます。
もっといえば、OKボタンを押した後で処理を分岐できたりしますので、色々表現の幅が広がるかなと思われます…

(() => {
    'use strict'

    kintone.events.on(['app.record.create.submit.success','app.record.edit.submit.success'], async (event) => {

        const record = event.record;
        const table = record['テーブル'].value;

        let att_count = 0;
        for (let i = 0; i < table.length; i++) {
            let test = table[i].value['添付ファイル'].value.length;
            att_count += test;
            console.log(`${test}個`);
        }

        await Swal.fire({
            icon: 'info',
            title: `添付ファイルの数は${att_count}個`,
            showConfirmButton: true,
          })

        return event;
    });

})()

参考リンク:SweetAlert2の使い方解説

「いいね!」 2

追加の情報ありがとうございます!
こちらも参考にさせていただきます!

「いいね!」 1

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。