Appearance
Workflow Configuration
| Backlog field | Value |
|---|---|
| Story ID | AP-GS-012 |
| Epic | General Settings |
| Story type | Master data / configuration |
| Review status | Draft - business analyst and business owner review required |
| Source evidence | AppsPortal.Apis controller, application command/query handlers, validators, domain entities, and matching MFE workflow where available |
| Last source review | 2026-07-10 |
User story
As process administrators, I want to configure approval workflows for supported transactions so that documents follow required approval paths.
Acceptance criteria
- Only authorized users can view or execute the feature's actions.
- Required business data, active dependencies, tenant/branch scope, and current document state are validated.
- Invalid requests return actionable validation errors without applying a partial change.
- Search, list, view, print, and export operations use the same authorized business scope.
- Material create, edit, status, approval, posting, reversal, and integration actions are auditable where applicable.
- Financial or stock effects are applied atomically and no more than once.
Business rules
Required
Module/screen, trigger, ordered steps, approver rule, outcomes, and active state are required.
Optional or conditional
Thresholds, branches, alternates, escalation, and notifications are optional.
Action behavior
Publish affects future submissions; in-flight workflow keeps its version unless migration is explicit.
Blocking rule or downstream effect
Users cannot Post before required approval and cannot approve their own work when segregation policy forbids it.
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/page | Component | Mode | Route permission/guard | Mapping confidence | Source |
|---|---|---|---|---|---|
| (module default) | ListWorkflowConfigComponent | List/navigation | Permission: AppGeneralSettingsPermissions.WorkflowConfig_List,; Guards: PolicyAuthGuard | Feature token match | apps/erpHome/src/app/remote-entry/general-setting/pages/WorkflowConfiguration/workflow-config-routing.module.ts:19 |
| (module default) | MainworkflowconfigComponent | List/navigation | Permission: AppGeneralSettingsPermissions.WorkflowConfig_List,; Guards: PolicyAuthGuard | Feature token match | apps/erpHome/src/app/remote-entry/general-setting/pages/WorkflowConfiguration/workflow-config-routing.module.ts:11 |
| add | AddWorkflowConfigComponent | Add | Permission: AppGeneralSettingsPermissions.WorkflowConfig_Add,; Guards: PolicyAuthGuard | Feature token match | apps/erpHome/src/app/remote-entry/general-setting/pages/WorkflowConfiguration/workflow-config-routing.module.ts:32 |
| edit/:id | EditWorkflowConfigComponent | Edit | Permission: AppGeneralSettingsPermissions.WorkflowConfig_Edit,; Guards: PolicyAuthGuard | Feature token match | apps/erpHome/src/app/remote-entry/general-setting/pages/WorkflowConfiguration/workflow-config-routing.module.ts:45 |
Observed frontend fields and validation
| Component | Control | Observed frontend rule | Component source |
|---|---|---|---|
| AddWorkflowConfigComponent | actionIds | Required in component validator | apps/erpHome/src/app/remote-entry/general-setting/pages/WorkflowConfiguration/pages/add-workflow-config/add-workflow-config.component.ts |
| AddWorkflowConfigComponent | isActive | Visible control; optional or API-dependent | apps/erpHome/src/app/remote-entry/general-setting/pages/WorkflowConfiguration/pages/add-workflow-config/add-workflow-config.component.ts |
| AddWorkflowConfigComponent | moduleId | Required in component validator | apps/erpHome/src/app/remote-entry/general-setting/pages/WorkflowConfiguration/pages/add-workflow-config/add-workflow-config.component.ts |
| AddWorkflowConfigComponent | serviceId | Required in component validator | apps/erpHome/src/app/remote-entry/general-setting/pages/WorkflowConfiguration/pages/add-workflow-config/add-workflow-config.component.ts |
| AddWorkflowConfigComponent | workflowTemplateId | Required in component validator | apps/erpHome/src/app/remote-entry/general-setting/pages/WorkflowConfiguration/pages/add-workflow-config/add-workflow-config.component.ts |
| EditWorkflowConfigComponent | actionIds | Visible control; optional or API-dependent | apps/erpHome/src/app/remote-entry/general-setting/pages/WorkflowConfiguration/pages/edit-workflow-config/edit-workflow-config.component.ts |
| EditWorkflowConfigComponent | isActive | Visible control; optional or API-dependent | apps/erpHome/src/app/remote-entry/general-setting/pages/WorkflowConfiguration/pages/edit-workflow-config/edit-workflow-config.component.ts |
| EditWorkflowConfigComponent | moduleId | Visible control; optional or API-dependent | apps/erpHome/src/app/remote-entry/general-setting/pages/WorkflowConfiguration/pages/edit-workflow-config/edit-workflow-config.component.ts |
| EditWorkflowConfigComponent | serviceId | Visible control; optional or API-dependent | apps/erpHome/src/app/remote-entry/general-setting/pages/WorkflowConfiguration/pages/edit-workflow-config/edit-workflow-config.component.ts |
| EditWorkflowConfigComponent | workflowTemplateId | Visible control; optional or API-dependent | apps/erpHome/src/app/remote-entry/general-setting/pages/WorkflowConfiguration/pages/edit-workflow-config/edit-workflow-config.component.ts |
Observed frontend actions
| Component | Click action/handler | Business review requirement | Component source |
|---|---|---|---|
| ListWorkflowConfigComponent | onDelete | Available 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/general-setting/pages/WorkflowConfiguration/pages/list-workflow-config/list-workflow-config.component.ts |
| ListWorkflowConfigComponent | onEdit | Open 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/WorkflowConfiguration/pages/list-workflow-config/list-workflow-config.component.ts |
Page-specific frontend acceptance criteria
- (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.WorkflowConfig_List,; Guards: PolicyAuthGuard
- add - Add: Render permitted fields, required indicators, defaults, dependent lookups, validation, Save/Cancel, loading, success, and API-error states. Security observed: Permission: AppGeneralSettingsPermissions.WorkflowConfig_Add,; Guards: PolicyAuthGuard
- 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.WorkflowConfig_Edit,; Guards: PolicyAuthGuard