spUtil - クライアント
spUtil API は、サービスポータル ウィジェットクライアントスクリプトで一般的な機能を実行するユーティリティメソッドを提供します。
- 通知エラーメッセージを表示します。 spUtil - addErrorMessage(文字列メッセージ)
- 通知情報メッセージを表示します。 spUtil - addInfoMessage(文字列メッセージ)
- 些細な通知メッセージを表示します。 spUtil - addTrivialMessage(文字列メッセージ)
- 一意の識別子を作成します。 spUtil:createUid()
- 変数を含む文字列の書式を設定します。 spUtil - format(文字列、テンプレート、オブジェクトデータ)
- ウィジェットクライアントスクリプトにウィジェットモデルを埋め込みます。 spUtil - get(文字列 widgetId オブジェクトデータ)
- API 呼び出しに使用するすべてのヘッダーを取得します。 spUtil:getHeaders()
- 完全なホストドメインを返します。 spUtil - getHost()
- 設定名を渡して、ユーザー設定応答でコールバックを実行します。 spUtil - getPreference(文字列設定, 関数コールバック)
- 現在のサービスポータルの URL 情報を返します。 spUtil:getURL()
- 現在のクライアントがモバイルデバイスかどうかを確認します。 spUtil:isMobile()
- 指定された文字列内のカンマ区切り属性を解析します。 spUtil:parseAttributes(文字列属性)
- テーブルまたはフィルターの更新を監視し、コールバック関数から値を返します。 spUtil - recordWatch(オブジェクト $scope, 文字列テーブル, 文字列フィルター, 関数コールバック)
- サーバーを呼び出し、現在の オプション と データを サーバー応答に置き換えます。 spUtil - refresh(オブジェクト $scope)
- 指定したセレクタを持つ要素まで、指定した期間にわたってスクロールします。 spUtil - scrollTo(文字列セレクター, 数値時刻)
- ヘッダーのブレッドクラムを更新します。 spUtil - setBreadCrumb(オブジェクト $scope, アレイブレッドクラム)
- ユーザー設定を行います。 spUtil - setPreference(文字列プリフ, 文字列値)
- 検索ページを更新します。 spUtil - setSearchPage(文字列 searchPage)
- 指定されたスコープ内のサーバー上のデータオブジェクトを更新します。 spUtil - update(オブジェクト $scope)
ウィジェットの詳細については、「 サービスポータルウィジェット」を参照してください。
spUtil - addErrorMessage(文字列メッセージ)
通知エラーメッセージを表示します。
| 名前 | タイプ | 説明 |
|---|---|---|
| message | 文字列 | 表示するエラー メッセージ。 |
| タイプ | 説明 |
|---|---|
| なし |
spUtil.addErrorMessage("There has been an error processing your request")
spUtil - addInfoMessage(文字列メッセージ)
通知情報メッセージを表示します。
| 名前 | タイプ | 説明 |
|---|---|---|
| message | 文字列 | 表示するメッセージ。 |
| タイプ | 説明 |
|---|---|
| なし |
spUtil.addInfoMessage("Your order has been placed")
spUtil - addTrivialMessage(文字列メッセージ)
些細な通知メッセージを表示します。
些細なメッセージはしばらくすると消えます。
| 名前 | タイプ | 説明 |
|---|---|---|
| message | 文字列 | 表示するメッセージ。 |
| タイプ | 説明 |
|---|---|
| なし |
spUtil.addTrivialMessage("Thanks for your order")
spUtil:createUid()
一意の識別子を作成します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 一意の 32 文字の ID。 |
spUtil - get(文字列 widgetId オブジェクトデータ)
ウィジェットクライアントスクリプトにウィジェットモデルを埋め込みます。
コールバック関数は、完全なウィジェットモデルを返します。ウィジェットの詳細については、「 サービスポータルウィジェット」を参照してください。
| 名前 | タイプ | 説明 |
|---|---|---|
| widgetId | 文字列 | 埋め込むウィジェットのウィジェット ID またはsys_id。 |
| データ | オブジェクト | オプション。ウィジェットモデルに渡すパラメーターの名前/値のペア。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 埋め込みウィジェットのモデル。 |
データが渡されない場合。
spUtil.get("widget-cool-clock").then(function(response) {
c.coolClock = response;
});
渡されたデータあり。
spUtil.get('pps-list-modal', {title: c.data.editAllocations,
table: 'resource_allocation',
queryString: 'GROUPBYuser^resource_plan=' + c.data.sysId,
view: 'resource_portal_allocations' }).then(function(response) {
var formModal = response;
c.allocationListModal = response;
});
spUtil:getHeaders()
API 呼び出しに使用するすべてのヘッダーを取得します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| オブジェクト | API 呼び出しに使用するすべてのヘッダー。 |
spUtil - getHost()
完全なホストドメインを返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 完全なホストドメイン (hi.servicenow.com など) |
spUtil - getPreference(文字列設定, 関数コールバック)
設定名を渡して、ユーザー設定応答でコールバックを実行します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 設定 | 文字列 | 設定の名前。 |
| コールバック | 関数 | コールバック関数を定義します。 |
| タイプ | 説明 |
|---|---|
| なし |
spUtil:getURL()
現在のサービスポータルの URL 情報を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 現在のサービスポータルの URL。 |
spUtil - format(文字列、テンプレート、オブジェクトデータ)
変数を含む文字列をフォーマットします。
このメソッドは、文字列連結の代わりに使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| template | 文字列 | 変数代替の値を含む文字列テンプレート。 |
| データ | オブジェクト | テンプレート文字列で定義された変数の値を含むオブジェクト。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 変数の命名法の代わりに変数値を含む文字列。 |
spUtil.format('An error ocurred: {error} when loading {widget}', {error: '404', widget: 'sp-widget'})
出力:
'An error occurred: 404 when loading sp-widget'
spUtil:isMobile()
現在のクライアントがモバイルデバイスかどうかを確認します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| ブーリアン | 現在のクライアントがモバイルデバイスであるかどうかを示すフラグ。 有効な値:
|
spUtil:parseAttributes(文字列属性)
指定された文字列内のカンマ区切り属性を解析します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 属性 | 文字列 | 辞書レコードの [属性 ] フィールドなど、カンマ区切りの属性を含む文字列。 |
| タイプ | 説明 |
|---|---|
| アレイ | 解析された属性を含むオブジェクトのアレイ。 |
function getRefQualElements() {
var refQualElements = [];
if (field && field.attributes && field.attributes.indexOf('ref_qual_elements') > -1) {
var attributes = spUtil.parseAttributes(field.attributes);
refQualElements = attributes['ref_qual_elements'].split(';');
}
return refQualElements;
}
spUtil - recordWatch(オブジェクト $scope, 文字列テーブル, 文字列フィルター, 関数コールバック)
テーブルまたはフィルターの更新を監視し、コールバック関数から値を返します。
ウィジェット開発者がテーブルの更新にリアルタイムで応答できるようにします。たとえば、 recordWatch() を使用すると、簡易リストウィジェットはデータテーブルの変更をリッスンできます。レコードが追加、削除、または更新されると、ウィジェットは自動的に更新されます。
$scope引数を recordWatch() 関数に渡すときは、クライアントスクリプト関数のパラメーターに$scopeを挿入します。| 名前 | タイプ | 説明 |
|---|---|---|
| $scope | オブジェクト | コールバック関数によって更新されたデータオブジェクトのスコープ。 |
| table | 文字列 | 監視対象テーブル。 |
| フィルター | 文字列 | 監視するフィールドをフィルタリングします。 |
| コールバック | 関数 | オプション。コールバック関数を定義するパラメーター。 |
| タイプ | 説明 |
|---|---|
| Promise | コールバック関数の戻り値。 |
//A simple recordWatch function.
spUtil.recordWatch($scope, "live_profile", "sys_id=" + liveProfileId);
//In a widget client script
function(spUtil, $scope) {
/* widget controller */
var c =this;
// Registers a listener on the incident table with the filter active=true,
// meaning that whenever something changes on that table with that filter,
// the callback function is executed.
// The callback function takes a single parameter 'response', which contains
// the property 'data'. The 'data' property contains information about the changed record.
spUtil.recordWatch($scope, "incident", "active=true", function(response) {
// Returns the data inserted or updated on the table
console.log(response.data);
});
}
spUtil - refresh(オブジェクト $scope)
サーバーを呼び出し、現在の オプション と データを サーバー応答で置き換えます。
spUtil.refresh() の呼び出しは、server.refresh() の呼び出しと似ています。ただし、 spUtil.refresh() を呼び出すと、$scope オブジェクトを定義できます。
| 名前 | タイプ | 説明 |
|---|---|---|
| $scope | オブジェクト | 更新に対して定義されたスコープ。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | オプションとデータオブジェクトが更新されました。 |
spUtil - scrollTo(文字列セレクター, 数値時刻)
指定されたセレクターを持つ要素に、指定された期間にわたってスクロールします。
| 名前 | タイプ | 説明 |
|---|---|---|
| selector | 文字列 | スクロール先のセレクター。 |
| time | 番号 | 指定されたセレクターへのスクロールにかかった時間。 単位:ミリ秒 |
| タイプ | 説明 |
|---|---|
| なし |
spUtil - setBreadCrumb(オブジェクト $scope, アレイブレッドクラム)
ヘッダーのブレッドクラムを更新します。
| 名前 | タイプ | 説明 |
|---|---|---|
| $scope | オブジェクト | テーブルに定義されたスコープ。 |
| ブレッドクラム | アレイ | ブレッドクラムフィルターの作成に使用される条件。 |
| タイプ | 説明 |
|---|---|
| なし |
spUtil - setPreference(文字列プリフ, 文字列値)
ユーザー設定を設定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 設定 | 文字列 | 初期設定名 |
| value | 文字列 | 設定値 |
| タイプ | 説明 |
|---|---|
| なし |
spUtil - setSearchPage(文字列 searchPage)
検索ページを更新します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 検索ページ | 文字列 | 検索ページの名前。 |
| タイプ | 説明 |
|---|---|
| なし |
spUtil - update(オブジェクト $scope)
指定されたスコープ内のサーバー上のデータオブジェクトを更新します。
このメソッドは server.update() に似ていますが、渡すスコープを定義する $scope パラメーターが含まれています。
| 名前 | タイプ | 説明 |
|---|---|---|
| $scope | オブジェクト | 更新に対して定義されたスコープ。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 更新されたデータオブジェクト。 |
次の例には、ステータスフィールドの変更を監視し、フィルターを使用してすべてのアクティブな P1 を監視し、コールバック関数にデータをリフレッシュするかどうかを判断させる P1 ウィジェットが含まれています。data.changes プロパティには、更新されたフィールドのアレイが含まれています。いずれかのフィールドのステータスが変更されると、ウィジェットでデータが更新されます。
var q = "priority=1^active=true^EQ";
spUtil.recordWatch($scope, "incident", q, function(event, data) {
if (data.changes.includes("state")) { // only update if state was updated.
spUtil.update($scope);
}
});