Scheduling Gantt Chart 구성
Scheduling Gantt Chart는 Workshop에서 자원별 일정과 배정 결과를 표시하는 대화형 차트입니다. 먼저 일정 온톨로지를 구성하고 각 일정 계층의 데이터, 편집과 표시를 연결합니다.
화면의 구성
일정 객체는 블록(Puck), 자원 객체는 행입니다. 블록에 마우스를 올리면 기본으로 시작과 종료 시각, 구성한 규칙 상태와 객체 뷰 링크를 보여 줍니다. 행의 카드에는 자원 제목, 선택한 속성과 객체 뷰 링크가 나타납니다. 두 대상 모두 오른쪽 클릭 메뉴를 구성할 수 있습니다.
검색어에 맞는 결과는 노란 테두리로 강조하며 Enter를 누르면 결과를 담은 검색 그룹을 만듭니다. 규칙 필터는 검사할 규칙을 켜거나 끄고 선택한 규칙을 위반하는 객체로 범위를 좁힙니다.
시작, 종료와 연결 자원 중 하나라도 null이면 블록을 Unscheduled drawer에 표시합니다. Change log는 사용자의 편집을 추적합니다. 시나리오의 Review changes는 제안 편집과 남은 규칙 위반을 함께 보여 주고 확인 후 온톨로지에 변경을 적용합니다.
Timeline Data와 시간축
Start Timestamp와 End Timestamp는 필수이며 차트 전체의 경계를 정합니다.
| Timeline configuration | 동작 |
|---|---|
| Custom Display Range | 처음 열 때 보여 줄 범위. 별도 제한이 없으면 사용자는 전체 시간축을 스크롤할 수 있습니다. |
| Custom Timeline Grid Precision | 기본 격자 간격을 지정한 시간 단위로 재정의 |
| Disable timeline zoom and scroll | 시간축 확대와 스크롤 비활성화 |
| Operating Hours | 일별, 사용자 지정 범위 또는 요일별 운영 시간을 구분하여 음영 표시. Collapse by default로 처음에 비운영 시간을 접음 |
| Timeline Date-Time Formatting | 분, 시, 일, 주, 월, 분기와 연도 경계의 표시 형식. 지정하지 않으면 기본 형식 사용 |
자원 행
Fixed Resource Object Set은 필수이며 객체 하나를 행 하나로 표시합니다.
Title Icon은 행 제목 옆의 아이콘입니다. Row Title은 기본 제목 대신 사용할 속성이고, 값이 null일 때 제목을 표시할지도 정할 수 있습니다. Sub-Titles에는 하나 이상의 자원 속성과 각각의 아이콘을 지정합니다.
Group-By Property로 행을 하위 그룹으로 나눕니다. 예시의 Garden City, Garza와 Hoople 같은 그룹을 펼치거나 접을 수 있습니다.
Default Sorts는 하나 이상의 기본 정렬입니다. Right Click Menu에는 자원 관련 액션과 검색 함수를 구성합니다. 빈 시간 영역을 오른쪽 클릭하면 그 자원과 커서 시각을 함수 입력으로 사용할 수 있습니다. On Row Select Event는 행 선택 시 Workshop 이벤트를 실행합니다. Popover Actions는 기본 행 카드를 대신할 액션을 정합니다. 행 액션과 이벤트에서 입력 매핑을 구성합니다.
일정 계층의 Data
Input Data (Pucks)의 각 계층을 독립적으로 설정합니다. 같은 유형을 여러 계층에 사용할 수도 있습니다.
| 필드 | 조건 |
|---|---|
| Schedule Object Set | 필수. 이 계층의 일정 객체 집합 |
| Linked Resource Property | 필수. 일정을 자원에 연결하는 속성 |
| Start Time Property | 필수. 시작 시각 속성 |
| End Time Property | 필수. 종료 시각 속성 |
| Object set filter for unallocated pucks | 선택. 미배정 블록에만 적용할 객체 필터 |
배정 방식과 스냅
Drag & Drop > Allocation Behavior는 다음 방식을 지원합니다.
| 방식 | 동작 |
|---|---|
| Allocate | 자유롭게 배정하며 같은 자원과 시간에 여러 블록이 겹칠 수 있습니다. |
| Allocate (no overlaps) | 같은 객체 유형의 블록을 겹치지 않게 합니다. 다른 블록 위에 놓으면 기존 블록과 이후 일정을 밀어 순서를 유지합니다. |
| Allocate (resource only) | 자원 행만 변경합니다. |
| Allocate (time only) | 시간만 변경합니다. |
| Simple swap | 겹치는 곳에 놓으면 두 블록의 위치를 교환합니다. |
| Swap with downstream | 두 블록과 각 블록 뒤에 이어지는 일정 순서를 함께 교환합니다. |
| Snap to previous | 같은 행에서 가장 가까운 기존 블록의 끝에 붙입니다. |
기본으로 분 단위 배정이 가능하며 Snap Behavior로 허용할 간격의 시작에 맞출 수 있습니다. 정각 또는 30분 간격 같은 배정을 구성합니다. Snap Interval Size와 시간 단위를 정하고, 필요하면 스냅의 Start Timestamp를 지정합니다. 기본 기준점은 차트의 시작 시각입니다.
Save Handler Action은 블록을 이동하거나 길이를 바꿀 때 호출합니다. 자원 외래 키와 시작 및 종료 입력은 선택 사항이어야 하며 위젯 제공 값을 로컬 기본값으로 연결해야 합니다. 드래그 저장 구성을 따릅니다.
Appearance
일정 표시 스타일은 Standard, Background와 Event입니다.
색은 Static의 단색, Segmented by의 기본 팔레트 구분, Conditional coloring의 속성 조건 또는 Function-backed를 사용합니다. 함수는 일정 객체별 16진 색 문자열이나 color와 name이 있는 사용자 지정 값을 매핑하여 반환합니다. name을 제공하면 범례를 표시할 수 있습니다.
Puck Title은 제목을 재정의합니다. Puck Properties는 블록 위에, Popover Properties는 마우스를 올렸을 때 보여 줄 속성이며 설정한 순서로 나타납니다. Puck Sort Order는 계층 안에서 겹치는 블록의 순서를 정하지만 Background에는 적용하지 않습니다.
Interactions와 Rules
Custom Suggestions는 블록을 집었을 때 배치 적합 영역을 강조합니다. 제안 함수 결과는 초기 로드 때 계산한 정적 값이며 이후 편집은 반영하지 않습니다. Enforce Suggestions를 켜면 강조한 영역으로 배치를 제한하지만 Shift로 재정의할 수 있습니다.
Drag Cursor to Create Action은 Shift를 누르고 빈 범위를 끌어 새 일정을 만드는 생성 액션을 연결합니다.
계층의 Right Click Menu에는 액션, 검색 함수와 Workshop 이벤트를 넣습니다. 블록을 오른쪽 클릭하면 그 객체와 시작 및 종료 시각을 사용할 수 있습니다. Popover Actions는 기본 카드 대신 탭 형태의 액션을 보여 줍니다.
Enable Cross Widget Drops는 다른 위젯의 객체를 이 계층으로 끌어오는 동작을 허용하며 처리할 drop action을 함께 정해야 합니다. On Puck Select Event는 블록 선택에 따라 Workshop 이벤트를 실행합니다.
Rules는 계층별 검증 함수입니다. Background와 Event 스타일에는 Rules를 지원하지 않습니다.
Layout
| 구역 | 설정 |
|---|---|
| Timeline | 시간축 위/아래 위치, 커서 시각 플래그와 표시 형식, 정적 또는 변수 기반 Timezone, 범례의 기본 펼침 |
| Top bar | Hide Header로 검색, 규칙 필터와 사용자 선호를 포함한 헤더 숨김. 헤더 날짜 범위 형식도 지정 |
| Bottom bar | Hide Footer로 미배정 서랍, 변경 로그와 검토 영역을 숨김. Hide Unscheduled는 미배정 토글 버튼 숨김, Expand Unscheduled는 기본 펼침 |
| Puck display | 계층별 하위 행, 중첩 블록의 기본 펼침, 겹치는 블록 접기와 팝오버 비활성화 |
미배정 블록의 크기는 기본으로 기간에 비례합니다.
Standard Unallocated Puck Size를 켜면 미배정 영역에서 같은 크기로 표시합니다.
Split Rows by Schedule Layer는 기본으로 꺼져 있고 여러 계층이 있을 때만 적용합니다. 켜면 자원 행 안에 계층별 하위 행을 만들며 순서와 레이블은 Input Data의 설정을 따릅니다.
Expand All Nested Pucks는 자식 블록을 기본으로 펼치고, Collapse overlapping pucks는 겹침을 하나의 블록으로 합쳐 표시합니다. Disable Popovers는 팝오버를 끕니다.
구형 User preferences
폐기 예정인 User preferences는 기존 구성에서 사용자 선호를 저장하는 기능입니다. UTC 시각을 표시할 시간대, 겹친 블록 접기, 현재 시각의 빨간 선, 범례와 미배정 영역 및 중첩 블록의 펼침, 외부 선택 시 해당 블록으로 스크롤, 행 너비 유지와 행/그룹 순서 유지를 포함합니다.
현재의 Layout 설정과 구형 선호 저장을 구분해야 합니다. Output의 구형 User Preferences는 모듈 인터페이스나 상태 저장에 사용하는 직렬화 문자열입니다.
지표, 출력과 시나리오
Metrics에는 시간축에 맞춘 Header Metrics와 자원 행에 맞춘 Row Metrics를 구성합니다. 사용자 지정 함수 결과로 지표를 표시합니다.
Output의 Selected Objects는 선택한 객체 집합입니다. Search Results Output은 가장 최근 추천이 객체를 반환했을 때만 채워집니다. 시간 슬롯만 반환한 추천은 이 객체 출력에 값을 만들지 않습니다.
Enable Scenarios를 켜고 시나리오 변수를 지정하면 위젯 편집을 먼저 그 시나리오에 기록합니다. 끄면 직접 온톨로지에 기록합니다. 별도의 Boolean 변수 Disable Scenario가 true인 경우에도 직접 온톨로지에 기록하므로 상위 토글만 보고 시험용 편집이라고 판단하면 안 됩니다.
함수의 입출력
Suggestion Function의 정적 적합도와 Search Function의 현재 상태 추천을 구분합니다. Validation rule은 일정별 통과와 위반 및 비적용을 반환하고, Inline metrics는 함수 버전에 맞는 범위 필드로 헤더와 행 지표를 반환합니다.