Skip to main content
The Roster Board is the flagship visualisation of the extension — a drag-and-drop scheduling UI that lets HR build a weekly or monthly shift roster. It runs as a Control Add-in embedded inside BC.

Where it runs

Component-by-component

AutoLoad

Invisible component mounted at app start. On mount, dispatches three data fetches in parallel for the default 3-month window:
  1. getAllResourcesAsync(from, to) — employee directory
  2. getShiftCodesAsync() — shift configurations marked roster-eligible
  3. getRosterEntriesAsync(from, to) — existing assignments in the window
Stores each result in the rosterData Redux slice.

RosterScheduler

The primary screen. Renders a searchable employee list (left sidebar, every employee is a draggable card via Syncfusion’s Draggable utility) and a Syncfusion ScheduleComponent grouped by ShiftCode (right pane). Supports Day, Week, WorkWeek, and Month views.
The shift colour mapping is a local constant (SHIFT_WINDOWS) in roster-scheduler.component.tsx — adjust there if you want a different palette per shift.

Gantt screen (built, not active)

components/project-gantt-chart/ implements a Syncfusion GanttComponent-based view of BC project tasks and per-resource planning lines. To re-enable it, mount <ProjectGanttChart/> from App.tsx. Data services and Redux slices are already wired.

State slices

rosterData

projectsData

Manages the Gantt screen’s state: projects, edit-permission flag, and visibility/context for the six modal dialogs.

resourcesData

Domain types

Customisation

Never directly edit BC-Human-Resource-AL/scripts/assets/js/base.js — it’s overwritten on the next React build.
Partner customisation hooks: localisation strings (add an i18n layer in the React source), shift colour mapping (SHIFT_WINDOWS constant), and the default view range (3-month window in AutoLoad — change there).