サービス ポータルおよびクライアント スクリプト
UI タイプが [モバイル/サービス ポータル] または [すべて] に設定されている場合、クライアント スクリプトとカタログ クライアント スクリプトを サービスポータル で使用できます。クライアント スクリプトとカタログ クライアント スクリプトは、ウィジェット クライアント コントローラーではなく、フォーム ウィジェットと SC カタログ アイテム ウィジェットで使用されます。
スクリプトに [モバイル/サービス ポータル] または [すべて] としてフラグを付ける前に、モバイル API のみを使用していることを確認してください。クライアント スクリプトを [モバイル] に設定しても、それが機能することは保証されません。スクリプトがモバイル アプリまたは サービスポータル によって試行される必要があるというフラグが設定されるだけです。既存のクライアント スクリプトの多くは、API コールがモバイル クライアント スクリプト環境でサポートされている限り [すべて] に設定できます。
このセクションのトピックでは、高度なコーディングの知識と サービスポータル API についての理解が必要です。
デスクトップとモバイル ランタイムの確認
デスクトップとモバイルの両方と互換性があるクライアント スクリプトをマークして、ランタイムに依存する動作を含めることをお勧めします。次のスクリプトを使用することができます。
if (window === null)
// Write your mobile compatible code here
else
// Write your desktop compatible code hereサポートされていないクライアント スクリプト グローバル
次のグローバルと API は、サービスポータル で使用されているクライアント スクリプトとカタログ クライアント スクリプトで使用できません。
- $
- $$
- $j
- angular
- control
- ドキュメント
- jQuery
- window
注:
ウィジェット クライアント コントローラーは完全な角度コントローラーであり、ここに記載されているサポートされていないクライアント スクリプト グローバルに依存しません。必要に応じて jQuery と Angular を使用します。
埋め込みウィジェットと g_form
サービス カタログ変数タイプマクロおよびラベル付きマクロを使用するときは、カタログ アイテム フォームに埋め込むウィジェットを選択することができます。埋め込みウィジェットのクライアント コントローラー内では、以下を使用してフィールド オブジェクトとカタログ アイテム g_form インスタンスにアクセスできます。
$ scope.page.field$scope.page.g_form()
サービスポータル で使用されるクライアントスクリプト
g_list グローバルは、Glide リスト要素またはリストコレクター変数のフィルターを設定するのに役立ちます。デスクトップ クライアント スクリプトで g_filter API の代わりにこの API を使用します。
function onLoad() {
var myListCollector = g_list.get("my_list_collector");
myListCollector.reset();
myListCollector.setQuery("active=true^category=8c7b22230b402200b0b02c6317673a62");
myListCollector.addItem('3a700d39af5f4fc0aab978df90f4c692', 'Power Supply');
myListCollector.addItem('1cb93419a3a248318da8f814140b42f6', 'Backpack');
}g_service_catalog は サービスポータル のサービスカタログアイテムスクリプトでのみ使用可能です。この API を使用して、カタログ アイテム スクリプトがオーダー ガイドの一部として実行されるのか、または単独で実行されるのかを知ることができます。
function onLoad() {
if (window) // if CMS, don't run this
return;
// g_service_catalog api for Service Portal and Mobile
var isOrderGuide = g_service_catalog.isOrderGuide();
g_form.setValue("is_order_guide", isOrderGuide ? "Yes!" : "Nope :(");
}