HR Leave · Australia

Visual From Scratch — Development · Administration · Implementation

Diagrams · flows · screen maps · direct URLs · best-practice chips. Read the pictures; open the URL; then do the step.

Scopex_786686_hr_leave
Chapters00 → 16
Replace{BASE}
StyleVisual-first
Start here Studio Application Leave Requests Update Sets Employee Center Flow Designer REST Explorer

How to use this page (no long reading)

1) Follow the blue path chips 00→16 · 2) Read each flow arrow · 3) Click green ✓ / red ✗ chips · 4) Click URL chips to open the instance · 5) Open the chapter link only when you need field-level detail.

Path 00 → 16

00→01→02→03→04→05→06→07→08→09→10→11→12→13→14→15→16

Three tracks

Development

  • 01 Tables · SI · BR · CS · UI
  • 03 Catalog · 04 Portal · 05 Workspace
  • 08 ATF · 09 Flow · 12 REST · 15 Scripts
Start → 01

Administration

  • 02 Roles · Groups · ACLs · Properties
  • 06 Events · Notifications · Jobs
  • 07 Reports · Dashboards
Start → 02

Implementation

  • 00 Plan · 10 Cutover · UAT
  • 13 Summary · 16 Master path
  • Modules access map below
Start → 10

End-to-end leave lifecycle

EMPCatalog / Form
→
BR1Days+Approver
→
SUBState=submitted
→
EVTeventQueue
→
FLOWAsk Approval
→
APRapproved
→
BR3Audit+Balance
→
MAILNotify
Leave Request · req_v2x_786686_hr_leave_req_v2.do
Form
Related · Audit
Related · Balance
UI Action Submit
NumberHRL0001001
Requested foremployee1
Typeannual
Start / End2026-06-01 → 2026-06-05
Days5 ← BR1 before
Approvermanager1 ← from employee.u_manager
Statesubmitted
Screen — core form after Submit. Days and Approver must already be filled by BR1.

Module access map — who opens what

Best practices wall (whole programme)

✓ Application picker = HR Leave ✓ Update Set current before New ✓ u_* on *_v2 tables ✓ BR1 before · order 100/200/250/300 ✓ Roles via groups only ✓ Test as employee1 real login ✓ Groups exported separately ✓ ATF on target before UAT ✗ Global scope for app files ✗ Admin-only testing ✗ current.update() in BR ✗ Portal before ACLs ✗ AI before E2E ✗ Integration Table API

Architecture at a glance

HR Leave architecturescope x_786686_hr_leave
Development
Administration
Implementation
Runtime
Tablesemployee_v2 · req_v2 · bal_v2 · audit_v2
LogicHRLXProLeaveUtilsV2 · SecurityUtilsV2 · IntegrationUtilsV2
RulesBR1 days · BR2 submit evt · BR3 audit · BR4 approve evt
Security4 roles · ACLs · properties
IntakeCatalog RP · Portal · Workspace · REST
AsyncEvents · Notifications · Accrual job · Flow
ProveATF · UAT matrix · Update Set
Screen — whole application on one board. Build left-to-right: Dev → Admin → Impl.

Chapters 00–16 — visual boards

Chapter 00 — Study Plan — 14 days

Programme map: study PDI vs implement target · Track: IMPL · Detail: 00_MASTER_STUDY_PLAN_2WEEKS.html

PLANPick track
PDIStudy only
TARGETImplement
GATECh.10 UAT
PLANPick track
→
PDIStudy only
→
TARGETImplement
→
GATECh.10 UAT
Study programme00 plan
Study
Implement
Gate
TrackStudy on PDI
TargetNamed instance
OwnerNamed person
Day 13Ch.10 on target
Screen — do not treat PDI study as go-live.
✓ Study ≠ go-live✓ One update set per person✗ Share current update set✗ Exam banks before E2E

Open full chapter 00 →


Chapter 01 — Development — app from zero

App → 4 tables → SI → BR1–4 → CS → UI → menu → Flow · Track: DEV · Detail: 01_DEVELOPMENT.html

APPCreate scope
TBL4 × _v2
SIUtils
BR100→300
UICS+Policy
FLOWApprove
APPCreate scope
→
TBL4 × _v2
→
SIUtils
→
BR100→300
→
UICS+Policy
→
FLOWApprove
Studio · HR Leave$studio.do
Application
Tables
Script Includes
Business Rules
Client Scripts
Scopex_786686_hr_leave
Tables4 × *_v2
SIHRLXProLeaveUtilsV2
BR order100 · 200 · 250 · 300
ProofcalculateBusinessDays → 5
Screen — Development spine in Studio.
✓ u_* columns only✓ BR1 = before✓ Commit keys if SDK✗ Extend Task✗ current.update() in BR✗ Legacy duration_days

Open full chapter 01 →


Chapter 02 — Administration — security

Roles → Groups → Users → ACLs → 9 properties → Update Set · Track: ADM · Detail: 02_ADMINISTRATION.html

