Skip to content

Notifications

Backlog fieldValue
Story IDAP-GS-007
EpicGeneral Settings
Story typeBusiness workflow
Review statusDraft - business analyst and business owner review required
Source evidenceAppsPortal.Apis controller, application command/query handlers, validators, domain entities, and matching MFE workflow where available
Last source review2026-07-10

User story

As administrators and users, I want to configure notification services and review company or personal notifications so that important business events reach the right users.

Acceptance criteria

  1. Only authorized users can view or execute the feature's actions.
  2. Required business data, active dependencies, tenant/branch scope, and current document state are validated.
  3. Invalid requests return actionable validation errors without applying a partial change.
  4. Search, list, view, print, and export operations use the same authorized business scope.
  5. Material create, edit, status, approval, posting, reversal, and integration actions are auditable where applicable.
  6. Financial or stock effects are applied atomically and no more than once.

Business rules

Required

Service/channel identity, enabled state, recipients/rules, and timing are required for enabled notifications.

Optional or conditional

Templates, escalation, quiet hours, and optional channels are configurable.

Action behavior

Save changes future delivery; notification center read/mark actions do not change source business documents.

Blocking rule or downstream effect

Delivery failure is logged/retried and must not roll back the originating committed transaction.

Frontend page coverage

The following UI coverage is sourced from the pulled MFE route configuration. A Module-level supporting artifact mapping is evidence of a reachable screen, but requires BA confirmation that it belongs to this story rather than a more specific feature story.

Route/pageComponentModeRoute permission/guardMapping confidenceSource
(module default)NotificationCenterComponentList/navigationPermission: AppGeneralSettingsPermissions.NotificationCenter_List; Guards: PolicyAuthGuardFeature token matchapps/erpHome/src/app/remote-entry/general-setting/pages/notifications/notification-routing.module.ts:54
(module default)NotificationDetailsComponentView/detailPermission: AppGeneralSettingsPermissions.MyNotification_List; Guards: PolicyAuthGuardFeature token matchapps/erpHome/src/app/remote-entry/general-setting/pages/notifications/notification-routing.module.ts:76
(module default)NotificationListComponentList/navigationPermission: AppGeneralSettingsPermissions.NotificationSettings_List; Guards: PolicyAuthGuardFeature token matchapps/erpHome/src/app/remote-entry/general-setting/pages/notifications/notification-routing.module.ts:22
centerNotificationsMainComponentList/navigationPermission: AppGeneralSettingsPermissions.NotificationCenter_List; Guards: PolicyAuthGuardFeature token matchapps/erpHome/src/app/remote-entry/general-setting/pages/notifications/notification-routing.module.ts:44
edit/:idNotificationEditComponentEditPermission: AppGeneralSettingsPermissions.NotificationSettings_Edit; Guards: PolicyAuthGuardFeature token matchapps/erpHome/src/app/remote-entry/general-setting/pages/notifications/notification-routing.module.ts:32
my-notificationsNotificationsMainComponentList/navigationPermission: AppGeneralSettingsPermissions.MyNotification_List; Guards: PolicyAuthGuardFeature token matchapps/erpHome/src/app/remote-entry/general-setting/pages/notifications/notification-routing.module.ts:66
notificationsLazy-loaded routeList/navigationNo route-level permission/guard found in source windowFeature token matchapps/erpHome/src/app/remote-entry/general-setting/general-setting.module.ts:323
notifications/notification-service-timingNotificationServicesComponentList/navigationNo route-level permission/guard found in source windowFeature token matchapps/erpHome/src/app/remote-entry/general-setting/general-setting.module.ts:330
settingsNotificationsMainComponentList/navigationPermission: AppGeneralSettingsPermissions.NotificationSettings_List; Guards: PolicyAuthGuardFeature token matchapps/erpHome/src/app/remote-entry/general-setting/pages/notifications/notification-routing.module.ts:12

Observed frontend fields and validation

ComponentControlObserved frontend ruleComponent source
NotificationEditComponentchannelsRequired in component validatorapps/erpHome/src/app/remote-entry/general-setting/pages/notifications/pages/notification-edit/notification-edit.component.ts
NotificationEditComponentisActiveVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/general-setting/pages/notifications/pages/notification-edit/notification-edit.component.ts
NotificationEditComponentserviceVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/general-setting/pages/notifications/pages/notification-edit/notification-edit.component.ts
NotificationServicesComponentserviceNameRequired in component validatorapps/erpHome/src/app/remote-entry/general-setting/pages/notification-services/notification-services.component.ts
NotificationServicesComponentstartTimeIdRequired in component validatorapps/erpHome/src/app/remote-entry/general-setting/pages/notification-services/notification-services.component.ts
NotificationServicesComponentstatusVisible control; optional or API-dependentapps/erpHome/src/app/remote-entry/general-setting/pages/notification-services/notification-services.component.ts

Observed frontend actions

ComponentClick action/handlerBusiness review requirementComponent source
NotificationDetailsComponentonViewOpen the authorized record in view mode with its status, totals, lines, source and generated-document links; handle deleted, forbidden, and missing records without exposing stale data.apps/erpHome/src/app/remote-entry/general-setting/pages/notifications/pages/notification-details/notification-details.component.ts
NotificationListComponentonEditOpen the identified editable record only with Edit permission; posted/locked records remain blocked by route or action state and list context must be recoverable on return.apps/erpHome/src/app/remote-entry/general-setting/pages/notifications/pages/notification-list/notification-list.component.ts
RolesUsersComponentonAddDocument the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler.apps/erpHome/src/app/remote-entry/admin/pages/AccessControl/roles-users/roles-users.component.ts
RolesUsersComponentonDeleteAvailable only in deletable states with Delete permission; identify the record in confirmation, call delete once, remove/refresh the list row on success, and retain the row with the API reason on failure.apps/erpHome/src/app/remote-entry/admin/pages/AccessControl/roles-users/roles-users.component.ts

Page-specific frontend acceptance criteria

  1. (module default) - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: Permission: AppGeneralSettingsPermissions.NotificationSettings_List; Guards: PolicyAuthGuard
  2. (module default) - View/detail: Load an authorized immutable/detail representation with status-aware actions, linked records, print/export where exposed, and not-found/forbidden handling. Security observed: Permission: AppGeneralSettingsPermissions.MyNotification_List; Guards: PolicyAuthGuard
  3. center - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: Permission: AppGeneralSettingsPermissions.NotificationCenter_List; Guards: PolicyAuthGuard
  4. edit/:id - Edit: Load the identified record, enforce state/permission field locks, preserve concurrency identity, validate changes, and return without losing filters. Security observed: Permission: AppGeneralSettingsPermissions.NotificationSettings_Edit; Guards: PolicyAuthGuard
  5. my-notifications - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: Permission: AppGeneralSettingsPermissions.MyNotification_List; Guards: PolicyAuthGuard
  6. notifications - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: No route-level permission/guard found in source window
  7. notifications/notification-service-timing - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: No route-level permission/guard found in source window
  8. settings - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: Permission: AppGeneralSettingsPermissions.NotificationSettings_List; Guards: PolicyAuthGuard

Internal Documentation — Microtec