サービスポータルとクライアントスクリプト
UI タイプが [モバイル/サービスポータル] または [すべて] に設定されている場合は、サービスポータルでクライアントスクリプトとカタログクライアントスクリプトを使用できます。クライアントスクリプトとカタログクライアントスクリプトは、ウィジェットクライアントコントローラーとは対照的に、フォームウィジェットと SC カタログアイテムウィジェットで使用されます。
スクリプトに [モバイル/サービスポータル ] または [すべて] のフラグを付ける前に、モバイル API のみを使用していることを確認してください。クライアントスクリプトを モバイル に設定しても、それが機能することを保証するわけではなく、モバイルアプリまたは サービスポータルでスクリプトを試行する必要があることを示すフラグが付けられるだけです。既存のクライアントスクリプトの多くは、API 呼び出しがモバイルクライアントスクリプト環境でサポートされている限り [ すべて ] に設定できます。
このセクションのトピックでは、高度なコーディング知識と サービスポータル API の理解が必要です。
デスクトップランタイムとモバイルランタイムの比較
クライアントスクリプトにデスクトップとモバイルの両方と互換性があることをマークできますが、ランタイムに依存する動作を含めます。次のスクリプトを使用できます。
if (window === null)
// Write your mobile compatible code here
else
// Write your desktop compatible code hereサポートされていないクライアントスクリプティンググローバル
次のグローバルと API は、 サービスポータルで使用されるクライアントスクリプトとカタログクライアントスクリプトでは使用できません。
- $
- $$
- $j
- 角度
- コントロール
- ドキュメント
- jQuery
- window
注:
ウィジェットクライアントコントローラーは完全な Angular コントローラーであり、ここにリストされているサポートされていないクライアントスクリプトグローバルの対象ではありません。必要に応じて 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 :(");
}