アクションで、サブテーブル内のルックアップ項目をコピーしており、
その際に、自動的にそのルックアップの取得を行いたいです。
ちなみにサブテーブルではないルックアップ項目については、以下のコード(ネットで見つけたものです。)でうまくいってるのですが、サブテーブルだとうまくいきません。
※AAAというルックアップ項目を自動取得する。
────────────────────────────────────────────────────────────────
kintone.events.on(‘app.record.create.show’, function(event) {
var record = event.record;
record[‘AAA’].value; // ルックアップフィールドの値
record[‘AAA’].lookup = true; // または record[‘AAA’][‘lookup’] = ‘UPDATE’;
return event;
});
────────────────────────────────────────────────────────────────
BBBというテーブル内のCCCという項目のルックアップを自動取得するにはどのようにすればよいのでしょうか。
非エンジニアで、初歩的な質問かもしれませんがよろしくお願いします。
「いいね!」 1
サブテーブルの場合、何行目のフィールドなのかという指定が必要です。
record['サブテーブルのフィールドコード'].value[インデックス番号].value['サブテーブル内フィールドのフィールドコード']['lookup']
こういった指定が必要で、インデックス番号は0から始まります(1行目の場合は0)。
つまり
record['BBB'].value[0].value['CCC']['lookup'] = 'UPDATE';
これでサブテーブルの1行目のルックアップが取得できます。
但し、2行目以降も同じように指定する場合は、本当の新規作成時(サブテーブルが1行しかない状態)で存在しないもの(2行目)にアクセスしようとしてエラーになるので、本来なら配列のループで処理をする必要があります。
ループ処理についてははじめようJavaScript第7回 JavaScriptの基本機能 繰り返し処理をする、for文が、なぜサブテーブルにループ処理が必要なのかはkintoneにおけるテーブル操作の基本が参考になると思います。
「いいね!」 1
ありがとうございます!
コードを書いたことない身からすると、難しそうですがせっかくの機会ですので勉強しながらやってみようと思います。
「いいね!」 2
system
(system)
クローズされました:
4
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。