注文後に g_form.getControl メソッドが動作しない 説明 g_form.getControl メソッドは、sc_req_item および sc_task テーブルでは動作しません。この機能は、g_sc_form と一緒に使用した場合にのみ動作します。g_sc_form の使用方法は製品ドキュメントには記載されていません。 再現手順 次の変数を作成します。 タイプ:1 行テキスト名前:MyVariable質問:MyVariable の質問 カタログクライアントスクリプトを作成します。 タイプ:onLoad名前:OL適用:3 つのボックスすべてにチェックを入れるスクリプト: function onLoad() {var myControl = g_form.getControl('MyVariable');alert(myControl);} 次に、アイテムを注文し、注文を表示します。 次のテキストアラート:未定義 根本原因:g_form が ServiceCatalogForm として実装されているため、この機能は注文時に動作します。 このクラスは、「Glide クラスの概要」で概説されている機能を一般的にサポートしています。 ただし、注文後の g_form は GlideForm です。この実装は、ServiceNow のドキュメントで説明されているように、getControl メソッドを正しくサポートしていないだけでなく、setMandatory メソッドを使用する際の長時間実行されるスクリプトの問題など、他の問題の原因にもなります。 ワークアラウンド ワークアラウンドとしては、g_sc_form オブジェクトを使用し、その getControl 関数を呼び出します。 次の例は、getControl を使用する前に g_sc_form が使用可能かどうかを正しく確認する方法を示しています。 var form = typeof g_sc_form != "undefined" ? g_sc_form : g_form; var myControl = form.getControl("VARIABLE"); 関連する問題:PRB620307