サービスポータル API - ServiceNow Fluent
サービスポータル API は、ポータルページのカスタムウィジェット [sp_widget] を定義します。
ポータルに関する一般的な情報については、「 Service Portal」を参照してください。
SPWidget オブジェクト
ポータルページに含めるカスタムウィジェット [sp_widget] を作成します。
カスタムウィジェットの作成に関する一般的な情報については、「 Developing custom widgets」を参照してください。
| 名前 | タイプ | 説明 |
|---|---|---|
| $id | 文字列または数値 | 必須。メタデータオブジェクトの一意の ID。アプリケーションをビルドすると、この ID は一意のsys_idにハッシュされます。詳細については、「ServiceNow Fluent 言語構成」を参照してください。 形式: |
| name | 文字列 | 必須。ウィジェットの名前。 |
| category | 文字列 | ウィジェットのタイプ。 有効な値:
デフォルト:カスタム |
| クライアントスクリプト | スクリプト | AngularJS コントローラーを定義するクライアント側スクリプト。 このプロパティは、インライン JavaScript、またはスクリプトを含むアプリケーション内の別のファイルへの参照をサポートします。 Format (形式):
Default (デフォルト): |
| サーバースクリプト | スクリプト | ウィジェットの初期状態を設定するサーバー側スクリプト、 データ オブジェクトを使用してウィジェットのクライアントスクリプトにデータを送信するサーバー側スクリプト、またはサーバー側のクエリーを実行するスクリプト。 このプロパティは、インライン JavaScript、またはスクリプトを含むアプリケーション内の別のファイルへの参照をサポートします。 Format (形式):
Default (デフォルト):
|
| controllerAs | 文字列 | ディレクティブのスコープ内のコントローラーへの参照の変数。クライアントスクリプトは、デフォルトで c.data 変数を使用してサーバーデータオブジェクトにアクセスします。デフォルト値:c |
| htmlTemplate | 文字列 | ページが表示されるときに何をレンダリングするかを定義する本文 HTML コード。静的 XHTML、Jelly として定義された動的に生成されたコンテンツを含めるか、またはスクリプトインクルードと UI マクロを呼び出すことができます。 このプロパティは、HTML またはインライン HTML を含むアプリケーション内の別のファイルへの参照をサポートします。 Format (形式):
Default (デフォルト): |
| customCss | 文字列 | ウィジェットのスタイルを定義する CSS または SCSS。 このプロパティは、CSS またはインライン CSS を含むアプリケーション内の別のファイルへの参照をサポートします。 Format (形式):
|
| データテーブル | 文字列 | ウィジェットインスタンスオプションを格納するテーブル。カスタムオプションスキーマを定義するには、ウィジェットインスタンス [sp_instance] テーブルを拡張するテーブルにフィールドを追加し、拡張テーブルをデータソースとして使用するようにウィジェットを設定します。詳細については、「Store instance options in a table」を参照してください。 デフォルト値:sp_instance |
| デモデータ | 文字列またはオブジェクト | ウィジェットの機能を示すデータ。このプロパティは、インライン文字列、JSON を含むアプリケーション内の別のファイルへの参照、またはインライン JSON シリアル化可能オブジェクトをサポートします。 Format (形式):
|
| 説明 | 文字列 | ウィジェットとその目的の説明。 |
| ドキュメント | 参照 | ウィジェットとその目的に関する追加情報を提供する サービスポータル ドキュメント [sp_documentation] の変数識別子。 サービスポータルドキュメントを定義するには、「レコード API - ServiceNow Fluent」を参照してください。 |
| フィールド | アレイ | ウィジェットオプションスキーマで使用するデータテーブルの列名のリスト。 |
| hasPreview | ブール | ウィジェットエディターからウィジェットをプレビューできるかどうかを示すフラグ。 有効な値:
デフォルト値:false |
| ID | 文字列 | ウィジェットの一意の ID。ID にスペースを含めることはできません。 |
| リンクスクリプト | スクリプト | AngularJS を使用して DOM を直接操作するリンク関数。 このプロパティは、インライン JavaScript、またはスクリプトを含むアプリケーション内の別のファイルへの参照をサポートします。 Format (形式):
Default (デフォルト): |
| ロール | アレイ | ものにアクセスできるロールオブジェクトの変数識別子またはロールの名前のリスト ウィジェット。 詳細については、「ロール API - ServiceNow Fluent」を参照してください。 |
| オプションスキーマ | アレイ | サービスポータルアドミニストレーター (sp_admin) がウィジェットインスタンスに設定できるパラメーターのリスト。ウィジェットオプションスキーマは、ウィジェットの再利用と、異なるページでのウィジェットのインスタンスの一意の構成をサポートしています。詳細については、「Widget option schema」を参照してください。
|
| 公開 | ブール | 非認証ユーザーがウィジェットを利用できるかどうかを示すフラグ。 有効な値:
デフォルト値:false |
| 依存関係 | アレイ | SPWidgetDependency オブジェクトの変数識別子のリスト、またはウィジェットの依存関係の名前またはsys_ids。詳細については、「SPWidgetDependency オブジェクト」を参照してください。 |
| angularProvider | アレイ | SPAngularProvider オブジェクトの変数識別子のリスト、またはウィジェットの Angular プロバイダーの名前またはsys_ids。詳細については、「SPAngularProvider オブジェクト」を参照してください。 |
| テンプレート | アレイ | ウィジェットに関連付ける Angular ng テンプレート [sp_ng_template] のリスト。Angular ng テンプレートには、レンダリングを指示した場合にのみレンダリングされるコンテンツが含まれています。
|
| $meta | オブジェクト | アプリケーションメタデータのメタデータ。 installMethod プロパティを使用すると、特定の状況でのみロードされる出力ディレクトリにアプリケーションメタデータをマップできます。 installMethod の有効な値:
|
import { SPWidget } from '@servicenow/sdk/core'
SPWidget({
$id: 'my_simple_widget',
name: 'My Simple Widget',
category: 'knowledgeBase',
clientScript: Now.include('./client.js'),
serverScript: Now.include('./server.js'),
controllerAs: '$ctrl',
customCss: Now.include('./custom_css.css'),
dataTable: 'sp_instance',
demoData: { message: 'Hello, World!' },
description: 'This is a test widget',
docs: widgetDoc,
htmlTemplate: Now.include('./template.html'),
fields: ['color', 'class_name'],
hasPreview: true,
id: 'my-simple-widget',
linkScript: Now.include('./link.client.js'),
optionSchema: [
{
name: 'my_option',
label: 'My Option',
type: 'string',
section: 'behavior'
}
],
roles: [manager, 'admin'],
})
SPAngularProvider オブジェクト
Angular プロバイダー [sp_angular_provider] を作成して、複数のウィジェットでコンポーネントを再利用し、ポータルのパフォーマンスを向上させます。
| 名前 | タイプ | 説明 |
|---|---|---|
| $id | 文字列または数値 | 必須。メタデータオブジェクトの一意の ID。アプリケーションをビルドすると、この ID は一意のsys_idにハッシュされます。詳細については、「ServiceNow Fluent 言語構成」を参照してください。 形式: |
| name | 文字列 | 必須。Angular プロバイダーの名前。 |
| クライアントスクリプト | スクリプト | ウィジェットで再利用するクライアント側スクリプト。このプロパティは、インライン JavaScript、またはスクリプトを含むアプリケーション内の別のファイルへの参照をサポートします。 Format (形式):
|
| タイプ | 文字列 | Angular プロバイダーのタイプ。 有効な値:
デフォルト:directive |
| 必要な条件 | アレイ | 他の SPAngularProvider オブジェクトの変数識別子、または Angular プロバイダーの名前またはsys_idsのリスト。 |
| $meta | オブジェクト | アプリケーションメタデータのメタデータ。 installMethod プロパティを使用すると、特定の状況でのみロードされる出力ディレクトリにアプリケーションメタデータをマップできます。 installMethod の有効な値:
|
import { SPAngularProvider } from '@servicenow/sdk/core'
const OTHER_ANGULAR_PROVIDER = 'd11f285fe069e1f119b44bd05c0770aa'
SPAngularProvider({
$id: 'my_angular_provider',
name: 'my_angular_provider',
clientScript: Now.include('my_angular_provider.client.js'),
type: 'directive',
requires: [OTHER_ANGULAR_PROVIDER]
})
SPWidgetDependency オブジェクト
ウィジェットの依存関係 [sp_dependency] を作成して、JavaScript および CSS ファイルをウィジェットにリンクし、サードパーティのライブラリ、外部スタイルシート、または Angular モジュールを使用します。
依存関係は、必要に応じてサーバーから非同期にロードされます。ウィジェットには、必要な数の依存関係を含めることができます。ただし、追加すればするほど、ウィジェットがページに表示するためにダウンロードする必要があるコンテンツが増えます。ロード時間を短くするため、依存関係はできる限り少なくしてください。詳細については、「Create a widget dependency」を参照してください。
| 名前 | タイプ | 説明 |
|---|---|---|
| $id | 文字列または数値 | 必須。メタデータオブジェクトの一意の ID。アプリケーションをビルドすると、この ID は一意のsys_idにハッシュされます。詳細については、「ServiceNow Fluent 言語構成」を参照してください。 形式: |
| name | 文字列 | 必須。ウィジェット依存関係の名前。 |
| angularモジュール名 | 文字列 | JS インクルードが Angular モジュールである場合にロードする Angular モジュールの名前。 |
| includeOnPageLoad | ブール | 依存関係がページにロードされるタイミングを示すフラグ。 有効な値:
デフォルト値:false |
| cssIncludes | アレイ | CssInclude オブジェクトの変数識別子または CSS インクルードのsys_idsとその順序のリスト。詳細については、「CssInclude オブジェクト」を参照してください。 |
| jsIncludes | アレイ | JsInclude オブジェクトまたは JS インクルードのsys_idsのリスト変数識別子とその順序。詳細については、「JsInclude オブジェクト」を参照してください。 |
| portalsForPageLoad | アレイ | ウィジェットの依存関係をロードするポータル [sp_portal] のsys_idsのリスト。空の場合、依存関係はすべてのポータルのページロードに含まれます。 |
| $meta | オブジェクト | アプリケーションメタデータのメタデータ。 installMethod プロパティを使用すると、特定の状況でのみロードされる出力ディレクトリにアプリケーションメタデータをマップできます。 installMethod の有効な値:
|
import { SPWidgetDependency } from '@servicenow/sdk/core'
SPWidgetDependency({
$id: 'samplejs',
name: 'Sample',
angularModuleName: 'samplejs',
includeOnPageLoad: true,
portalsForPageLoad: ['b4572a48262a16df3032b48cef75a853', 'fe12dbbed14bd3f712f0787141c2f656'],
cssIncludes: [
{
order: 100,
include: localCss,
},
{
order: 200,
include: '94112ccb0fb3c2ed072b01d3cb401196',
},
],
jsIncludes: [
{
order: 100,
include: localJs,
},
{
order: 200,
include: 'f8af18a5e6c71a3702c4f2038b43cf62',
},
],
})
CssInclude オブジェクト
CSS インクルード [sp_css_include] を作成して、ウィジェット依存関係内のスタイルシートまたは外部 CSS を参照します。
| 名前 | タイプ | 説明 |
|---|---|---|
| $id | 文字列または数値 | 必須。メタデータオブジェクトの一意の ID。アプリケーションをビルドすると、この ID は一意のsys_idにハッシュされます。詳細については、「ServiceNow Fluent 言語構成」を参照してください。 形式: |
| name | 文字列 | 必須。CSS インクルードの名前。 |
| URL | 文字列 | 外部 CSS ファイルへの URL。スタイルシートに spCss プロパティが指定されていない場合、このプロパティは必須です。 |
| spCs | 文字列 | スタイルシート [sp_css] のsys_id。このプロパティは、外部 CSS ファイルに url プロパティが指定されていない場合に必要です。 |
| rtlCssUrl | 文字列 | セッション言語がヘブライ語などの右から左に記述する言語である場合に、ウィジェットの方向をミラーリングするための外部右から左 (RTL) CSS ファイルの URL。詳細については、「Styling for right-to-left languages in portals」を参照してください。 |
| lazyLoad | ブール | CSS インクルードのロード方法を示すフラグ。このプロパティは、 spCSS プロパティを使用してスタイルシートを指定する場合にのみ適用されます。 有効な値:
デフォルト値:false |
| $meta | オブジェクト | アプリケーションメタデータのメタデータ。 installMethod プロパティを使用すると、特定の状況でのみロードされる出力ディレクトリにアプリケーションメタデータをマップできます。 installMethod の有効な値:
|
import { CssInclude } from '@servicenow/sdk/core'
const localCss = CssInclude({
$id: '22bcf16da81e2bc0340c53d50d531adf',
name: 'Sample Styles',
spCss: '50e3e32aa321b1c7d1945c5f423228bd',
})
JsInclude オブジェクト
ウィジェット依存関係内の UI スクリプトまたは外部 JavaScript コードを参照するための JS インクルード [sp_js_include] を作成します。
| 名前 | タイプ | 説明 |
|---|---|---|
| $id | 文字列または数値 | 必須。メタデータオブジェクトの一意の ID。アプリケーションをビルドすると、この ID は一意のsys_idにハッシュされます。詳細については、「ServiceNow Fluent 言語構成」を参照してください。 形式: |
| name | 文字列 | 必須。JS インクルードの名前。 |
| URL | 文字列 | 外部 JavaScript ファイルへの URL。URL は絶対パスである必要があります。このプロパティは、UI スクリプトに sysUiScript プロパティが指定されていない場合に必要です。 |
| sysUiScript | 文字列 | UI スクリプト [sys_ui_script] のsys_id。このプロパティは、外部 JavaScript ファイルに url プロパティが指定されていない場合に必要です。 |
| $meta | オブジェクト | アプリケーションメタデータのメタデータ。 installMethod プロパティを使用すると、特定の状況でのみロードされる出力ディレクトリにアプリケーションメタデータをマップできます。 installMethod の有効な値:
|
import { JsInclude } from '@servicenow/sdk/core'
const localJs = JsInclude({
$id: '98239e4eadfac88b01cce7daa23b6fc3',
name: 'Sample Framework',
sysUiScript: 'b67af05645f738df1f286bb3e9ecd55f',
})