サブテーブル内のユーザー選択の値を外のユーザー選択にコピーしたい

何を実現したいのかを書きましょう

レコードの保存時に、サブテーブル内に保存されているユーザー選択の値と同じものがサブテーブル外のユーザー選択フィールドに入るようにしたいです。
文字列フィールドへのコピーは出てくるのですが、同じユーザー選択フィールドへのコピーの記事が見つからず質問させていただきます。

参考にしているページ

実行したコードをコピー&ペーストしましょう

テーブル内に設置してあるルックアップにて、別アプリから管理者を取得

その取得した管理者を、プロセス管理の承認者にしたいので、別途承認者のフィールドに入れたい

という経緯になります。

※ テーブルは複数行入力されるのですが、同一人物(1名のみ)が管理者として表示されるので、一番上の行に入っている管理者が承認者に適用されればいい、という状況です。

▼ 参考ページのフィールド名を書き換えたもの

kintone.events.on(["app.record.create.submit", "app.record.edit.submit"],
              function (event) {
                      const record = event.record;
                      const table = record.テーブル.value;
                       // 名前だけの配列生成
                      let list = table.map(row => { return row.value.管理者.value ? row.value.管理者.value : "" })
                      // 重複削除フィルター
                      list = list.filter((x, i, self) => { return self.indexOf(x) === i }
                      );
                      // 配列をコンマ区切りで結合してall_student_nameへ
                      record.承認者.value = list.join(",")
                      return event;
              }
      );

▼ 実際に適用してみたもの

kintone.events.on(["app.record.create.submit", "app.record.edit.submit"],
              function (event) {
                      const record = event.record;
                      const table = record.テーブル.value;  
                   
                      record.承認者.value = record.管理者.value 
                      return event;
              }
      );

文字列に適用するわけではないので、名前だけの配列生成、重複削除フィルターは削除。
list.join(“,”)部分は絶対違うなと思いつつ変更しました。

rowの指定も入れるべきでしょうか?
また、constではなくvarを使うべきでしょうか?

お手数ですが、ご回答いただけると幸いです。
よろしくお願いいたします。

編集で開いた時のコードです。一度テーブル1行目に管理者を入れて保存した上で開き直してみて下さい。

今回は当てはまらないかもしれませんが、テーブルもユーザー選択も配列ですので、中を回して処理をかける必要が出た場合はfor文やmapでその分回して処理してあげてください。(rowの部分ですね)

値を定数として宣言したい場合はconstで、再代入する場合はletやvarで宣言してあげると良いですがこの辺り調べていただくと使い方楽しくなると思います。

  kintone.events.on("app.record.edit.show", function (event) {
    const record = event.record
    const table = record["テーブル"].value
    //テーブル1行目の管理者の1人目
    let user = table[0].value.管理者.value[0]
    record["承認者"].value[0] = user
    return event;
  });
「いいね!」 1

ご回答ありがとうございます!
重ねての質問になり恐縮なのですが、サブテーブル内の管理者のフィールドが、手動入力ではなくルックアップの取得にて入力されている状態(青字ではなく黒字になっている)場合、コードの書き方が変わりますでしょうか?
(青字の状態で検証をしたところ上手く動作しております)

ご回答ありがとうございます!
サブテーブル内の管理者のフィールドが、手動で入力ではなくルックアップの取得にて入力されている場合、コードの書き方が変わりますでしょうか?

とんちんかんな質問な上に返信を編集したら重複投稿になってしまいました…
どうも上手く動かず、TISのプラグインが競合していたようです。
プラグインを無効にしたところ動作いたしました。
ありがとうございました。

「いいね!」 1

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