CSVファイル読み込み時にフィールド自動入力

下記、コードのどこをどのように修正したらよいか、教えてください:woman_bowing:
※フィールドコードはJSおよびKintoneで一致しています。下記は(仮)の情報です。

【やりたいこと(目的)】

◆CSVファイルを読み込んだ際に、以下の自動入力処理を実現したい

  • 「入力フィールドA」の値に応じて、「判定フィールドA」の値を自動で入力する
  • 「入力フィールドB」の値に応じて、「判定フィールドB」の値を自動で入力する

【現状の課題】

  • CSVファイルを読み込んでも、自動入力処理が実行されていない
  • レコードの詳細画面を開いても、「判定フィールドA」「判定フィールドB」に値が反映されていない
(() => {
  'use strict';

  const FIELD_MAPPING = [                                             // 入力データと出力フィールドの対応表を定義
    { source: '判定入力_項目A', target: '判定結果_項目A' },         // 項目Aの入力 → 判定結果
    { source: '判定入力_項目B', target: '判定結果_項目B' }           // 項目Bの入力 → 判定結果
  ];

  const convertValue = (input) => {                                   // 入力データを判定形式に変換する関数
    if (!input) return '';                                            // 入力が空なら空文字を返す
    const directCopy = ['A', 'B', 'C', 'D'];                          // そのままコピーする値
    if (directCopy.includes(input)) return input;                    // 該当するならそのまま返す

    switch (input) {                                                 // 特定の文字を別の判定値に変換
      case 'BF':
        return 'B';                                                  // BF → B に変換
      case 'Z':
        return 'E';                                                  // Z → E に変換
      case 'G':
        return 'D';                                                  // G → D に変換
      default:
        return '';                                                   // 該当しないものは空にする
    }
  };

  const updateJudgementFields = (record) => {                        // 入力データに基づき判定フィールドを更新する関数
    FIELD_MAPPING.forEach(({ source, target }) => {
      const original = record[source]?.value || '';                  // 入力データの元値を取得
      const current  = record[target]?.value || '';                  // 判定結果の現在値を取得

      if (original && !current) {                                    // 条件①:入力あり・判定空 → 判定を反映
        record[target].value = convertValue(original);               // 判定結果に変換した値をセットする
      }

      // 条件②:入力なし・判定なし → 何もしない
      // 条件③:入力なし・判定あり → 判定結果は上書きしない
    });
  };

  kintone.events.on(                                                 // イベント登録:レコード作成・編集送信時
    ['app.record.create.submit', 'app.record.edit.submit'],         // レコード保存・CSVインポート確定時を対象
    (event) => {
      updateJudgementFields(event.record);                           // 判定更新処理を実行
      return event;                                                  // イベントをそのまま返す(保存を続行)
    }
  );

})();

app.record.create.submit追加画面か再利用画面で保存をクリックしたときのイベント
app.record.edit.submit編集画面で保存をクリックしたときのイベントだから
ファイル読み込みには対応していません。

ご回答いただき有難うございます

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