新規投稿
フォローする

テーブル1のルックアップ取得時、同じ値でテーブル2のルックアップを取得したい

https://developer.cybozu.io/hc/ja/community/posts/900002143326-1%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AB2%E3%81%A4%E3%81%AE%E3%83%AB%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97-%E5%8F%82%E7%85%A7%E5%85%88%E5%88%A5-%E8%A8%AD%E7%BD%AE-%EF%BC%91%E3%81%A4%E7%9B%AE%E3%81%AE%E5%80%A4%E3%81%A7%EF%BC%92%E3%81%A4%E7%9B%AE%E3%82%92%E8%87%AA%E5%8B%95%E5%8F%96%E5%BE%97%E3%81%97%E3%81%9F%E3%81%84-

 

こちらの記事参考にしてみましたが、テーブルですとやはり記述が違うんですかね、うまくいきませんでした。やり方あれば教えて頂きたいと思います。

0

4件のコメント

Avatar
mionix

こんにちは

実際に書いてみたコードを見せていただかないと間違っている部分がわかりませんので、

コードを記載していただければと思います。

 

テーブル1のどの行をテーブル2のどの行へコピーするのかを記述しなければいけません。

例えば、変更されたテーブル1の行をテーブル2の最下行にコピーするであれば下記のような書き方になると思います。

var index = event.record['テーブル2']['value'].length - 1; // 最下行のインデックス
event.record['テーブル2']['value'][index]['value']['ルックアップ']['value'] = event.changes.row['value']['文字列']['value'];
event.record['テーブル2']['value'][index]['value']['ルックアップ']['lookup'] = true;
mionixにより編集されました
0
Avatar
ジェシーおいたん

参考記事にフィールドコードを合わせてみました。
ちなみに参考記事のルックアップはどちらもテーブルではないようでした。

今回のアプリでのテーブルの使い方は少し特殊なのかもしれませんが、テーブル1のルックアップはレコード毎に行数こそ違うものの、基本的にテーブル1、2のルックアップは全行同じ値になります。


(function () {
    'use strict';
    //下記2項を変更
    const fieldA = 'fieldA';//フィールドAのフィールドコード
    const lookupB = 'lookupB'//ルックアップBのフィールドコード
    const EVENT = [
        `app.record.create.change[${fieldA}]`,
        `app.record.edit.change[${fieldA}]`
    ];
    kintone.events.on(EVENT, function (event{
        const record = event.record;
        record[lookupB].value = record[fieldA].value;
        record[lookupB].lookup = true;
        return event;
    });
})();

0
Avatar
mionix

テーブル1とテーブル2は同じ内容でコピーを生成するような感じですかね?

正直、考慮しないといけない処理が多すぎてコードを提示することができないですね...すみません

まず、テーブル1とテーブル2の行数が一致してないといけないので、

テーブル1の追加、削除、変更に応じてテーブル2も追加、削除、変更しないといけません。←ここが大変

テーブル1が変更されるたび、テーブル2を上書きしても良いなら簡単ですが...

0
Avatar
ジェシーおいたん

そうでしたか。
テーブル2に関してはテーブル1と行数は比例せず、都度更新で問題ありません。

0
サインインしてコメントを残してください。