كيف تستخدم هذه الصفحة · How to use
1) اتبع المراحل بالترتيب أدناه. 2) افتح الفصل التفصيلي عند الحاجة. 3) نفّذ على المثيل عبر روابط {BASE}. 4) لا تنتقل إلى المرحلة التالية قبل اجتياز البوابة (Gate).
1) Follow stages in order · 2) Open full chapter HTML for field detail · 3) Click instance URLs · 4) Do not skip gates.
مراحل التعلم الثابتة · Fixed learning stages
- المرئي: هذه الصفحة — خريطة وبوابات.
- الفصول 01–16: بناء تطبيق HR Leave (تطوير → أمن → كتالوج → بوابة → … → إغلاق).
- الموديولات: موسوعة ITSM → CMDB → … بالترتيب أدناه.
- مسار التطبيق: إثبات E2E على HR Leave قبل الذكاء الاصطناعي.
- AI ثم SDK: بعد أن يعمل المسار الأساسي.
Chapters path 01 → 16
Three tracks inside chapters
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
- 10 Cutover · UAT
- 13 Summary · 16 Master path
- Modules after core app works
Start → 10
مرحلة الموديولات · Modules stage
بعد إتقان مسار HR Leave الأساسي، ادرس الموديولات بهذا الترتيب الثابت:
مسار تطبيق HR Leave · App build spine
Fixed order (do not reorder): 01 → 02 → 03 → 04 → 05 → 06 → 07 → 08 → 09 → 10 then 12 → 15. Gate: chapter 10 UAT green before AI.
مرحلة AI · After core is green
مرحلة SDK · Install → Deploy
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 01–16 — visual boards
لوحات مرئية لكل فصل. التفاصيل داخل ملفات HTML فقط (لا ملفات Markdown).
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
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 →
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 →
REGRegister
BReventQueue
MAILTemplate
JOBAccrual 1 Jan
REGRegister
→BReventQueue
→MAILTemplate
→JOBAccrual 1 Jan
Events & Jobsysevent_register
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 →
RPTBy state
ACLViewer rows
DASHWidget
SHARERoles
RPTBy state
→ACLViewer rows
→DASHWidget
→SHARERoles
Report wizard$report.do
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
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 →
MENUHR Leave
MOD4 modules
FLOWAsk approval
STATEapproved
MENUHR Leave
→MOD4 modules
→FLOWAsk approval
→STATEapproved
Menu + Flowflow-designer
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 →
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 →
PICKHR Leave
SETYours
EDITOne family
TESTThen next
PICKHR Leave
→SETYours
→EDITOne family
→TESTThen next
Daily Studio$studio.do
PickerHR Leave
SetYours only
OwnerStudio XOR SDK
Screen — Daily discipline.
✓ Glance picker every New✗ Studio edit if SDK owns it
Open Full SDK Docs → Open Studio practice 11 →
SIIntegrationUtils
APIScripted REST
ACLexecute
POST201
ROWreq_v2
SIIntegrationUtils
→APIScripted REST
→ACLexecute
→POST201
→ROWreq_v2
REST Explorer$restapi.do
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 →
LISTOBJ
OPENInstance
TICKOnly if proven
LISTOBJ
→OPENInstance
→TICKOnly if proven
OBJ checklistchapter 13
RuleOpenable = proven
NotMemory tick
Screen — Revision as proof.
✓ Open record = proof✗ Tick from memory
Open full chapter 13 →
E2EMust be green
AGENTTools
ACLInvoking user
TOWERRegister
E2EMust be green
→AGENTTools
→ACLInvoking user
→TOWERRegister
AI Agent Studionow/agent-studio
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 AI Master → Open chapter 14 deep →
SRCscripts/
COPYBlock
PASTEStudio
SAVETest
SRCscripts/
→COPYBlock
→PASTEStudio
→SAVETest
Scripts portalscripts/index.html
SourceOne truth
NameClass = record
Screen — Paste library.
✓ Diff after paste✗ Rename class ≠ record name
Open full chapter 15 →
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
Gate1Security
Gate2Approve path
Gate3Go-live
Screen — Ordered programme spine.
✓ Hard gates stop the path✗ Portal before ACLs
Open full chapter 16 →
Done when (HR Leave gate): employee1 submits → manager1 approves → balance updates → notification fires → ATF green → UAT signed.
Academy complete when: Chapters path + Modules stage + AI hub + SDK hub are each practiced in order. This page is the only master index.
← Back to Academy home