ユーザー選択で選択された値を文字列へコピーした後に値を削除できるようにしたい

 

お世話になっております。

過去の投稿を参照し、ユーザー選択の値を他のカラムへコピー保存する事を試しました。この部分は成功したのですが、下記内容で躓いております。どうしたら良いか、教えて頂けないでしょうか。申し訳ありませんが、宜しくお願いします。

実現したいこと

一度入力したユーザー選択を削除しても保存できるようにしたいのですが、どのように構文を書いたら良いか解りません。

背景

zapierを使ってkintoneのデータをスプレットシートとGmailに配信するフローを開発しています。zapierへの連携カラムの中に、ユーザー選択の項目が含まれていました。そのまま連携させると、アカウント表記になってしまうので一度他のカラムへ文字列でコピーして、その値を使うように考えております。ここまでの流れは出来たのでテストしました。テスト中に「ユーザー選択を入力・保存した後に、再度編集で入ってユーザー選択の値を削除したら保存できない」事象が判明しました。この部分を解決したいです。

利用したソースコード

 

(function() {

  'use strict';

  // レコード追加画面保存時・編集画面保存時
  var events = ['app.record.create.submit', 'app.record.edit.submit',
              'mobile.app.record.create.submit', 'mobile.app.record.edit.submit'];
  kintone.events.on(events, function(event) {

    var record = event.record;
    console.log(record);

  record.ユーザー選択のテキストコピー.value = record.ユーザー選択.value[0].name;;
    return event;

  });

})();

酒井美佳様

もしかしたら意図違いかもしれませんが、
「ユーザー選択の値がない状態で保存しようとするとエラーになる」
ということであれば、

record.ユーザー選択.value[0].name;

ここでユーザー選択が空なのに[0]を指定しているのが原因と思われます。
(ユーザー選択が空のときはvalueが空配列[]になります)
ユーザー選択が空の時にスルーして良いなら、

if(record.ユーザー選択.value.length){
record.ユーザー選択のテキストコピー.value = record.ユーザー選択.value[0].name;
}

…とすれば、エラーはでなくなると思います。
このコードでは、ユーザー選択に何か入っていることをlengthで検出しています。
参考になれば幸いです。

汲み取って頂いた内容であっております。

アドバイス頂いた内容で解決致しました。

10月までに完了させたかった事案なので、非常に助かりました。

本当に有難うございました。

 

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