- 新着としてマーク
 - ブックマーク
 - 購読
 - ミュート
 - RSS フィードを購読する
 - ハイライト
 - 印刷
 - 不適切なコンテンツを報告
 
02-06-2024 09:06 PM
コミュニティの皆様
ウィジェットのサーバースクリプトがアプリケーションスコープにより、挙動が違うのですがなぜでしょうか?
上記ソースのウィジェットを作成した際、
アプリケーションスコープGlobalで作成した場合は、何もエラーが出力されないのですが、
アプリケーションスコープHuman Resources Coreで作成した場合は下記のようなエラーが出力されます。
原因わかりますでしょうか?
解決済! 解決策の投稿を見る。
- 新着としてマーク
 - ブックマーク
 - 購読
 - ミュート
 - RSS フィードを購読する
 - ハイライト
 - 印刷
 - 不適切なコンテンツを報告
 
02-08-2024 07:32 AM
Global アプリケーションと Scoped アプリケーションの挙動の違いについてはブラックボックス化されているので具体的な仕様は分かりかねるのですが、エラー自体は出力内容のとおり、Server 側のスクリプトの2行目に起因するものです。
ウィジェットがページ上で初めてレンダリングを開始すると、まずサーバー スクリプトが実行され、3 つのグローバル オブジェクト (input、options、data) にアクセスします。input 変数は、クライアント スクリプトから送信されたデータ オブジェクトであるため、この変数は初めての初期化時は定義されません。
(参考)https://docs.servicenow.com/ja-JP/bundle/vancouver-platform-user-interface/page/build/service-portal...
Server script の input オブジェクトにはクライアントスクリプトから送信されたデータが入るのですが、Widget のロード時にはまず Server script から実行されるため、その時点では input オブジェクトは未定義 (undefined) となっています。
Server script の2行目で inputオブジェクト (undefined) から trigger プロパティを参照しようとしたが、そのようなプロパティは存在しない、というのがエラーの指摘内容です。
該当箇所で input が undefined でないかをチェックする処理を追加すれば、エラーは回避できます。
(function() {
  if(input && input.trigger){
     gs.addErrorMessage(input.msg);
  }
})();
- 新着としてマーク
 - ブックマーク
 - 購読
 - ミュート
 - RSS フィードを購読する
 - ハイライト
 - 印刷
 - 不適切なコンテンツを報告
 
02-08-2024 07:32 AM
Global アプリケーションと Scoped アプリケーションの挙動の違いについてはブラックボックス化されているので具体的な仕様は分かりかねるのですが、エラー自体は出力内容のとおり、Server 側のスクリプトの2行目に起因するものです。
ウィジェットがページ上で初めてレンダリングを開始すると、まずサーバー スクリプトが実行され、3 つのグローバル オブジェクト (input、options、data) にアクセスします。input 変数は、クライアント スクリプトから送信されたデータ オブジェクトであるため、この変数は初めての初期化時は定義されません。
(参考)https://docs.servicenow.com/ja-JP/bundle/vancouver-platform-user-interface/page/build/service-portal...
Server script の input オブジェクトにはクライアントスクリプトから送信されたデータが入るのですが、Widget のロード時にはまず Server script から実行されるため、その時点では input オブジェクトは未定義 (undefined) となっています。
Server script の2行目で inputオブジェクト (undefined) から trigger プロパティを参照しようとしたが、そのようなプロパティは存在しない、というのがエラーの指摘内容です。
該当箇所で input が undefined でないかをチェックする処理を追加すれば、エラーは回避できます。
(function() {
  if(input && input.trigger){
     gs.addErrorMessage(input.msg);
  }
})();
- 新着としてマーク
 - ブックマーク
 - 購読
 - ミュート
 - RSS フィードを購読する
 - ハイライト
 - 印刷
 - 不適切なコンテンツを報告
 
02-08-2024 06:18 PM
@Community Alums
詳しい解説ありがとうございます。
解決できました。
