kintoneの標準機能にあるアプリアクションと同じことを、自動で行えるようなカスタマイズの実装を検討しています。
少し調べたところ、アプリアクション自体を呼び出すようなイベントの記述は見つからなかったため、今は登録元アプリがレコードを保存したタイミングで、登録先アプリのedit画面を開き、そこに初期値として登録元アプリから引用したデータを入力する、という動作をJavaScriptで記述しようとしています。
上記動作をボタンクリックしたタイミングで行っている記事は見つかったので、そちらを参考にコードを記述しました。
※参考にした記事1
※参考にした記事2
以下のコードにより、レコードを登録したタイミングでedit画面を開くところまでは行けたのですが、そこに初期値を入れることができません。
原因や解決策が分かりましたら、アドバイスをいただけると助かります。
(function () {
'use strict';
kintone.events.on('app.record.create.submit.success', function (event) {
var put1 = event.record.'登録元アプリのフィールドコード'.value;
//元アプリの引継ぎ対象フィールドでの入力を確認
if (!put1) {
return;
}
//関連レコードの新規作成画面のURLへのジャンプ
var new_window = window.open('/k/'登録先アプリのアプリID'/edit');
new_window.addEventListener('load', function () {
window.postMessage(new_window.kintone !== null, location.origin);
});
window.addEventListener(
'message',
(function () {
return function field_set() {
//新規レコード側のフィールドを指定してsetする
var new_app = new_window.kintone;
var new_record = new_app.app.record.get();
new_record.record.'登録先アプリのフィールドコード'.value = put1;
new_app.app.record.set(new_record);
window.removeEventListener('message', field_set, false);
};
})(),
false
);
});
})();
こちらの問題、自己解決しました。
postMessageから値を入力するにはclickを行う必要がありそうなので、こちらのアプローチからは断念しました。
代わりに、アプリアクションのプログラムからの実行方法が書かれてたサイトのコードを参照しました。
アプリアクションもURLでパラメーターを入れたら実行できたのですね・・・
結果、以下のコードにて、レコード登録成功時、チェックボックスの値に応じてアプリアクションを自動実行する動作が実現できました。
後学のためにも、こちらにコードを記載しておきます。
(function () {
'use strict';
kintone.events.on('app.record.create.submit.success', (event) => {
//自動実行の判定に必要なチェックボックスの値取得
var checkAction = event.record.'チェックボックスのフィールドコード'.value;
//アクション元レコードのレコードID取得
var recordId = event.recordId;
if (checkAction !== '') {
window.open(
`https://ドメイン名.cybozu.com/k/'アクション先のアプリID'/edit?action='アクションのID'&app='アクション元のアプリID'&record=${recordId}`,
'_blank'
);
}
});
})();
「いいね!」 3
Staff-melon
(cybozu developer network team)
3
Hiro-Miu 様
cybozu developer network運営チームでございます。
ご自身で解決され、その解決手段を共有していただき、ありがとうございます。
他の人の学びに繋がれると思います。
ご返信内容にドメイン情報が含まれていた為、伏せらせていただきました。
今後、個人情報や秘密情報など含まれないようにご注意をお願いいたします。
今後ともcybozu developer communityをよろしくお願いします。
「いいね!」 2
ドメイン情報消し忘れてましたか!!
消していただいてありがとうございます!!
今後の投稿時にはよくよく注意します
「いいね!」 1
aaa
5
当該投稿の右上に表示される鉛筆マーク?をクリックすると投稿の差分が表示されてしまうみたいですね。
「いいね!」 2
Staff-melon
(cybozu developer network team)
6
aaa 様
cybozu developer network運営チームでございます。
当該投稿の右上に表示される鉛筆マーク?をクリックすると投稿の差分が表示されてしまうみたいですね。
お知らせいただきありがとうございました。
今回のように、個人情報や秘密情報を含む投稿をしてしまったことに気づいてから編集するケースは他にあることを踏まえて、編集履歴を見れないように変更させていただきました。
今後ともcybozu developer communityをよろしくお願いします。
「いいね!」 2
system
(system)
クローズされました:
7
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。