위젯 문제 해결 가이드

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 소요 시간: 5분
  • 다음 도구를 사용하여 사용자 지정 서비스 포털 위젯에서 예기치 않은 동작을 조사하고 해결합니다.

    복잡성 감소
    문제 해결 중인 위젯과 관련이 없는 위젯을 비활성화하여 오류 또는 예기치 않은 동작을 일으킬 수 있는 페이지 부분을 격리합니다. 위젯 기록에서 활성 필드를 아니오로 설정하여 페이지에서 위젯을 숨기고 관련 스크립트가 실행되지 않도록 합니다.
    브라우저 개발자 콘솔 사용

    지원되는 모든 데스크톱 브라우저에는 개발자 도구가 내장되어 있습니다. 브라우저 개발자 도구에 액세스하여 클라이언트 측 JavaScript에서 발생한 콘솔 메시지와 오류를 확인합니다. 아래에 자세히 설명된 많은 로깅 도구는 이 콘솔에 정보를 출력합니다.

    성능 문제가 발생하는 경우 JavaScript 콘솔을 확인하여 오류, 많은 수의 HTTP 요청 또는 해결하는 데 시간이 오래 걸리는 HTTP 요청이 있는지 확인합니다. 콘솔을 사용하여 로드 속도가 느린 위젯을 식별할 수 있습니다. 자세한 내용은 Now Support 지식베이스의 [KB0744521] 페이지에서 느린 위젯을 식별하는 방법 문서를 참조하십시오.

    성능 문제의 원인 확인

    다음 팁은 포털에서 성능 문제의 원인을 확인하는 데 도움이 될 수 있습니다.

    • 두 인터페이스의 기능을 비교하여 문제가 포털과 관련이 있는지 아니면 플랫폼 차원과 관련이 있는지 확인합니다. 플랫폼 성능 문제에 대한 자세한 내용은 플랫폼 성능을 참조하세요.
    • 문제가 전체 포털 또는 특정 페이지에 영향을 미치는지 확인합니다. 포털의 모든 페이지가 느린 경우 헤더 메뉴의 스크립팅된 메뉴 항목 또는 큰 글꼴 또는 이미지 파일이 있는 테마가 원인일 수 있는지 확인합니다. 특정 페이지가 느린 경우 브라우저 개발자 콘솔을 사용하여 원인이 될 수 있는 위젯을 확인합니다.
    • 로그 [syslog] 테이블에서 속도 저하를 유발하는 큰 JSON 객체와 관련된 경고를 확인합니다. 속도 저하를 유발하는 작업과 함께 이러한 경고가 표시되면 위젯이 너무 많은 데이터를 사용하고 있음을 나타냅니다.

    자세한 내용은 Now Support 지식베이스에서 Service Portal의 6가지 일반적인 성능 함정 및 이를 방지하는 방법[KB0634588] 문서를 참조하십시오.

    위젯 컨텍스트 메뉴를 사용하여 정보 및 옵션에 액세스
    위젯을 CTRL+마우스 오른쪽 버튼으로 클릭하여 위젯의 구성 옵션에 액세스합니다. 범위 및 범위 데이터 개체를 브라우저 콘솔에 출력하는 옵션도 있습니다. 이 메뉴에 대한 자세한 내용은 을 참조하십시오 포털 위젯 사용.
    스크립트 메서드를 사용하여 디버깅 출력 캡처

    서버 및 클라이언트 쪽 코드 내에서 디버깅 정보를 출력하는 데 사용할 수 있는 몇 가지 방법이 있습니다.

    표 1. 스크립팅된 디버깅 방법
    방법 가용성 설명
    console.log() 서버 및 클라이언트 브라우저 개발자 콘솔에 출력을 기록합니다.
    $sp.log() 서버 로그인한 사용자에게 sp_admin 또는 관리자 역할이 있는 경우 서비스 포털 로그 항목 [sp_log] 테이블에 출력을 기록합니다.
    gs.log() 서버 로그 [syslog] 테이블에 출력을 기록합니다.
    주:
    gs.log syslog 테이블에 기록을 생성합니다. 과도하게 사용하면 성능에 부정적인 영향을 미칠 수 있습니다.
    gs.warn() 서버 로그 [syslog] 테이블에 경고 수준 출력을 생성합니다.
    gs.error() 서버 로그 [syslog] 테이블에 오류 수준 출력을 생성합니다.
    gs.addInfoMessage()를 호출합니다. 서버 브라우저 창 상단에 녹색 정보 메시지를 표시합니다.
    gs.addErrorMessage()를 호출합니다. 서버 브라우저 창 상단에 빨간색 오류 메시지를 표시합니다.
    spUtil.addErrorMessage()를 호출합니다. 클라이언트 브라우저 창 내에 오류 메시지를 표시합니다.
    spUtil.addInfoMessage()를 호출합니다. 클라이언트 브라우저 창 내에 정보 메시지를 표시합니다.
    spUtil.addTrivialMessage()를 호출합니다. 클라이언트 잠시 후 자동으로 사라지는 메시지를 표시합니다.
    디버거 클라이언트 Chrome 및 Firefox 브라우저에 중단점을 설정하여 브라우저 개발자 콘솔에서 스크립트를 한 줄씩 단계별로 실행할 수 있습니다.
    {{데이터|json}} HTML 이 코드를 페이지의 HTML 코드에 추가하여 JSON 형식으로 포털 페이지에 데이터 객체를 출력할 수 있습니다.
    보안 제한 사항 확인

    위젯 표시 문제는 위젯 스크립트가 아닌 접근 규칙이나 사용자 기준에 의해 발생하는 경우가 많습니다. 기록에 대한 사용자 기준을 확인하고 위젯 내에서 액세스할 수 없는 기록은 플랫폼 UI를 사용하여 액세스할 수 있는지 확인합니다. ACL 디버거를 사용하여 사용자가 위젯에서 사용하는 레코드에 대한 예상 액세스 권한을 갖도록 합니다. 디버거에 대한 자세한 내용은 ACL 디버깅 도구를 참조하세요.

    서비스 카탈로그 항목이 에 표시되지 서비스 포털않도록 제한할 수도 있습니다. 위젯에 서비스 카탈로그대해 권한이 없거나 기록이 유효하지 않다는 오류 메시지가 표시되면 항목이 에서 숨겨서비스 포털지지 않았는지 확인하십시오.

    연결된 Angular 제공자 확인
    필요한 Angular 제공자가 위젯과 연결되어 있는지 확인합니다. 기본 시스템 위젯과 연결된 기본 Angular 제공자를 제거하면 예기치 않은 동작이 발생할 수 있습니다. 예를 들어 SC 카탈로그 항목 위젯에서 scToggleData 또는 scBindHtmlCompile Angular 제공자를 제거합니다.
    콘솔에서 widgets 범위에 대한 참조를 만듭니다
    위젯에 대한 참조를 사용하여 범위 데이터를 조작하거나 위젯 클라이언트 및 서버 스크립트를 수동으로 실행합니다. 다음 단계를 사용하여 참조를 만듭니다.
    • 1. 위젯을 마우스 오른쪽 버튼으로 클릭하고 검사(Inspect)를 선택합니다.
    • 2. 개발 도구 요소 탭에서 widget=widget 속성이 있는 요소를 클릭하여 강조 표시합니다. 현재 검사된 요소 위의 몇 가지 요소를 찾을 수 있습니다. 이 요소는 위젯에서 $0 스크립팅 도구를 가리킵니다.
    • Javascript 콘솔에서 다음 코드를 실행합니다.
      var scopeRef = angular.element($0).scope();
    위젯에 대한 참조를 사용하여 콘솔 내에서 데이터를 변경합니다. 다음 예를 참조하십시오. 범위에서 AngularJS $apply() 를 실행하여 페이지에 변경 사항을 적용해야 합니다.
    scopeRef.data.prop1 = "Pear";
    scopeRef.$apply();
    아래 구문을 사용하여 참조에서 위젯 클라이언트 컨트롤러에 정의된 함수를 실행합니다.
    scopeRef.exampleFunction();

    refresh 명령을 사용하여 위젯 서버 스크립트를 수동으로 실행하십시오.

    scopeRef.server.refresh();