Workshop 상태 저장과 공유
State saving은 선택한 변수의 현재값과 선택적으로 현재 페이지를 저장하는 기능입니다. 사용자는 저장한 상태를 다시 열거나 다른 사용자에게 링크로 공유할 수 있습니다.
가상의 업무 예로 Status가 Unresolved이고 Location이 Zurich인 경고 조건을 저장하거나, 관심 객체를 선택한 화면을 동료에게 보낼 수 있습니다. Text input이나 Date input으로 일부 작성한 form을 저장하고 나중에 이어 입력하는 데도 사용할 수 있습니다.
무엇을 저장하는가
작성자는 저장 대상으로 사용할 변수와 페이지 포함 여부를 정합니다. 사용자는 View 모드에서 상태를 명시적으로 저장하고 다시 엽니다. 변수에 State saving을 켰다는 사실만으로 세션 사이에 모든 값이 자동 저장되지는 않습니다.
다음 가상 항공 경고 화면은 NYC 공항의 아직 처리하지 않은 높은/중간 우선순위 필터와 현재 강조한 경고를 저장합니다. Filter List의 Object Set Filter와 Object Table의 Active Object 출력을 대상으로 삼아 오른쪽 객체 뷰와 같은 화면 문맥을 다시 열 수 있습니다.
기능과 변수 활성화
Settings를 열고 Enable State Saving을 켭니다. 이 기능을 끄면 사용자는 상태 저장 조작을 볼 수 없습니다.
Variables에서 저장할 변수를 선택하고 Settings에 external ID를 추가한 뒤 State saving을 켭니다. 다음은 Filter List가 출력한 객체 집합 필터를 저장하는 예입니다.
필터의 구성과 추출값은 객체 집합 필터 변수에 설명합니다.
External ID 유지
저장 상태는 external ID를 키로 변수값을 보관합니다. 나중에 ID를 바꾸면 이전 상태가 제대로 복원되지 않을 수 있습니다.
위젯 구성을 바꾸더라도 대응하는 출력에 같은 external ID를 유지하면 저장 상태와의 연결을 유지할 수 있습니다. 예를 들어 한 객체를 선택하는 Object Dropdown에서 여러 객체를 선택하는 구성으로 바꾸면서도 그 출력 객체 집합의 external ID를 유지하는 방식입니다.
표시와 저장 위치
| 구역 | 설정과 의미 |
|---|---|
| Display | State display name의 기본 단수형은 module state, 복수형은 module states입니다. inbox/inboxes로 바꾸면 saved inbox/saved inboxes처럼 앱에 맞는 이름으로 표시합니다. |
| Data | State saving variables로 활성화한 변수값을 저장합니다. Page를 켜면 현재 페이지도 보관합니다. |
| Location: Add shortcut | 특정 프로젝트 폴더로 바로 저장할 수 있는 shortcut을 구성합니다. 폴더에 표시할 이름도 선택적으로 지정합니다. |
| Location: User home folder | 사용자의 개인 홈 폴더에 저장할 수 있게 합니다. |
| Location: Any Compass location | 사용자가 프로젝트 폴더를 골라 저장할 수 있게 합니다. |
저장 위치는 해당 사용자가 사용할 수 있는 권한 범위에서 정합니다. 여러 사람이 공유할 상태를 같은 폴더에 모으려면 shortcut을 구성할 수 있습니다.
기본 저장 상태
상태 저장 메뉴에서 기존 상태를 선택하고 모듈의 기본 상태로 지정할 수 있습니다. 새 상태를 처음 저장할 때 지정하는 경로도 있습니다.
기본 상태가 있으면 특정 저장 상태를 지정하지 않은 URL로 모듈을 다시 방문할 때 적용합니다. 기본 지정은 상태 메뉴에서 해제할 수 있습니다. 기본으로 지정한 상태를 삭제하면 기본 설정도 비우고 경고 알림을 표시합니다.
지원 자료형과 위젯
지원하는 변수는 Boolean, Date, Object Set, Object Set Filter, Numeric, String과 Timestamp입니다. 배열은 Boolean, Date, Numeric, String 또는 Timestamp 원소를 지원합니다.
이 자료형을 출력하는 Checkbox, Date Input, Date Time Picker, Filter List, Numeric Input, Object Dropdown, Object List, Object Table과 String Dropdown 등에서 사용할 수 있습니다. Workshop 파생 속성을 참조하는 객체 집합은 Saved states에서 지원하지 않습니다.
표시 및 접근 조건
최종 사용자는 platform access가 있어야 상태 저장 요소를 사용할 수 있습니다. 또한 View 모드에서 module header가 보여야 상태 저장 dropdown이 나타납니다. 기능을 구성했더라도 header를 숨기면 사용자가 메뉴에 접근할 수 없습니다.
삽입한 자식의 State saving 설정은 부모에 이어받지 않습니다. 저장할 자식 변수를 module interface에 공개하고 부모의 상태 저장 변수에 매핑합니다. 모듈 삽입의 공유 상태를 사용합니다.
자동 사용자 설정과의 구분
이 기능은 사용자가 상태를 저장하고 다시 여는 흐름입니다. 구독 선택이나 다시 보지 않기 같은 개인 설정을 매 방문마다 자동 복원해야 한다면 온톨로지 객체의 속성에 사용자 설정을 저장하고 방문 시 읽는 업무 패턴을 검토합니다.
URL에 현재 상태를 표현하는 기능은 Routing, 앱 자체의 저장 및 게시 이력은 모듈 버전에서 관리합니다.