営業管理アプリがあります。
この営業入力アプリで保存したレコードを、営業管理アプリへレコードを追加したいです。
ただ、案件がなくなったり、案件の内容が変わったりすることが多々あります。
営業管理アプリに登録されていたレコードの編集と削除も同時にしたいのですが、どのように実現してよいかわかりません。
アドバイスをいただけないでしょうか。
営業管理アプリがあります。
この営業入力アプリで保存したレコードを、営業管理アプリへレコードを追加したいです。
ただ、案件がなくなったり、案件の内容が変わったりすることが多々あります。
営業管理アプリに登録されていたレコードの編集と削除も同時にしたいのですが、どのように実現してよいかわかりません。
アドバイスをいただけないでしょうか。
とりあえず触りだけ。
このように営業入力アプリでレコード追加するときに、対応する営業管理アプリのレコードを
レコード番号で紐づけるようにすれば、その後に編集と削除を同期させる際もレコード番号を
キーとして同期対象のレコードを絞り込めると思います。
(() => {
'use strict';
// 営業入力アプリで、レコード追加が成功したときに処理を開始
kintone.events.on('app.record.create.submit.success', (event) => {
const record = event.record;
// 営業入力アプリにある、営業管理アプリを参照する関連レコード一覧のフィールドコードを設定
const targetAppId = kintone.app.getRelatedRecordsTargetAppId('営業管理アプリの関連レコード一覧');
// 営業管理アプリにある、値の重複を禁止する数値フィールド[営業入力アプリのレコード番号]に
// 営業入力アプリの[レコード番号]が入るようにする
const body = {
'app': targetAppId,
'record': {
'営業入力アプリのレコード番号': {
'value': record['レコード番号'].value
}
}
};
// 上記bodyに基づいて、営業管理アプリにレコード追加する
return kintone.api(kintone.api.url('/k/v1/record', true), 'POST', body)
});
})();
ご回答ありがとうございました。
レコード番号を一意に追加、変更、削除すれば、どうにかできるようでわかりました。
変更や削除で、同じレコード番号のデータを特定するのは簡単にできるものなのでしょうか?
例えば、レコード削除を同期するなら
app.record.index.delete.submit
app.record.detail.delete.submit
を使いますが、これらのイベントをトリガーにしたとき
削除したレコードの[レコード番号]は recordId
で取得できるのが
上記リンク先を見れば分かると思います。
なので、以下のコードで削除対象のレコードを特定するためのクエリを作れます。
(() => {
'use strict';
// 営業入力アプリでレコードを削除したときに処理を開始
const events = ['app.record.detail.delete.submit', 'app.record.index.delete.submit'];
kintone.events.on(events, async (event) => {
// 営業入力アプリで削除されたレコードの[レコード番号]を取得
const recordId = event.recordId;
// 営業管理アプリのアプリIDを取得
const targetAppId = kintone.app.getRelatedRecordsTargetAppId('営業管理アプリの関連レコード一覧');
// 営業管理アプリの削除対象レコードを検索するクエリを作成
const query = `営業入力アプリのレコード番号 = "${recordId}"`;
});
})();
あとは複数のレコードを取得するの
app:
に targetAppId
を、query:
に query
を設定すれば
[営業入力アプリのレコード番号]が、削除したレコードの
[レコード番号]と一致するレコードを取得できます。
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。