「JavaScriptを使用して変換」データ コンバータで"Set" is undefinedエラーが発生する場合の対応法

フォローする

概要

「JavaScriptを使用して変換」データ コンバータで Set オブジェクトを使う場合、"Set" is undefinedエラーが発生する可能性があります。

例えば、下記のようなカンマ区切りの文字列から重複の項目を削除するロジックを「JavaScriptを使用して変換」データ コンバータで実装する場合、該当エラーが発生します。

OUTPUT = testFunc(INPUT);
function testFunc(param){

 const arraySrc = param.split(",");
 const setTar = new Set(arraySrc);
 const arrayTar = Array.from(setTar);

 return arrayTar.join(",");
}

原因に関しては、SetオブジェクトはECMAScript 6 で追加された機能であり、「JavaScriptを使用して変換」データ コンバータは、ECMAScript 5、ECMAScript 6 ともにサポートしていないClassic エンジン※1を利用している為となります。
対策としては、Webkitエンジン※2を使うステップを利用し、ポリフィルを設定することで解決することが可能です。

※1.Classicエンジンでは、ECMAScript3までの関数と構文に対応しています。
※2.Classicエンジンでは、ポリフィル機能をサポートしておりません。

エラーメッセージ

JavaScriptでエラーが発生しました:TypeError."Set" is undefined.

対処方法

上記のスクリプトを例として、エラーの解消方法を説明します。実際には、お客様の判断で用途に沿った形に合わせて、下記設計例をご参考ください。

Step1、「ページ作成(Create Page)」ステップで任意のページを作成し、必要な Javascript オブジェクトのポリフィルを設定する上で、処理対象の配列の変数値をHTMLページに書き込みます。
Step2、「Javascriptの実行(Execute JavaScript)」ステップで、HTML要素を操作することで処理ロジックを実装し、処理結果を新のHTML要素としてページに書き込みます。
Step3、「抽出(Extract  xxx)」ステップで、処理結果を格納するHTML要素の値を抽出し、変数に格納します。

全体の設計イメージは以下となります。


●「ページ作成(Create Page)」ステップ
①.Javascriptポリフィル設定
必要のJavascriptオブジェクト(こちらでは、「Array」、「セット」となります)を追加します。
設定場所:ステップの設定>アクションタブ>オプション(設定ボタン)>Javascript実行タブ>Javascriptポリフィル欄


②.処理対象の変数(param_input)をHTMLページに書き込みます。
設定場所:ステップの設定>アクションタブ>コンテンツ欄

・コンテンツ欄:"<element_in id='id_input'>" + param_input +"</element_in>"

●「Javascriptの実行(Execute JavaScript)」ステップ
​​​
①.ページ作成ステップで書き込んだ変数 param_input の値を読み込みます。
②.処理ロジックを実装します。
③.処理結果を新のHTML要素としてページに書き込みます。

●「抽出(Extract Result(Extract Param Output)」ステップ
HTML要素から処理後の値を読込んで、変数に格納します。
・ファインダータブ>タグパス欄:.*.element_out
・アクションタブ>変数欄:param_output
  変数「param_output」はもともと return で返却した値となります。

注意事項

・ポリフィル機能は、Ver.10.4から利用可能です。
・ポリフィル機能でサポートされていないオブジェクト、APIを使用している場合、若しくは、Webkitエンジンを利用する場合の対応方法は、内蔵ブラウザエンジン(Webkit/Classic)でサポートしていないJavaScriptをご参考ください。
・Javascriptの内容に関してはサポート対象外です。お客様判断で作成・実行をお願いします。

参考

・Webブラウザエンジンの使い分けに関しては、Webサイトを操作する際のWebブラウザエンジンの使い分けについてをご参考ください。 

・「JavaScriptを使用して変換」データ コンバータは、URL のリライトなどの高度なテキスト操作の作業や、複雑な計算を行うときに適用します。詳細は下記ヘルプ資料をご参考ください。

https://docshield.kofax.com/RPA/ja_JA/10.7.0_oc6xl3vcnp/help/kap_help/reference/c_convertusingjavascript.html

区分 確認Ver
トラブルシュート 10.7.0.4