特定の文字列を含む場合、その文字列の有無の判定結果を出したい

背景・実現したいこと その1

 「文字列(複数行)」フィールド(今回は「【list】」)に特定の文字列(今回は「株式会社」など)を含む場合、別のフィールドにその文字列があるか、ないかの判定結果(今回は「株式会社 アリ」「株式会社 ナシ」など)を出力したいです。

■問題
下記コードで、新規にレコードを作成して入力すると、保存後に判定結果が出力されたのですが、「ファイルから読み込む」でcsvファイルの一括登録だと、出力結果が反映されません(空白のまま)でした。

■トライしたこと
「‘app.record.create.submit’,‘app.record.edit.submit’,‘app.record.create.submit.success’,'app.record.edit.submit.success」をつけたり、消したりしましたが、同じ結果でした。この辺をいじるような気がしたのですが…

修正方法ありますでしょうか?

**■現在のjava script**
(() => {
  'use strict';
  kintone.events.on(['app.record.create.show', 'app.record.edit.show', 'app.record.detail.show', 'app.record.create.submit','app.record.edit.submit','app.record.create.submit.success','app.record.edit.submit.success'], event => {

      var str = event.record.【list】.value;
          if(str.match(/株式会社/)){
           event.record.【株式会社の有無】.value = ['株式会社 アリ'];
          }else{
           event.record.【株式会社の有無】.value = ['株式会社 ナシ'];
      }
      
      var str2 = event.record.【list】.value;
          if(str2.match(/有限会社/)){
             event.record.【有限会社の有無】.value = ['有限会社 アリ'];
          }else{
             event.record.【有限会社の有無】.value = ['有限会社 ナシ'];
      } 
      return event;
  });
})();

****************************************************************************************************

■やりたいこと その2
また、レコード一覧画面にボタンを設置して、csvファイルを直接アップロードできるようにしたいのですが、可能でしょうか?(できればドラッグアンドドロップ対応も)

現在は、ボタンを設置して「ファイルから読み込む」ページに遷移していますが、ひと手間省きたい(クリック回数を減らしたい)と思いました。

**■現在のjavascript**
(function() {
  "use strict";
kintone.events.on('app.record.index.show', (event) => {
    if (document.getElementById('my_index_button')) return event;
    setTimeout(() => {
      try {
        let myIndexButton = document.createElement('button');
        var btnClassName = 'button_1_class';
        myIndexButton.id = 'my_index_button';
        myIndexButton.className = 'button_1_class';
        myIndexButton.innerHTML = 'csvファイルをアップロードする';
        myIndexButton.onclick = () => {
        window.open("https://●●●●●.cybozu.com/k/1475/importRecord");
        };
        myIndexButton.style.float = 'center';
        document.getElementsByClassName('gaia-argoui-app-toolbar')[0].prepend(myIndexButton);
      } catch(error) {
        console.error(error);
      }
    }, 0);
});

※「●●●●●」はサブドメインです。

 

ヒントや参考サイトをご教示頂けるだけでも助かります。

宜しくお願いします。

> csvファイルの一括登録だと、出力結果が反映されません

誤解を恐れずに言うと、JavaScriptはブラウザで今表示しているデータを操作するだけのものですので、
裏でアップロードされるような処理を何とかするようなことはできません。

先にExcelなどでアリナシを分けてからアップロードするのがよいかもしれません。

 

> csvファイルを直接アップロードできるようにしたいのですが、可能でしょうか?

JavaScriptでできるか?と聞かれたらJavaScriptでできます。が、JavaScript&kintoneカスタマイズの専門知識必要です。
ファイルのアップロード方法 を見てピンとこない感じだったらやらないほうがいいと思います。

ご回答ありがとうございます!

その1はkintoneアップロード前にバッチ処理をかけることで、なんとかなりそうな気がしてきました!!

その2はピンとこなかったですが、勉強したいと思います!!!

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