スクリプト開発モデルのジョブプログラム内でグローバル関数の「execute」とジョブプログラム内の「execute」関数が競合してジョブを実行できません。グローバル関数の「execute」は利用できないのでしょうか?

 
【原因】
 言語仕様のため。スコープの関係からthisのexecuteが呼ばれてしまいます。

【対応方法】
 スコープが異なるようにしてください。

  例:Procedureで定義する方法
----------------------------------------
Procedure.define("foo", new Foo());

 function Foo() {
    this.executeRuntime = executeRuntime;
  }

  function executeRuntime() {
    execute("command"); // グローバル関数execute実行
  }

----------------------------------------
上記のコードをジョブプログラムファイル以外で関数定義し、ジョブプログラムから呼び出し可能な状態にします。
Procedure.define についてはAPIドキュメントを参照ください。
https://www.intra-mart.jp/apidoc/iap/apilist-ssjs/doc/platform/Procedure/index.html
Procedure.foo.executeRuntime() はジョブのexecute内で実行できます。

-- 対象 ------------------------------------------------------------------------
iAP/Accel Platform/全アップデート
--------------------------------------------------------------------------------


FAQID:534
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています
Powered by Zendesk