Feedback wanted: my first scoped app after CSA (Training & Certification Mgmt)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
6 hours ago
Hi all,
I recently passed CSA and wanted to build something end to end instead of just doing labs, so I built a scoped app on my PDI for managing employee training: courses, sessions, enrollments and certifications.
What's in it:
- 4 custom tables with references, related lists and role-based views (HR / Training Manager)
- UI policies and an onSubmit client script (End Date can't be before Start Date)
- A before business rule that blocks an enrollment being marked Completed without a completion date
- A Flow Designer approval for enrollment requests, with approved/rejected notifications
- Reminder notifications driven by scheduled jobs
- A Platform Analytics dashboard (enrollments by status, sessions by course, certifications by status)
Three things that caught me out:
1. In Flow Designer, when the approver rejected, "Ask for Approval" came back as state "cancelled" in my flow, not "rejected". My rejection branch never fired until I checked for both.
2. Date/Time values set through the Table API are treated as UTC, so my sessions showed 01:00 instead of 09:00. Passing sysparm_input_display_value=true fixed it.
3. A background script running in the app's scope couldn't write to sys_choice (cross-scope policy). It had to run in global.
Everything is documented (requirements, data dictionary, dev log, 19 test cases with screenshots):
https://github.com/sparsh17max/servicenow-employee-training-management
I'd really appreciate feedback, especially on what you'd do differently in a production instance. Next I'm building a no-code onboarding app (catalog item, Flow Designer, SLAs, ACLs) that integrates with this one.
Thanks!
