アプリアクション実行時のイベントハンドル

お世話になります。
表題の件で、お聞きしたいことがあり、質問させていただきました。

現在、「受注」と「出荷指示」というアプリを作っており、
「受注」が確定になった段階で「出荷指示」アプリにデータを送りたいと
考えています。

その際、アプリアクションを使用してデータのコピーをすることを検討して
いるのですが、このアプリアクションを行った段階で、「受注」アプリに、
「出荷指示済」というフラグを立てたいと思っています。

しかし、アプリアクションのイベントをハンドルすることができずに困っています。

"app.record.detail.process.proceed"イベントでアクション名を
取得しようと思いましたが、うまくいかず・・・。
(そもそも、このイベントはプロセス管理のみで使用するイベントだからでしょうか?)

もし、お分かりになる方がいらっしゃいましたら、教えていただければ幸いです。

以上、何卒よろしくお願いいたします。

ara?さん、こんにちは。

そもそも、このイベントはプロセス管理のみで使用するイベントだからでしょうか?

ご推察の通りだと思います。"app.record.detail.process.proceed"では、アクション機能ではなく、プロセス管理に関するのボタン押下時に処理が走るようです。

https://developers.cybozu.com/ja/kintone-api/apprec-showjsapi.html#i-3
こちらでも、アクション機能に対しては言及されていません。

また、アクション機能は、ボタン押下後コピー先のアプリでの値入力済みレコード作成画面に飛ぶような機能ですので、その後保存したか等の状況まで考慮したりも必要そうですし、現状の標準機能では難しそうですね。

代案としては、自分でレコードをコピーするボタンを配置して、コピー(POSTメソッド)が成功したら、フラグを変更し、登録済みレコードの詳細画面に飛ぶというようなプロセスをコピー元のアプリにカスタマイズで実装するというのはいかがでしょうか?

山下様

ご回答、ありがとうございます。
むむむ・・・。やっぱり自作の道なのですね・・・。

アプリアクションという機能があるので、そこを使えれば、と
思っていたのですが、考え方が甘かったようです。

ご回答、ありがとうございました!

ara?さん
ラジカルブリッジ 斎藤です。

私も今、似たようなアプリを作っていまして、私の場合はアプリAからのアプリアクションでアプリBにいくつかのフィールドのコピーを行い、そのレコードが保存されたかどうかを、裏側に隠れているタブにあるアプリA側から30秒に一回チェックして、保存されていたら所定の処理を行うといったことをやっています。(アプリAの詳細画面表示時にも同様のチェックを行っています)

ラジカルブリッジ 斎藤様

ご回答、ありがとうございます。

30秒の監視イベントですが、これはトリガーは何のイベントを使われているんでしょうか?

差支えなければ、教えていただけると幸いです。

以上、何卒よろしくお願いいたします。

ara?さん

30秒の監視イベントですが、これはトリガーは何のイベントを使われているんでしょうか?

kintoneのイベントではなく、一般的なJSのタイマーを使用しています。
きっかけは作るアプリの要件によりいろいろあり得ると思いますが、私の場合は詳細画面表示時に一度自前function(下記の例ではmyFunc)を呼び出し、後はsetTimeoutにより任意の間隔でmyFuncを繰り返すという形です。

kintone.events.on(‘app.record.detail.show’, function (event) {
myFunc();
return event;
});

function myFunc() {
・・・処理・・・
timer = setTimeout(myFunc, 30000);
}

ラジカルブリッジ 斎藤様

早速の回答、ありがとうございます。

なるほど、詳細表示時に呼び出して監視処理を常駐させるイメージですね。

参考にさせていただきます!
ありがとうございました。

アクション機能はまだ連れていけないフィールドもありますし、イベントを含めて今後の機能向上に期待ですね。