Kintoneにおいて、アプリAでレコードを新規作成した際に、そのレコードのコピーをアプリBにも追加したいといったケースが割と少なくありません。
アプリAの詳細画面に追加されたボタンをクリックするとアプリBにコピーが作成されるといったプラグインはいくつかありますが、レコード保存時に自動でコピーされた方が効率的でヌケモレも防げます。
<サンプルコードの仕様>
・前提条件として、アプリBでは、アプリAの重複禁止かつ入力必須の「顧客IDやメールアドレス等のユニークな値」をルックアップしています。
・特定の条件にマッチした場合のみアプリBにコピーしたい場合に、コード内の"条件フィールドコード"と"◯◯"を任意の値に差し替えてください。全てのレコードを対象にされたい場合にはif文を削除してください。
・コード内の"アプリID"の箇所を、コピー先となるアプリBのアプリIDに差し替えてください。
・コード内の"ルックアップ先フィールドコード"の箇所を、コピー先となるアプリBのルックアップのフィールドコードに差し替えてください。
・コード内の"ルックアップ元フィールドコード"の箇所を、コピー元であるアプリAのルックアップ元のフィールドコードに差し替えてください。
サンプルコードを環境に合わせてご変更いただければ、かなり便利なスクリプトになるかと思いますので、ご自由にお使いください!
※ご質問にはお答えできませんので予めご承知おきくださいませ。
コード
(function () {
"use strict";
kintone.events.on("app.record.create.submit.success", function (event) {
var record = event.record;
if (record.条件フィールドコード.value == "◯◯") {
const body = {
requests: [
{
method: "POST",
api: "/k/v1/record.json",
payload: {
app: アプリID, //コピー先アプリID
record: {
ルックアップ先フィールドコード: {
//コピー先フィールドコード
value: record.ルックアップ元フィールドコード.value, //コピー元フィールドコード
},
},
},
},
],
};
return kintone
.api(kintone.api.url("/k/v1/bulkRequest", true), "POST", body)
.then(function (resp) {
console.log(resp);
alert("レコードがコピーされました"); // コピー成功時のメッセージ
return event;
})
.catch(function (error) {
console.log(error);
alert("エラーが発生しました。\n" + error.message); // エラー発生時のメッセージ
return event;
});
}
});
})();