UI ページ
UI ページは、フォーム、ダイアログ、リスト、その他の UI コンポーネントの作成と表示に使用できます。
ダッシュボードのウィジェットとして UI ページを使用します。UI ページを見つけるには、次に移動します。 .
この機能を使用するには、HTML または Jelly のナレッジが必要です。UI ページを使用して簡単な AngularJS アプリケーションを作成することもできます。
| フィールド | 説明 |
|---|---|
| 名前 | URL を介してページを呼び出すために使用される名前 (スペースを含めることはできません)。 |
| アプリケーション | 現在のアプリケーションスコープを表示します。 |
| 説明 | UI ページの説明とその使用目的。 |
| 直接 | 直接 UI ページ [sys_ui_page] の場合は、このチェックボックスをオンにします。直接 UI ページには、一般的な HTML、CSS、およびスクリプトは含まれません。この設定では、ページで使用するカスタム CSS と JavaScript を追加する必要があります。 |
| HTML | ページが表示されるときに何をレンダリングするかを定義する、ページのメインコンポーネント。静的 XHTML、Jelly として定義された動的に生成されたコンテンツを含めるか、またはスクリプトインクルードと UI マクロを呼び出すことができます。 注: GlideRecord/GlideDBQuery を GlideRecordSecure の代わりに使用すると、セキュリティ推奨メッセージが表示されます。 |
| クライアントスクリプト | ボタンによって呼び出される機能など、ブラウザーで実行されるクライアント側の JavaScript を含みます。これは、ページがロードされた後にフィールドやその他のインタラクティブな DHTML 機能にフォーカスを設定するなど、必要なクライアント側の処理を実行することを目的としています。 UI ページのクライアントスクリプトは <script/> タグ内でブラウザーに展開されるため、HTML フィールド内で同様にコンテンツを定義できます。代わりに [クライアントスクリプト] フィールドを使用してこれらのスクリプトを簡潔に定義し、Jelly および HTML の管理性を維持することができます。 |
| 処理スクリプト | ページが送信されたときにサーバーで実行されるスクリプト。これは、ページに <g:ui_form/> または <g:form/> タグで定義されたフォームがある場合に便利です。 注: GlideRecord/GlideDBQuery を GlideRecordSecure の代わりに使用すると、セキュリティ推奨メッセージが表示されます。 |
| obsolete-custom-processors | 注: この機能は廃止されました。従来の既存のカスタムプロセッサーは引き続きサポートされますが、新しいカスタムプロセッサーの作成は廃止されました。代わりに、Scripted REST APIs を使用します。 |
| フォームビューの関連リスト: | |
| アクセス制御 | UI ページのアクセス制御を表示および設定します。詳細については、「UI ページでアクセス制御を使用する」を参照してください。 |
| バージョン | UI ページのすべてのバージョンを表示します。バージョンを比較したり以前のバージョンに戻したりするには、このリストを使用します。 |
アクセス制御
UI ページは、次のパラメーターを指定して ACL を作成することで保護できます。
- タイプ:ui_page
- 操作:読み取り
- 名前:保護する UI ページの名前
- ロール:レコードへのアクセスが許可されているユーザーロール
高リスク UI ページ
- GlideRecordSecure の代わりに GlideRecord または GlideDBQuery を使用している注:これは [HTML] および [処理] スクリプトフィールドに適用され、クライアントスクリプトには適用されません。
- 対応する ACL が設定されていない
- パブリック UI ページであると示され、sys_public レコードに入力されている
- 高リスク UI ページを示すメッセージを表示している
- glide.installation.developer が true に設定されているインスタンスの場合。
- リソースが顧客インスタンスのカスタマイズされたコンテンツである場合
UI ページへのアクセス
各 UI ページには、アプリケーションスコープ、ページ名、および .do ファイル拡張子から計算された URL があります。
たとえば、glidewindow_example というページをデモシステムで表示するには、https://<instance name>.service-now.com/glidewindow_example.do に移動します。ページが example_app と呼ばれるカスタムアプリケーションの一部である場合は、代わりに https://<instance name>.service-now.com/x_example_app_glidewindow_example.do に移動します。
<j2:if test="$[!empty(sysparm_verbose)]"> <span>show extra stuff </span> </j2:if >これの一般的で実用的な例は、表示用のデータベースレコードの取得です。ユーザーのロールのリストを構築するには、ユーザーの sys_id を使用してパラメーターを渡します。次の UI ページを呼び出して、そのユーザーのロールのリストを Jelly コードで次のように表示します。
role_select.do?sysparm_user=5137153cc611227c000bbd1bd8cd2007 <j:set var = "jvar_user_id" value = "${sysparm_user}" />
<g:evaluate> var userRoles = new GlideRecord('sys_user_has_role');
userRoles.addQuery('user','${jvar_user_id}');
userRoles.query();
</g:evaluate>
<select id='select_role'>
<j:while test = "${userRoles.next()}">
<option value = "${userRoles.sys_id}"> ${userRoles.role.name} </option>
</j:while>
</select>ただし、予約済みの変数名 sys_id は注意すべき例外です。この変数には、URL の指定に関係なく、常に UI ページ自体の ID が含まれます。一般的な代替変数名は sysparm_id です。
URL パラメーターを使用してクライアントスクリプトを UI ページにロードしないでください。システムは、URL パラメーターによって渡されたスクリプトを評価しなくなりました。ご利用の実装がこの動作に依存している場合は、システムプロパティ[glide.security.disable_ui_pages_sysparm_client_script] を追加して false に設定すると、UI ページでスクリプトを渡す URL パラメーターの評価が一時的に許可されます。
UI ページでアクセス制御を使用する
UI ページレコードを作成または編集するときに、[UI ページ] フォームから直接アクセス制御を確認し、ロールベースのアクセス制御を追加します。
始める前に
既存の UI ページに追加されたアクセス制御は、関連リンクの下にある UI ページレコードを開くことでアクセスおよび編集できます。
必要なロール:security_admin および admin
手順
保護された UI ページ
アクセス制御と関連するセキュリティメッセージは、セキュリティを強化するためにリスクの高い UI ページに統合されています。
高リスク UI ページに情報メッセージが表示され、ロールベースのアクセス制御を UI ページに追加するように顧客に通知されます。
- ACL (アクセス制御リスト) がない場合
- [HTML] セクションまたは [処理スクリプト] セクション
で GlideRecordSecure の代わりに GlideRecord/GlideDBQuery が使用されている場合
- sys_publicで UI ページがパブリックとして設定されている場合 注:パブリック UI ページまたは GlideRecord を使用する場合は、ACL 欠落の警告は表示されません。
セキュリティに関する推奨事項のメッセージが表示される条件
このメッセージは、次の条件で表示されます。
- glide.installation.developer=true であるすべての内部インスタンス eclipse/IJ
- 顧客のすべてのスコープ対象 UI ページのリソース
- glide.script.ui_page.customer_scoped.security_msgs_enabled プロパティが true に設定されている場合のカスタマイズされた UI ページ(デフォルト値は true)。
セキュリティに関する推奨事項のメッセージが表示されない条件
次の条件では、メッセージは表示されません。
- UI ページが公開されていない
- UI ページが [グローバル] スコープにある
- glide.script.ui_page.customer_scoped.security_msgs_enabled が false に設定されている
UI ページプロセススクリプト
UI ページにフォームが含まれている (<g:form> タグを使用している) 場合は、フォームを送信してプロセススクリプトを実行できます。
処理スクリプトは、フォーム上のフィールドに自然にアクセスできます。たとえば、フォームに application_sys_id フィールドが含まれている場合は、次のようにします。
<g:ui_form>
<p>Click OK to run the processing script.</p>
<g:dialog_buttons_ok_cancel ok="return true" />
<input type="hidden" name="application_sys_id" value="499836460a0a0b1700003e7ad950b5da" />
</g:ui_form>
var application = new GlideRecord('hr_application');
application.get(application_sys_id);
application.status = "Rejected";
application.update();
var urlOnStack = GlideSession.get().getStack().bottom();
response.sendRedirect(urlOnStack);ダイアログの UI ページを使用している場合は、上記のコードを使用してスタック上の最新の URL を参照し、その場所に応答を送信することもできます。これは、ダイアログの処理スクリプトで何らかの内容を更新し、ダイアログが表示された画面を再表示する場合に便利です。