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

2018/02/07イントラマートintra-mart Accel Platform,スクリプト開発,im-BizAPI

記事内に広告が含まれています。

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

システムトラストでは一緒に働いていただける仲間を募集中です。
株式会社システムトラスト

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

お問合せ