UI 페이지

  • 릴리스 버전: Washingtondc
  • 업데이트 날짜 2024년 02월 01일
  • 읽기9분
  • UI 페이지를 사용하여 양식, 대화 상자, 목록 및 기타 UI 구성요소를 만들고 표시할 수 있습니다.

    UI 페이지를 대시보드의 위젯으로 사용합니다. UI 페이지를 찾으려면 다음으로 이동합니다. 시스템 UI > UI 페이지레이블이 표시됩니다.

    이 기능을 사용하려면 HTML 또는 Jelly에 대한 지식이 필요합니다. UI 페이지를 사용하여 간단한 AngularJS 애플리케이션을 만들 수도 있습니다.

    UI 페이지 양식에는 다음 필드가 포함되어 있습니다.
    표 1. UI 페이지
    필드 설명
    이름 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 관리 용이성을 유지하기 위해 클라이언트 스크립트 필드를 대신 사용하여 이러한 스크립트를 간결하게 정의할 수 있습니다.

    처리 스크립트 페이지가 제출될 때 서버에서 실행되는 스크립트입니다. 이 기능은 페이지에 &lt;g:ui_form/> 또는 &lt;g:form/> 태그로 정의된 양식이 있는 경우에 유용합니다.
    주:
    GlideRecordSecure 대신 GlideRecord/GlideDBQuery를 사용하는 경우 보안 권장 사항 메시지가 표시됩니다.
    사용되지 않는 사용자 지정 프로세서
    주:
    이 기능은 더 이상 사용되지 않습니다. 레거시 사용자 지정 프로세서는 계속 지원되지만 새 사용자 지정 프로세서를 만드는 것은 더 이상 사용되지 않습니다. 스크립트 기반 REST API대신 .
    양식 뷰의 관련 목록:
    접근 제어 UI 페이지에 대한 접근 제어를 보고 구성합니다. 자세한 내용은 UI 페이지에서 접근 제어 사용 문서를 참조하십시오.
    버전 UI 페이지의 모든 버전을 표시합니다. 이 목록을 사용하여 버전을 비교하거나 이전 버전으로 되돌릴 수 있습니다.

    접근 통제

    다음 매개 변수로 ACL을 만들어 UI 페이지를 보호할 수 있습니다.

    • 유형: ui_page
    • 작업: 읽기
    • 이름: 보호할 UI 페이지의 이름
    • 역할: 기록에 접근할 수 있는 사용자 역할
    새 UI 페이지를 저장할 때 접근 제어를 위한 역할을 할당하라는 메시지가 표시됩니다.새 UI 페이지의 접근 통제를 위한 역할 선택입니다.
    주:
    접근 제어 테이블에 UI 페이지와 이름이 같은 항목이 생성됩니다.
    ACL 규칙 생성에 대한 자세한 내용은 ACL 규칙 생성 단원을 참조하십시오.

    높은 위험 UI 페이지

    UI 페이지는 다음 속성 중 하나를 가진 높은 위험으로 간주됩니다.
    • GlideRecordSecure 대신 GlideRecord 또는 GlideDBQuery를 사용합니다.
      주:
      클라이언트 스크립트가 아닌 HTML처리 스크립트 필드에 적용할 수 있습니다.
    • 구성된 해당 ACL이 없습니다.
    • 공용 UI 페이지를 가리키며 sys_public 기록에 입력됩니다.
    • 높은 위험 UI 페이지를 나타내는 메시지를 표시합니다.
    • 인스턴스의 경우 glide.installation.developer로 설정됩니다.
    • 자원이 고객 인스턴스에 대해 컨텐츠를 사용자 지정한 경우.

    UI 페이지 접근

    각 UI 페이지에는 애플리케이션 범위, 페이지 이름 및 .do 파일 확장자에서 계산된 URL이 있습니다.

    예를 들어, 데모 시스템에 glidewindow_example라는 페이지를 표시하려면 https://&lt;instance name>.service-now.com/glidewindow_example.do 으로 이동합니다. 페이지가 example_app라는 사용자 지정 애플리케이션의 일부인 경우 대신 https://&lt;instance name>.service-now.com/x_example_app_glidewindow_example.do 으로 이동합니다.

    페이지의 HTML 섹션 내에서 젤리 변수로 액세스할 수 있는 URL에 매개변수를 추가할 수도 있습니다. 즉, /my_test_page.do?sysparm_verbose=true 와 같이 URL에 인수를 추가하면 다음과 같이 액세스할 수 있는 jelly verbose 변수가 만들어집니다.
    <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

    프로시저

    1. security_admin 역할로 승격합니다.
      역할 상승에 대한 자세한 내용은 권한 있는 역할로 상승을 참조하세요.
    2. 다음으로 이동 모두 > 시스템 UI > UI 페이지레이블이 표시됩니다.
    3. 새로 만들기를 선택합니다.
    4. 양식을 작성합니다.
      UI 필드 설명에 대한 자세한 내용은 을 참조하십시오 UI 페이지 .
    5. 제출 또는 저장을 선택합니다.
      UI 페이지에 대한 역할 기반 접근 제어를 만들라는 메시지가 표시되는 모달이 표시됩니다.역할 기반 접근 제어 모달을 표시합니다.
    6. 역할을 선택합니다.
    7. 확인을 선택하여 역할을 할당합니다.
      UI 페이지 목록으로 돌아갑니다.
    기존 UI 페이지에 대한 접근 통제를 추가, 편집 또는 봅니다.
    1. UI 페이지 테이블에서 UI 페이지를 엽니다.
    2. 관련 목록에서 접근 제어를 봅니다.
    3. 새로 만들기를 선택하여 새 접근 제어를 만들거나 편집할 기존 항목을 선택합니다.
      접근 제어 양식이 로드됩니다. UI 페이지 상세 정보가 표시됩니다.
    4. 양식을 완성하고 UI 페이지에 역할을 할당합니다.
      액세스 제어에 대한 자세한 내용은 ACL 규칙 생성을 참조하십시오.
    5. 새 액세스 제어를 위해 제출 을 선택하거나 편집을 위해 업데이트를 선택합니다.
      주:
      UI 페이지당 여러 접근 제어가 있을 수 있습니다.

    보안 UI 페이지

    접근 제어 및 관련 보안 메시지가 보안 강화를 위해 고위험 UI 페이지에 통합됩니다.

    높은 위험 UI 페이지에 표시되는 정보 메시지로, 고객에게 UI 페이지에 역할 기반 접근 제어를 추가하도록 알립니다.

    UI 페이지 보안 권장 사항 메시지입니다.

    이 메시지는 다음과 같은 경우에 표시됩니다.
    • ACL(접근 제어 목록)이 없는 경우
    • HTML 또는 처리 스크립트 섹션에서 GlideRecordSecure 대신 GlideRecord/GlideDBQuery를 사용하는 경우 HTML 및 처리 스크립트 예.
    • UI 페이지가 sys_public에서 공개로 구성된 경우
      주:
      공개 UI 페이지이거나 GlideRecord 를 사용하는 페이지에는 ACL 경고 누락이 표시되지 않습니다.
    고위험 UI 페이지에 대한 자세한 내용은 을 참조하십시오 UI 페이지 .

    보안 권장 사항 메시지를 표시하는 조건

    이 메시지는 다음과 같은 경우에 표시됩니다.

    • 모든 내부 인스턴스 eclipse/IJ( glide.installation.developer=true)입니다.
    • 모든 고객 범위 지정 UI 페이지 자원입니다.
    • 속성이 true로 설정될 때 glide.script.ui_page.customer_scoped.security_msgs_enabled 사용자 지정된 UI 페이지입니다. (기본값은 true입니다.)

    보안 권장 사항 메시지를 표시하지 않는 조건

    다음 조건에서는 메시지가 표시되지 않습니다.

    • UI 페이지가 공개되었습니다.
    • UI 페이지가 전역 범위에 있습니다.
    • glide.script.ui_page.customer_scoped.security_msgs_enabledfalse로 설정됩니다.
    주:
    역할 기반 ACL 생성 프롬프트를 사용하지 않도록 설정하려면 속성을 false로 설정합니다glide.ui_page.enable_acl_create_ux. 이 속성은 기본적으로 true 로 설정됩니다.

    UI 페이지 프로세스 스크립트

    UI 페이지에 양식이 포함된 경우( &lt;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>
    application_sys_id 사용하여 필드에 액세스할 수 있습니다.
    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을 참조한 다음 해당 위치로 응답을 보낼 수도 있습니다. 이 기능은 대화 상자의 처리 스크립트가 무언가를 업데이트한 다음 대화 상자를 불러온 화면을 다시 표시하도록 하려는 경우에 유용합니다.