非同期外部コマンド実行
最終更新日: 2020年3月14日
R8 | R9
詳細画面のオリジナルボタンからジョブの実行を非同期で行うサンプルを紹介します。
はじめに"画面遷移 > 独自ボタンから外部コマンドを呼び出す"の手順でオリジナルボタンの設定を行ってください。
なおサンプルコードではモデル名を model1 としますので、開発者は ShowModel1_Original1.js というスクリプトを用意します。
スクリプトの内容は次のようにします。
キュー名の未指定時(空白設定)は、標準ではダウンロード用と同じ "wagbyJobQueue" という名前のキューを利用します。
Apache Active MQ Artemis と Rabbit MQ の両方を利用する設定を行った場合に、特定のメッセージングミドルウェアに送信させる場合は、対応するbeanを指定してください。
RabbitMQの場合は次のようになります。
ActiveMQの場合は次のようになります。
準備
サンプル
アプリケーションを用意する
function process() {
// メッセージキューにジョブを登録する(デフォルトの接続先を使う)
var registryService = p.appctx.getBean(Java.type("java.lang.Class").forName("jp.jasminesoft.jfc.job.JfcjobstatusRegistryService"));
var jobparamMap = new java.util.HashMap();
jobparamMap.put("cmd", "cmd /c dir ..\\..\\export");
registryService.sendJobMessage(null, null, "ProcessExec", jobparamMap, p);
// 元の詳細画面へ戻す
var pkey = p.request.getParameter("pkey");
return "redirect:showModel1.do?pkey="+pkey;
}
メッセージキューの設定
特定のメッセージングミドルウェアを指定する
p.appctx.getBean("JfcjobstatusRegistryServiceAmqpImpl")
p.appctx.getBean("JfcjobstatusRegistryServiceJmsImpl")