RAMP アプリケーションはデザイン・モードで実行できても、エンド・ユーザー・モードでは次のようなエラーが表示される場合があります。


 
この問題の原因

RAMP をデザイン・モードで実行する場合とエンド・ユーザー・モードで実行する場合の大きな違いは、javascript の実行方法です。 

デザイン・モードでは、RAMP に影響する変更が行われた場合、フレームワークを保存するたびに javascript は再ロードされます。javascript が再ロードされると、オブジェクトのプロパティは常にリセットされます。また、有効になっている RAMP が変更された場合、フレームワークが保存されるたびに、一連の javascript ファイル (<システム接頭辞>Nodes_nnnnnnnnnnnnnnnnnn.js) が生成されます。このファイルは各セッションに 1 つずつ生成され、nnnnnnnnnnnnnnnn はセッション ID を表しています。

このファイルがエンド・ユーザー・モードで使用されるファイルです。このファイルは、フレームワークが保存された時に javascript として書き出された画面とスクリプトを表します。 

エンド・ユーザー・モードでは、このファイルはセッションごとに 1 回ロードされます。ファイル内の各 javascript ファンクションは、セッション起動時に 1 回だけ呼び出されます。この方法を使うことで、エンド・ユーザー・モードの RAMP の起動時間はデザイン・モードと比較して大幅に短縮されます。

デザイン・モードで RAMP を実行した場合にエラーが発生せず、しかしエンド・ユーザー・モードでは上記のようなエラーが発生する場合、一番に疑われる問題はユーザー定義スクリプト(ナビゲーション・スクリプト、呼び出しなど)に構文エラーがあることです。 

解決策

javascript のどの行にエラーがあるかを探すには、ファイルを基本.HTM ファイルにロードするだけです。 

たとえば、次のような内容の test.htm というファイルを作成します。

     <html>
<head>
   <title>Untitled Page</title>
   <script language="javascript" type="text/javascript" src="<your nodes.js file here>"></script>
</head>
<body>
Hello World
</body>
</html>

nodes.js ファイル名を <script> タグの src= 属性に指定して、Test.htm を javascript と同じフォルダーに配置します。

Internet Explorer を使用して、ツール/インターネット オプションの詳細設定タブをチェックし、「スクリプト エラーごとに通知を表示する」にチェックマークが付いていることを確認します。これで Test.htm を実行してスクリプト・エラーが発生すると、エラーが発生した場所の行番号を表示できます。ヒント: エラーは、次のような javascript ファンクションの内部に存在する可能性が最も高いと思われます。

     function _UF_nnnnnnnnnnnnnnnnnnnnnnnn(objScriptInstance) 

これと実際のスクリプト名を関連付けることは少し困難です。この実際のスクリプトを探すには、ファンクション名の nnnnnnnnnnnnnnnn 部分と同じファイル内を検索します。次に、そのスクリプトがオブジェクトとして定義され、さらにユーザー名 (oS.uScriptUserName="NAVIGATE_SCRIPT_13"など) が含まれている javascript 行を検索します。

RAMP ツールを使用してスクリプトを編集し、エラーを修正して保存します。