UI ページ API - ServiceNow Fluent
UI ページ API は、フォーム、ダイアログ、リスト、およびその他の UI コンポーネントを表示するカスタムユーザーインターフェイス (UI) ページ [sys_ui_page] を定義します。
UI ページは Web ページとして表示され、ダッシュボードで使用するためにウィジェットに追加できます。UI ページの一般的な情報については、「 UI pages」を参照してください。
UI ページ API を使用して簡単な React アプリケーションを開発できます。src/client ディレクトリに、ページの HTML、クライアントスクリプト、およびスタイルを定義する静的コンテンツファイルを追加します。UiPage オブジェクトから、ページの HTML エントリーポイント (index.html) を参照します。詳細については、「Reactによるユーザーインターフェース開発」を参照してください。
UiPage オブジェクト
カスタムユーザーインターフェイスの UI ページ [sys_ui_page] を作成します。
| 名前 | タイプ | 説明 |
|---|---|---|
| $id | 文字列または数値 | 必須。メタデータオブジェクトの一意の ID。アプリケーションをビルドすると、この ID は一意のsys_idにハッシュされます。詳細については、「ServiceNow Fluent 言語構成」を参照してください。 形式: |
| endpoint | 文字列 | 必須。Web ページにアクセスするためのエンドポイント。エンドポイント値にスペースを含めることはできません。 形式: |
| 説明 | 文字列 | ユーザーインターフェイスとその目的の説明。 |
| 直接 | ブール | UI ページで標準の HTML、CSS、および JavaScript を省略するかどうかを示すフラグ。React UI ページの場合は、このプロパティを true に設定します。有効な値:
デフォルト値:false |
| html | 文字列 | ページが表示されるときに何をレンダリングするかを定義する本文 HTML コード。静的 XHTML、Jelly として定義された動的に生成されたコンテンツを含めるか、またはスクリプトインクルードと UI マクロを呼び出すことができます。このプロパティは、React 開発用の index.html ファイルをインポートするためのエイリアス、HTML を含むアプリケーション内の別のファイルへの参照、またはインライン JavaScript をサポートします。 注: React 開発とインポートされた HTML では、UiPage オブジェクトの html プロパティは一方向の同期のみをサポートします。ソースコードで UI ページの HTML を定義した後、HTML がソースコードの外部で変更された場合、それらの変更は同期されず、ソースコードに反映されません。 Format (形式):
|
| category | 文字列 | UI ページのタイプ。 有効な値:
|
| clientScript | スクリプト | ボタンによって呼び出される機能など、ブラウザーで実行されるスクリプト。このスクリプトは、ページのロード後にフィールドやその他のインタラクティブな DHTML 機能にフォーカスを設定するなど、必要なクライアント側の処理をすべて処理します。 このプロパティは、インライン JavaScript、またはスクリプトを含むアプリケーション内の別のファイルへの参照をサポートします。 UI ページのクライアントスクリプトは Format (形式):
|
| processingScript | スクリプト | ページの送信時にサーバーで実行されるスクリプト。ページに <g:ui_form/> または <g:form/> タグで定義されたフォームがある場合に便利です。 このプロパティは、JavaScript モジュールからの関数、スクリプトを含むアプリケーション内の別のファイルへの参照、またはインライン JavaScript をサポートします。Format (形式):
|
| $meta | オブジェクト | アプリケーションメタデータのメタデータ。 installMethod プロパティを使用すると、特定の状況でのみロードされる出力ディレクトリにアプリケーションメタデータをマップできます。 installMethod の有効な値:
|
React を使用した UI 開発のこの例では、ページの HTML は src/client ディレクトリの index.html ファイルからインポートされます。
//incident-manager.now.ts
import '@servicenow/sdk/global'
import { UiPage } from '@servicenow/sdk/core'
import incidentPage from '../../client/index.html'
UiPage({
$id: Now.ID['incident-manager-page'],
endpoint: '<scope>_incident_manager.do',
description: 'Incident Response Manager UI Page',
category: 'general',
html: incidentPage,
direct: true,
})
index.html ファイルでは、<![CDATA[<script>]]> タグは、コンポーネントコードを含む src/client ディレクトリー内の main.jsx ファイルを参照します。
//index.html
<html>
<head>
<title>Incident Response Manager</title>
<!-- Initialize globals and Include ServiceNow's required scripts -->
<sdk:now-ux-globals></sdk:now-ux-globals>
<!-- Include your React entry point -->
<script src="./main.jsx" type="module"></script>
</head>
<body>
<div id="root"></div>
</body>
</html>