SAC의 커스텀 위젯은 SAC에 기본으로 제공되는 위젯의 확장된 버전이다.
기본으로 제공되지 않는 형식의 데이터를 시각화하고자 할 때 유용하게 쓸 수 있다.
기본적으로 제공되는 위젯처럼 다음과 같은 내용들을 수용 가능한 위젯이다.
커스텀 위젯은 간단한 파일들의 set으로 이루어진다. 기본적으로 JSON파일과 JavaScript 파일로 이루져 있다. 필요하다면 추가적인 JS, CSS 파일 등을 추가하여 만들수있다.
커스텀 위젯은 웹 컴포넌트로 구현된다. 웹 컴포넌트는 HTML DOM 안에서 Custom HTML Element 형태로 제공 되는데,Custom Element의 렌더링과 스타일링은 HTML DOM으로부터 고립적이다. 이는 웹 페이지의 HTML DOM과 custom Element의 HTML DOM을 분리하여 작동함으로써 가능하다.
웹 컴포넌트는 HTML, CSS(Optional), JavaScript(ECMAScript 2015)로 이루어진다.
현재 커스텀 위젯은 구글 크롬과 엣지에서만 동작한다.
커스텀위젯은 Same-origin 정책과 CORS 메커니즘을 따른다. 커스텀 위젯이 XMLHttpRequest나 HTTP requset 를 사용하려면 CORS 에러 방지를 위해 Access-Control-Allow-Origin: *
와 같은 정책 등록이 필요하다.
빌더패널에서 다음과 같은 기능 사용이 불가
컬러 선택
차트 애드온
차트 속성
디멘전 이름 변경 및 예약되지 않은 데이터
차원 입력 컨트롤
계수 입력 컨트롤, 계정 입력 컨드롤
(BW Model) 하이라키 레벨 선택
하이라키의 하위 노드만 보이기
API 미동작
getDataSource().getComments, getDataSource().load, getDataSource().getDataExplorer, getDataSource().getDataSelections.
유니버셜 계정 모델은 지원 불가
커스텀 위젯의 데이터 블렌딩은 view modedㅔ서만 가능
필터라인은 적용 불가
커스텀 위젯은 인풋 컨트롤로 인한 변경이 편집모드에서는 조회 불가.
호스팅 관점에서의 커스텀 위젯은 두개의 타입의 파일들로 이루어져 있다. JSON파일과 리소스 파일이다.
커스텀 위젯의 JSON파일은 커스텀 위젯의 Metadata를 갖고있다.
URL을 통해서 리소스 파일의 참조를 정의한다.
리소스 파일은 커스텀 위젯이 동작하도록 하는 파일이다. Javascript, CSS, HTML, 이미지 드잉 포함 될 수 있다.
리소스 파일을 웹서버나 SAC에 업로드 할 수있다.
"webcomponents": [
{
"kind": "main",
"tag": "com-sap-sample-coloredbox",
"url": "/coloredbox_main.js",
"integrity": "",
"ignoreIntegrity": true
},
{
"kind": "styling",
"tag": "com-sap-sample-coloredbox-styling",
"url": "/coloredbox_styling.js",
"integrity": "",
"ignoreIntegrity": true
},
{
"kind": "builder",
"tag": "com-sap-sample-coloredbox-builder",
"url": "/coloredbox_builder.js",
"integrity": "",
"ignoreIntegrity": true
}
],
: 그 다음, 리소스 파일을 ZIP파일로 압축하여 JSON과 ZIP파일을 모두 업로드 한다.
주의
- 커스텀 위젯 권한이 있어야 업로드 가능
- 리소스 파일의 확장자는 무조건 .zip이어야 한다.
- zip파일의 크기는 5mb가 넘지 않아야 한다.
- zip파일은 리소스 파일에만 지원된다.(웹 컴포넌트 JS, 스타일링 패널, 빌더 패널, CSS,HTML, icon은 미지원)
- zip파일 내부의 서브 경로는 미지원
- 각 테넌트별로 25개의 커스텀 위젯을 업로드 할 수 있음.