バッチジョブでグローバル関数の「execute()」の呼び出し方
intra-mart Accel Platformからバッチジョブでグローバル関数の「execute()」は通常のやり方では呼び出せません。
原因はバッチジョブの呼び出し用エントリポイントの関数名が「execute()」に変更になったためです。
ただスコープを切り替えて呼び出すと実行できるようなので、その方法をまとめておきます。
イントラマートとは
株式会社NTTデータイントラマート社が開発・販売している、Webアプリケーションシステムのシステム共通基盤(統合型フレームワーク)で、国内の著名企業を中心に6,000社以上に導入されています。
イントラマートを導入することにより、Webシステム開発における短納期・低コスト・標準化推進・品質向上を実現できます。
詳しくはこちらをご覧ください。
バッチジョブからグローバル関数の「execute()」を呼び出す
intra-mart Accel Platformからバッチジョブの呼び出し用エントリポイントの関数名が「execute()」に変更になりました。
(intra-mart WebPlatform7.xではエントリポイントの関数名は「init()」でした。
//バッチ処理のメイン(呼び出し用エントリポイント) function execute(request) { ・ ・ ・ }
となるのでバッチジョブで登録された処理からグローバル関数の「execute()」は通常のやり方では呼び出せません。
intra-mart Accel Platformのバッチジョブからグローバル関数の「execute()」を呼び出す場合は、スコープを切り替えて呼び出す必要があります。
//バッチ処理のメイン(呼び出し用エントリポイント) function execute(request) { ・ ・ ・ var ret=Procedure.foo.executeRuntime(); } ・ ・ ・ //別ファイルに作成してincludeする。 Procedure.define("foo", new Foo()); function Foo() { this.executeRuntime = executeRuntime; } function executeRuntime() { return execute( "実行するコマンドライン文字列" ); }
イントラマートQ&Aサイト
スクリプト開発モデルのジョブプログラム内でグローバル関数の「execute」とジョブプログラム内の「execute」関数が競合してバッチを実行できません。グローバル関数の「execute」は利用できないのでしょうか?を参考にしました。