競合してjsが正常に動作しない

□問題点

①番の保存回数を可変させるjsが単体だと動くが、複数登録したアプリに入れるとedit.showの時に動かない。

②番を削除したときに動いたので、競合していると思うのですが、原因特定に至りませんでした。

お力添え頂けますと幸いです。

①
(() => {

  'use strict';

  // レコード再利用ボタンで新規or再利用画面表示後、適用する

  kintone.events.on('app.record.create.show', (event) => {

    event.record["保存回数"]["value"] = 1;//レコード追加(新規)の場合は保存回数を1回に

    return event;

  });

})();

(() => {

  'use strict';

  kintone.events.on('app.record.edit.show', (event) => {

    let field_save = event.record["保存回数"]["value"];

    if (!field_save) {

      event.record["保存回数"]["value"] = 2;//編集画面で空白の場合は保存回数を2回

    }

    else {

      let counter = (event.record["保存回数"]["value"]) ? parseInt(event.record["保存回数"]["value"]) : 0; //三項演算子(条件式?trueの場合の処理:falseの場合の処理)

      counter++;

      event.record["保存回数"]["value"] = counter;

    }

    return event;

  });

})();

②
(function () {

    "use strict";

    kintone.events.on(['app.record.edit.show', 'app.record.edit.change.契約明細TB', 'app.record.edit.change.発注明細TB'], function (event) { // レコード編集画面が表示された時、テーブルが操作された時

        let a;

        const loginuser = kintone.getLoginUser().name;

      if (loginuser !== "〇〇〇") { //ログインユーザーが〇〇〇さんの時を除く

            for (a = 0; a < 100; a++) {

                document.getElementsByClassName('remove-row-image-gaia')[a].style.display = 'none'; //テーブルの削除ボタンを非表示に

            }

        }

        return event;

    });

})();
             document.getElementsByClassName('remove-row-image-gaia')[a].style.display = 'none';

競合ではなく、ここでエラーになってるためかと思います(この部分がエラーで停止するため、同様にedit.showのカスタマイズが停止します)。
ループが100回実行するものになっているので、仮にサブテーブルが必ず100行以上なら問題なく動くと思いますが、そうでない場合、例として10行のサブテーブルの11行目にある削除ボタン(存在しないもの)のスタイルにアクセスすることになり、エラーで動作が停止します。

ループの回数を工夫する(要素と同じ数のループを実行)、ループ中に続きの処理を行うか判定させる(要素が存在するか判定)等の工夫が必要です。

mls-hashimoto

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

試してみます。

ループ処理を適正な回数繰り返すよう修正し、正常に動作するように

なりました。

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