いつもお世話になっております。初めて投稿します。
注文受付アプリ(以下、A)の情報を発注書作成アプリ(以下、B)へコピーするために、Aの詳細画面にボタンを作成し、ボタンクリックでBの新規レコードに情報をコピーするカスタマイズをしました。
(参考にさせていただきました https://developer.cybozu.io/hc/ja/community/posts/115017571523 )
ここまでは意図した通りに動いているのですが、
Aの一覧画面から「レコードの詳細を表示する」ファイルマークをクリックした時にも、Bにレコードが追加されてしまいます。
Aのボタン類をクリックしたら処理が走ってしまうようです。
原因がわからず困っており、ご指摘・ご教授いただきたく投稿をさせていただきました。
-----(実際のプログラム ここから)-------------------------------
(function() {
‘use strict’;
var orderP = {};
kintone.events.on(‘app.record.detail.show’, function(event) {
//レコード情報取得
var record = event.record;
//「発注書作成」アプリのアプリの番号
orderP.APP_ID = 123;
//レコードコピーボタン要素作成
var btnCopy = document.createElement(‘button’);
btnCopy.id = ‘btn_Copy’;
btnCopy.innerHTML = ‘発注書作成’;
//ボタンをクリックしたときのイベント
btnCopy.onclick = function() { //受注受付から発注書データを作成する
window.confirm(‘発注書を作成します。’);
};
//(ヘッダー)スペースにボタン要素を付加
kintone.app.record.getHeaderMenuSpaceElement().appendChild(btnCopy);
//kintone.app.record.getSpaceElement(‘OrderP_go’).appendChild(btnCopy);
//サブテーブルオブジェクトを取得
var tableRecords = record.受注明細.value;
//サブテーブルの内容を配列に格納
var subtable = [];
for (var i = 0; i < tableRecords.length; i++) {
subtable.push({
value: {
“商品名”: { value: tableRecords[i].value[‘商品名’].value },
“数量”: { value: tableRecords[i].value[‘数量’].value }
}
});
}
var params = {
“app”: orderP.APP_ID,
“record”: {
“件名”: {“value”: record[‘件名’].value},
“ユーザー名”: {“value”: record[‘ユーザー名’].value},
“受注No”: {“value”: record[‘受注No’].value},
“受注明細”: {“value”: subtable}
}
};
kintone.api(‘/k/v1/record’, ‘POST’, params);
});
})();
-----(プログラムここまで)-----
ボタンをクリックしたら、「発注書を作成します。」とメッセージが出ますが、ボタン以外から複製される時には、メッセージは出ないことが違うところです。
情報が不足していましたら、その点もご指摘いただければと思います。
よろしくお願いいたします。