UI 페이지
UI 페이지를 사용하여 폼, 대화 상자, 목록 및 기타 UI 구성요소를 만들고 표시할 수 있습니다.
UI 페이지를 대시보드의 위젯으로 사용합니다. UI 페이지를 찾으려면 .
이 기능을 사용하려면 HTML 또는 Jelly에 대한 지식이 필요합니다. UI 페이지를 사용하여 간단한 AngularJS 애플리케이션을 만들 수도 있습니다.
| 필드 | 설명 |
|---|---|
| 이름 | URL을 통해 페이지를 호출하는 데 사용되는 이름입니다(공백을 포함하면 안 됨). |
| 애플리케이션 | 현재 애플리케이션 범위를 표시합니다. |
| 설명 | UI 페이지 및 용도에 대한 설명입니다. |
| 직접 | 직접 UI 페이지[sys_ui_page]에 대해 이 확인란을 선택합니다. 직접 UI 페이지에는 일반적인 HTML, CSS 및 스크립트가 포함되지 않습니다. 이 설정을 사용하려면 페이지에서 사용할 사용자 지정 CSS 및 JavaScript를 추가해야 합니다. |
| HTML | 페이지가 표시될 때 렌더링되는 항목을 정의하는 페이지의 메인 구성요소입니다. 여기에는 정적 XHTML, Jelly로 정의된 동적으로 생성된 컨텐츠 또는 호출 스크립트 포함 및 UI 매크로가 포함될 수 있습니다. 주: GlideRecordSecure 대신 GlideRecord/GlideDBQuery를 사용하는 경우 보안 권장 사항 메시지가 표시됩니다. |
| 클라이언트 스크립트 | 단추로 호출되는 함수와 같이 브라우저에서 실행되는 클라이언트측 JavaScript를 포함합니다. 페이지가 로드된 후 필드 또는 기타 대화형 DHTML 기능에 포커스를 설정하는 것과 같이 필요한 클라이언트 측 처리를 처리하기 위한 것입니다. UI 페이지의 클라이언트 스크립트는 태그 내의 <script/> 브라우저에 배포되므로 HTML 필드 내에서 컨텐츠를 유사하게 정의할 수 있습니다. Jelly 및 HTML 관리 효율성을 유지하기 위해 이러한 스크립트를 간결하게 정의하는 데 클라이언트 스크립트 필드를 대신 사용할 수 있습니다. |
| 처리 스크립트 | 페이지가 제출될 때 서버에서 실행되는 스크립트입니다. 이 기능은 페이지에 <g:ui_form/> 또는 <g:form/> 태그로 정의된 양식이 있는 경우에 유용합니다. 주: GlideRecordSecure 대신 GlideRecord/GlideDBQuery를 사용하는 경우 보안 권장 사항 메시지가 표시됩니다. |
| 사용되지 않는 사용자 지정 프로세서 | 주: 이 기능은 더 이상 사용되지 않습니다. 레거시 사용자 지정 프로세서는 계속 지원되지만 새 사용자 지정 프로세서를 만드는 것은 더 이상 사용되지 않습니다. 스크립트 기반 REST API대신 . |
| 양식 뷰의 관련 목록: | |
| 접근 통제 | UI 페이지에 대한 접근 제어를 보고 구성합니다. 자세한 내용은 UI 페이지에서 접근 제어 사용 문서를 참조하십시오. |
| 버전 | UI 페이지의 모든 버전을 표시합니다. 이 목록을 사용하여 버전을 비교하거나 이전 버전으로 되돌릴 수 있습니다. |
접근 통제
다음 매개변수로 ACL을 만들어 UI 페이지를 보호할 수 있습니다.
- 유형: ui_page
- 작업: 읽기
- 이름: 보호할 UI 페이지의 이름
- 역할: 기록에 접근할 수 있는 사용자 역할
높은 위험 UI 페이지
- GlideRecordSecure 대신 GlideRecord 또는 GlideDBQuery를 사용합니다.주:이는 클라이언트 스크립트가 아닌 HTML 및 처리 스크립트 필드에 적용할 수 있습니다.
- 해당 ACL이 구성되어 있지 않습니다.
- 공개 UI 페이지를 가리키며 sys_public 기록에 입력됩니다.
- 높은 위험 UI 페이지를 나타내는 메시지를 표시합니다.
- glide.installation.developer가 있는 인스턴스의 경우 예로 설정됩니다.
- 자원이 고객 인스턴스에 대한 사용자 지정 컨텐츠인 경우.
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를 사용하는 경우
- UI 페이지가 sys_public에서 공개로 구성된 경우 주:공개 UI 페이지, 공개 또는 GlideRecord 를 사용하는 페이지에는 누락된 ACL 경고가 표시되지 않습니다.
보안 권장 사항 메시지를 표시하는 조건
이 메시지는 다음과 같은 경우에 표시됩니다.
- glide.installation.developer=true인 모든 내부 인스턴스 eclipse/ij입니다.
- 모든 고객 범위가 지정된 UI 페이지 자원입니다.
- 속성이 true로 설정된 경우 glide.script.ui_page.customer_scoped.security_msgs_enabled 의 사용자 지정된 UI 페이지입니다. 기본값은 true입니다.
보안 권장 사항 메시지를 표시하지 않는 조건
다음 조건에서는 메시지가 표시되지 않습니다.
- UI 페이지는 퍼블릭입니다.
- UI 페이지가 전역 범위에 있습니다.
- false로 glide.script.ui_page.customer_scoped.security_msgs_enabled 설정됩니다.
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을 참조한 다음 해당 위치로 응답을 보낼 수도 있습니다. 이 기능은 대화 상자의 처리 스크립트가 무언가를 업데이트한 다음 대화 상자를 불러온 화면을 다시 표시하려는 경우에 유용합니다.