ROLE4 roles
GRPGroups
USERLab users
ACLRead/Write
PROP9 keys
ROLE4 roles
→
GRPGroups
→
USERLab users
→
ACLRead/Write
→
PROP9 keys
Roles & ACLssys_user_role_list
Roles
Groups
Users
ACLs
Properties
Rolesemployee · manager · hr_admin · integration
GrantVia groups only
ACL testemployee1 ✗ employee2 URL
Props9 scoped keys
Screen — Administration security board.
✓ Roles via groups✓ Test as non-admin✓ Explicit delete ACL✗ Test only as admin✗ Direct user→role✗ Properties client-side

Open full chapter 02 →


Chapter 03 — Service Catalog — intake

Category → Record Producer → variables → publish · Track: DEV · Detail: 03_SERVICE_CATALOG.html

CATCategory
RPProducer
VARQuestions
SCRIPTMap fields
PUBEmployee Center
CATCategory
→
RPProducer
→
VARQuestions
→
SCRIPTMap fields
→
PUBEmployee Center
Record Produceresc / catalog
Category
Item
Variables
Script
ItemSubmit Leave Request
Tablereq_v2
Identitygs.getUserID()
Statesubmitted
Screen — Catalog intake (not the native form).
✓ gs.getUserID()✓ Whitelist leave_type✓ Catalog UI Policy ≠ UI Policy✗ Trust variable identity✗ Skip employee lookup

Open full chapter 03 →


Chapter 04 — Service Portal — self-service

Widgets hrlx_my_leaves + hrlx_balance → page hrlx_home · Track: DEV · Detail: 04_SERVICE_PORTAL.html

W1My leaves
W2Balance
PAGEhrlx_home
ROLEemployee
W1My leaves
→
W2Balance
→
PAGEhrlx_home
→
ROLEemployee
Portal hrlx_home/hrlx?id=hrlx_home
Balance
My leaves
Cancel
Useremployee1 only
QueryGlideRecordSecure
CancelServer-side
Roleemployee on page+widget
Screen — Employee self-service portal.
✓ GlideRecordSecure✓ Cancel on server✓ Role on widget✗ ng-bind-html on reason✗ Show team on employee page

Open full chapter 04 →


Chapter 05 — Workspace — fulfiller UI

My Requests · Team Approvals · Admin pages · Track: DEV · Detail: 05_WORKSPACE_UIBUILDER.html

EXPExperience
DRData resources
PAGES3 roles
PUBPublish
EXPExperience
→
DRData resources
→
PAGES3 roles
→
PUBPublish
WorkspaceUI Builder
My Requests
Team Approvals
Admin
PublishRequired
DataSession user
ManagerApprover filter
Screen — Fulfiller workspace (not portal).
✓ Run as session user✓ Page roles = security✗ Unpublished = invisible✗ Team list on portal

Open full chapter 05 →


Chapter 06 — Events · mail · jobs

3 events → 3 emails · annual accrual job · Track: ADM · Detail: 06_NOTIFICATIONS_EVENTS_JOBS.html

REGRegister
BReventQueue
MAILTemplate
JOBAccrual 1 Jan
REGRegister
→
BReventQueue
→
MAILTemplate
→
JOBAccrual 1 Jan
Events & Jobsysevent_register
Register
Notify
Job
Eventssubmitted · approved · rejected
MailReal SMTP test
JobSkip existing balances
Screen — Async layer.
✓ Register before fire✓ Idempotent job✓ Test real SMTP✗ Email on every update✗ Job without skip-existing

Open full chapter 06 →


Chapter 07 — Reports & dashboards

Leave by State report → dashboard widget · Track: ADM · Detail: 07_REPORTS_DASHBOARDS_PA.html

RPTBy state
ACLViewer rows
DASHWidget
SHARERoles
RPTBy state
→
ACLViewer rows
→
DASHWidget
→
SHARERoles
Report wizard$report.do
Report
Dashboard
Share
ReportLeave by State
ACLViewer rows only
LeadersCounts, no names
Screen — Reporting surface.
✓ No names on leadership slides✓ Report in app scope✗ Run-as admin on dashboards

Open full chapter 07 →


Chapter 08 — ATF — proof

Suite HRLX Leave Core · BR1 · ACL · CS2 · Track: DEV · Detail: 08_ATF_TESTING.html

SUITECreate
T1BR1 days
T2ACL isolation
T3Form days
RUNGreen
SUITECreate
→
T1BR1 days
→
T2ACL isolation
→
T3Form days
→
RUNGreen
ATF suitesys_atf_test_suite
Suite
BR1
ACL
CS2
ImpersonateRequired for ACL
Break BR1Exactly 1 fail
ScopeIn update set
Screen — Automated evidence.
✓ Impersonate in ACL test✓ Break BR1 once to prove✗ Pass as admin only

Open full chapter 08 →


Chapter 09 — Modules & Flow

Application menu + Ask For Approval flow · Track: DEV · Detail: 09_MODULES_AND_INTEGRATION.html

