1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

intra-mart ユーザー定義 JavascriptのVerについて

Posted at

intra-martのユーザー定義のJavascriptを作成して、エラーになったので、備忘録として残す。

Javascript

ArrayBufferを使うために、以下の機能を作成した。

function str2ab(str) {
  const buf = new ArrayBuffer(str.length);
  const bufView = new Uint8Array(buf);
  for (let i = 0, strLen = str.length; i < strLen; i++) {
    bufView[i] = str.charCodeAt(i);
  }
  return buf;
}

実行結果

jp.co.intra_mart.system.javascript.EcmaError: ReferenceErrorです。""ArrayBuffer ""が定義されていません。

調査

IM-LogicDesignerのユーザ定義「Javascript」は、サーバサイドで実行されるJavascriptとなる。
サーバサイドJavascriptは、サードパーティライブラリとして Rhinoを導入し、バージョンは 1.7R4 を利用。

参照:2022 Spring(Eustoma) リリースノート : サードパーティ ライセンス一覧
https://document.intra-mart.jp/library/iap/public/iap_release_note/texts/license/index.html

Rhino 1.7R4 は、JavaScript 1.7 で利用可能な内容、および、一部の JavaScript 1.8 や ES2015 以降の書き方が利用可能。

参照:Rhino ES2015 Support
https://mozilla.github.io/rhino/compat/engines.html

原因

ArrayBufferは、サーバサイドJavascriptエンジンであるRhinoでサポートをしていないメソッドであることがエラーの原因。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?