バッチジョブでグローバル関数の「execute()」の呼び出し方

2018-02-07イントラマート

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」は利用できないのでしょうか?を参考にしました。

株式会社システムトラスト

イントラマートの導入・開発についてなど気軽にご相談ください。

お問合せ

 

株式会社システムトラスト

人材募集中です。

システムトラストでは、システムエンジニア、プログラマーなどを随時募集中です。気軽にご相談ください。

お問合せ