MENUHR Leave
MOD4 modules
FLOWAsk approval
STATEapproved
MENUHR Leave
→
MOD4 modules
→
FLOWAsk approval
→
STATEapproved
Menu + Flowflow-designer
Menu
Modules
Flow
ModulesRole-gated
FlowAsk For Approval
ExclusiveOne per record
Screen — Navigation and approval.
✓ Role per module✓ Flow exclusive✓ No Send Email in flow✗ Empty approver = stuck

Open full chapter 09 →


Chapter 10 — Implementation — go-live

Seed → E2E → Update Set → UAT matrix · Track: IMPL · Detail: 10_IMPLEMENTATION_AND_CONFIG.html

SEEDData
E2EDemo
EXPORTXML
PREVIEWCollisions
UATHR signs
SEEDData
→
E2EDemo
→
EXPORTXML
→
PREVIEWCollisions
→
UATHR signs
Update Set cutoversys_update_set_list
Complete
Export
Preview
Commit
UAT
TravelsConfig artefacts
Does notUsers · groups · data
SignHR operations
Screen — Implementation gate.
✓ Groups do NOT travel✓ Rollback written first✗ UAT signed by builder✗ Accept all collisions

Open full chapter 10 →


Chapter 11 — Studio daily practice

Picker · update set · one artefact family · Track: DEV · Detail: 11_SDK_CURSOR_CLAUDE.html

PICKHR Leave
SETYours
EDITOne family
TESTThen next
PICKHR Leave
→
SETYours
→
EDITOne family
→
TESTThen next
Daily Studio$studio.do
Picker
Set
Edit
Test
PickerHR Leave
SetYours only
OwnerStudio XOR SDK
Screen — Daily discipline.
✓ Glance picker every New✗ Studio edit if SDK owns it

Open full chapter 11 →


Chapter 12 — Integration — REST API

Scripted REST POST /leave · Explorer · Track: DEV · Detail: 12_INTEGRATION_FULL_GUIDE.html

SIIntegrationUtils
APIScripted REST
ACLexecute
POST201
ROWreq_v2
SIIntegrationUtils
→
APIScripted REST
→
ACLexecute
→
POST201
→
ROWreq_v2
REST Explorer$restapi.do
API
POST /leave
201
Userhrlx.integration
Bodyemployee_id (not sys_id)
Idempotentexternal_id
Screen — Integration front door.
✓ Resolve by employee_id✓ Idempotency key✗ Table API for integration✗ Password in script

Open full chapter 12 →


Chapter 13 — 2-hour summary

OBJ-01→32 revision with openable proof · Track: IMPL · Detail: 13_2HOUR_MASTER_SUMMARY.html

LISTOBJ
OPENInstance
TICKOnly if proven
LISTOBJ
→
OPENInstance
→
TICKOnly if proven
OBJ checklistchapter 13
Open
Prove
Tick
RuleOpenable = proven
NotMemory tick
Screen — Revision as proof.
✓ Open record = proof✗ Tick from memory

Open full chapter 13 →


Chapter 14 — AI — after core works

Now Assist / VA / Agent Studio / Control Tower · Track: DEV · Detail: 14_AI_SERVICENOW_AGENTS.html

E2EMust be green
AGENTTools
ACLInvoking user
TOWERRegister
E2EMust be green
→
AGENTTools
→
ACLInvoking user
→
TOWERRegister
AI Agent Studionow/agent-studio
E2E first
Tools
Tower
AccessInvoking user
WriteNo u_state
TowerNamed owner
Screen — AI only after core green.
✓ GlideRecordSecure✓ Read-mostly tools✗ AI before ACLs✗ Tool writes u_state

Open full chapter 14 →


Chapter 15 — Scripts library

Paste from scripts/ portal into Studio · Track: DEV · Detail: 15_CLAUDE_CLI_CODE_SERVICENOW.html

SRCscripts/
COPYBlock
PASTEStudio
SAVETest
SRCscripts/
→
COPYBlock
→
PASTEStudio
→
SAVETest
Scripts portalscripts/index.html
Copy
Paste
Save
SourceOne truth
NameClass = record
Screen — Paste library.
✓ Diff after paste✗ Rename class ≠ record name

Open full chapter 15 →


Chapter 16 — Master path 01→15

Ordered build · E2E gate · joiner spine · Track: IMPL · Detail: 16_SDK_FULL_DEV_ADMIN_FROM_SCRATCH.html

01+02Security gate
03+06+09Approve path
08+10Go-live gate
14AI last
01+02Security gate
→
03+06+09Approve path
→
08+10Go-live gate
→
14AI last
Master pathchapter 16
01+02
03+06+09
08+10
14
Gate1Security
Gate2Approve path
Gate3Go-live
Screen — Ordered programme spine.
✓ Hard gates stop the path✗ Portal before ACLs

Open full chapter 16 →


Done when: employee1 submits → manager1 approves → balance updates → notification fires → ATF green on target → HR signs UAT. Detail lives in each chapter file; this page is the map.