サイボウズが公開しているAPIを利用します。
APIを利用して、データ更新と挿入を行います。
事前処理
事前処理に関しては、以下のページの事前処理を参考にしてください。
KintoneRestAPIClient getAllRecordsを使ってみる
利用アプリの説明
今回のサンプルプログラムは、2つのアプリを作成していますが、アプリの項目は同じでとなっています。1つのアプリを作成し、コピーして利用頂ければ問題ありません。
・アプリ名:任意
・項目:以下の設定でプログラムを作成しています。
項目名 | フィールド属性 | フィールドコード |
---|---|---|
コード | 文字列(1行) | コード |
名前 | 文字列(1行) | 名前 |
プログラム
(function() {
'use strict';
kintone.events.on('app.record.index.show', async function(event) {
const client = new KintoneRestAPIClient();
const resp = await client.record.getAllRecords({
app: 17, //ここは変更してください。
fields:[],
});
resp.forEach ((v) => {
let result = client.record.upsertRecord({
app : kintone.app.getId(),
updateKey : { field: "コード", value: v.コード.value },
record : {
"名前": { value : v.名前.value + "__up" }
}
});
});
return event;
});
})();
詳細については、以下リファレンスにて確認ください。
js-sdk/record.md at master · kintone/js-sdk · GitHub
kintoneのポイント
サンプルプログラムは、対象のアプリ(Aアプリ)からデータを取得しています。
そのデータのキーをもとに、本アプリ(Bアプリ)に処理を行っています。
同じキー(コード)が存在した場合、更新処理を、
同じキー(コード)が存在しない場合、挿入処理を行います。
upsertRecordのパラメータとして、updateKey と、recordを設定しています。
updateKey は、更新キーとして、コードを設定しています。
コード項目には、「値の重複を禁止する」チェックをONに設定している必要があります。
recordは更新データを格納しています。
配列に格納されたデータ分(オブジェクトのレコード分)データを更新しています。
async /await による非同期対応を実施いています。