15 KiB
c-entron.NET - Undocumented State Machines & Workflow Use Cases
Generated: 2025-11-11 Source: Enum Analysis from Centron.Entities Total State Machines: 9 (78% undocumented) Wizard Workflows: 30+ pages across 4 wizards
1. HELPDESK TICKET WORKFLOW (5 States)
State Machine Definition
States:
1. New (Initial)
2. InProgress (Assigned to technician)
3. OnHold (Awaiting customer response/parts)
4. Resolved (Fix applied, awaiting confirmation)
5. Closed (Completed, resolved)
State Transitions:
New → InProgress [Trigger: Assign to technician]
New → OnHold [Trigger: Cannot reproduce]
InProgress → OnHold [Trigger: Blocked by external dependency]
OnHold → InProgress [Trigger: Dependency resolved]
InProgress → Resolved [Trigger: Fix verified]
OnHold → Resolved [Trigger: Auto-resolve due to inactivity]
Resolved → Closed [Trigger: Customer confirmed resolution]
Closed → InProgress [Trigger: Customer reports issue not resolved]
* → Closed [Trigger: Manual closure by manager]
Associated Use Cases
UC1: Create Ticket
- System: New ticket created with status "New"
- Fields: Title, Description, CategoryI3D, PriorityI3D
- Auto-assignments: Assign to On-call technician (optional)
UC2: Assign Ticket
- Technician: Move ticket from New → InProgress
- System: Create assignment record, notify assignee
- Auto-escalation: If not assigned within SLA
UC3: Put Ticket OnHold
- Technician: Move to OnHold state
- Reason: Awaiting customer info, parts on order, etc.
- SLA: Timer paused while OnHold
- Auto-resume: After specified days or manual action
UC4: Resolve Ticket
- Technician: Apply fix, mark InProgress → Resolved
- Action: Send resolution summary to customer
- Feedback: Request customer confirmation
UC5: Close Ticket
- Customer: Confirm resolution (manual or auto after X days)
- System: Move Resolved → Closed
- Survey: Request satisfaction rating (NPS)
- Reporting: Include in resolution metrics
UC6: Reopen Ticket
- Customer: Reports issue not resolved
- System: Move Closed → InProgress
- Notify: Reassign to original technician
- Escalation: Track reopen count
UC7: Escalate Ticket
- Manager: Increase priority if SLA breached
- Action: Move to senior technician
- Notification: Alert management of SLA breach
UC8: Auto-Close OnHold
- System: Automatically close if OnHold > X days
- Notification: Send reminder to customer before auto-close
- Use Case: Prevent zombie tickets
2. CONTINGENT/LICENSING STATE MACHINE (4 States)
State Machine Definition
States:
1. Open (Available to use)
2. Reserved (Allocated to customer)
3. Used (Fully consumed)
4. Expired (Time period ended)
Transitions:
Open → Reserved [Trigger: Customer allocates contingent]
Open → Used [Trigger: Full amount consumed]
Reserved → Used [Trigger: Customer consumes allocation]
Reserved → Open [Trigger: Customer cancels reservation]
Used → Open [Trigger: Contingent replenished]
Any → Expired [Trigger: Expiration date reached]
Expired → Open [Trigger: Contingent renewed]
Associated Use Cases
UC1: Set Up Contingent
- Billing: Create contingent container (e.g., 100 GB backup storage)
- Period: Valid from StartDate to EndDate
- Status: Set to "Open"
UC2: Reserve Contingent
- Customer: Reserve portion for specific project (e.g., 50 GB)
- System: Move 50 GB from Open → Reserved
- Tracking: Link reservation to contract
UC3: Consume Contingent
- Usage: Customer uses reserved amount
- System: Move from Reserved → Used as consumed
- Tracking: Update usage counter
UC4: Cancel Reservation
- Customer: Decide not to use reserved amount
- System: Move back from Reserved → Open
- Usage: Amount returns to available pool
UC5: Contingent Expiration
- System: Auto-expire unused contingent on EndDate
- Notification: Alert customer before expiration (optional)
- Renewal: Create new contingent or extend existing
UC6: Replenish Contingent
- Billing: Add additional contingent to existing pool
- System: Increase total, reset counter
- Use Case: Upgrade or expand service
UC7: Track Contingent Usage
- Reporting: Show Open, Reserved, Used, Expired amounts
- Forecasting: Predict when contingent will be exhausted
- Billing: Charge based on Used amount
3. CRM PROJECT STATE MACHINE (4 States)
State Machine Definition
States:
1. Planning (Initial requirements gathering)
2. InProgress (Active execution)
3. OnHold (Suspended)
4. Completed (Finished)
Transitions:
Planning → InProgress [Trigger: Project kicked off]
Planning → Completed [Trigger: Cancelled before start]
InProgress → OnHold [Trigger: Resource unavailable]
OnHold → InProgress [Trigger: Issue resolved]
InProgress → Completed [Trigger: All deliverables done]
* → Planning [Trigger: Replan project]
Associated Use Cases
UC1: Create CRM Project
- Sales: Create new project for opportunity
- Status: Initially set to "Planning"
- Scope: Define deliverables, timeline
UC2: Kick Off Project
- Project Manager: Planning → InProgress
- Action: Assign resources, set milestone dates
- Notification: Notify team members
UC3: Suspend Project
- Manager: Move InProgress → OnHold
- Reason: Budget cut, resource shortage, market change
- Impact: SLA timers paused
UC4: Resume Project
- Manager: Move OnHold → InProgress
- Action: Reassign resources
- Notification: Update stakeholders
UC5: Complete Project
- Team: InProgress → Completed
- Action: Mark deliverables done
- Feedback: Customer satisfaction survey
- Reporting: Lessons learned, financials
UC6: Archive Project
- Manager: Move Completed → Archived
- Use Case: Clean up old projects
4. SELF-CARE FORM STATE MACHINE (5 States)
State Machine Definition
States:
1. Draft (Form not submitted)
2. Submitted (Waiting for approval)
3. Approved (Accepted by reviewer)
4. Rejected (Needs revision)
5. Completed (Action taken)
Transitions:
Draft → Submitted [Trigger: User submits]
Submitted → Approved [Trigger: Reviewer approves]
Submitted → Rejected [Trigger: Reviewer rejects]
Rejected → Draft [Trigger: User edits]
Draft → Submitted [Trigger: User resubmits]
Approved → Completed [Trigger: System processes action]
Associated Use Cases
UC1: Create Self-Service Request
- Employee: Create form (e.g., password reset, address change)
- Status: Draft
- Use Case: Employee portal form submission
UC2: Submit Form for Approval
- Employee: Submit form to manager/HR
- Status: Draft → Submitted
- Notification: Alert reviewer
UC3: Review & Approve Form
- Manager: Validate request
- Status: Submitted → Approved
- Action: Trigger downstream process (e.g., reset password)
UC4: Reject Form
- Manager: Request revision
- Status: Submitted → Rejected
- Feedback: Send reason for rejection
UC5: Edit & Resubmit Form
- Employee: Revise based on feedback
- Status: Rejected → Draft → Submitted
- Use Case: Iterative approval process
UC6: Process Approved Form
- System: Execute action (create account, update data, etc.)
- Status: Approved → Completed
- Notification: Confirm completion to employee
5. EVENT TRIGGER KINDS (6 Event Types)
Event Type Classification
Event triggers define automation rules:
- OnInsert - Triggered when record created
- OnUpdate - Triggered when record modified
- OnDelete - Triggered when record deleted
- OnWorkflow - Triggered by workflow step
- OnSchedule - Triggered on date/time
- OnExternal - Triggered by external system
Associated Use Cases
UC1: Auto-Create Follow-up Ticket
- Trigger: OnDelete of ticket (if reopened multiple times)
- Action: Create escalation ticket to manager
- Use Case: Quality control
UC2: Send Confirmation Email
- Trigger: OnInsert of invoice
- Action: Email customer invoice PDF
- Use Case: Automated customer communication
UC3: Update Stock Level
- Trigger: OnInsert of sales order
- Action: Decrement inventory
- Use Case: Real-time inventory sync
UC4: Archive Old Tickets
- Trigger: OnSchedule (daily at 2 AM)
- Action: Move closed tickets to archive
- Use Case: Performance optimization
UC5: Payment Reminder
- Trigger: OnSchedule (30 days after invoice)
- Action: Send payment due notice
- Use Case: Collections automation
6. RECEIPT/DOCUMENT USER STATE (3 States)
State Machine Definition
States:
1. Draft (Initial/incomplete)
2. Posted (Submitted to accounting)
3. Archived (Historical)
Transitions:
Draft → Posted [Trigger: User finalizes]
Posted → Archived [Trigger: Period close]
Associated Use Cases
UC1: Create Draft Receipt
- User: Create receipt, add line items
- Status: Draft
- Edit: Can modify until posted
UC2: Post Receipt
- Accounting: Mark complete
- Status: Draft → Posted
- GL Impact: Creates accounting entries
UC3: Archive Receipt
- System: Move to archive after period close
- Status: Posted → Archived
- Query: Read-only access for historical
7. HELPDESK TIMER BILLING STATE (4 States)
State Machine Definition
States:
1. NotStarted (Timer not activated)
2. Running (Timer active)
3. Paused (Timer stopped, can resume)
4. Billed (Time consumed, invoice generated)
Transitions:
NotStarted → Running [Trigger: Technician starts work]
Running → Paused [Trigger: Technician takes break]
Paused → Running [Trigger: Resume work]
Running → Billed [Trigger: Ticket closed]
Paused → Billed [Trigger: Ticket closed]
Associated Use Cases
UC1: Start Timer
- Technician: Begin work on ticket
- Status: NotStarted → Running
- Tracking: Record start time
UC2: Pause Timer
- Technician: Take lunch/break
- Status: Running → Paused
- Tracking: Record pause time
UC3: Resume Timer
- Technician: Return from break
- Status: Paused → Running
- Tracking: Update total time
UC4: Bill for Time
- System: Generate invoice when ticket closed
- Status: Running/Paused → Billed
- Amount: Calculate from hourly rate
- Use Case: Time-and-materials billing
UC5: Adjust Time (Manual)
- Manager: Correct time entry
- Reason: Non-productive time, mistakes
- Action: Update billed amount
WIZARD WORKFLOWS (30+ Pages)
Wizard 1: Automated Contract Billing (7 Pages)
Flow: Select Date → Choose Contracts → Preview → Configure → Send
Page 1: Separator - "Step 1: Verträge auswählen"
- Header only
Page 2: Billing Date & Filters
- Input: ContractDateFilter (DateTime)
- Filters: CalculationKind, BillingKinds, ContractExtraKind
- Submit: Load matching contracts
Page 3: Contract Selection
- Display: Filtered contracts with indicators
- Multi-select: Choose contracts to bill
- Actions: Preview, calculate totals
Page 4: Separator - "Step 2: Einstellungen"
- Header only
Page 5: Send Settings
- Options: Print, Email, Archive
- Email: Recipient configuration
- Print: Printer selection
Page 6: Separator - "Step 3: Verträge abrechnen"
- Header only
Page 7: Overview & Execute
- Preview: Summary of invoices to create
- Execute: Confirm and run billing
- Result: Success/error summary
UC: Complete Automated Billing Run
- Specify billing date
- Filter contracts (date, type, kind, interval)
- Review matching contracts
- Configure delivery method
- Preview invoices
- Execute billing
- Receive confirmation
Wizard 2: Campaign Management (9 Pages)
Page 1: Customer Selection
- Add customers to campaign
Page 2: Campaign Phase Definition
- Define campaign phases (awareness, consideration, decision)
Page 3: Employee Assignment
- Assign sales reps to campaign
Page 4: Campaign Information
- Enter campaign name, budget, timeline
Page 5: Campaign Reasons/Goals
- Define success criteria
Page 6: Summary
- Review all settings
And more pages for specific campaign types...
UC: Execute Multi-Phase Campaign
- Select target customers
- Define campaign funnel
- Assign team members
- Set budget and goals
- Define success metrics
- Launch campaign
- Track progress
Wizard 3: Contract Management (13 Pages)
Page 1: Contract Details
- Contract number, customer, type, dates
Page 2: Billing Address
- Shipping/billing address selection
Page 3: Positions/Line Items
- Add articles, quantities, prices
Page 4: Provision Settings
- Commission structure, bonus rules
Page 5: Controlling Parameters
- Cost centers, budget allocation
Page 6: Reductions/Discounts
- Apply volume discounts, promotional rates
Page 7: Contingent Settings
- Set usage limits (GB, minutes, incidents)
Page 8: Task Generation
- Auto-create tasks from contract milestones
Page 9: Email Templates
- Select templates for notifications
Page 10: Master Data
- Link master records (contacts, accounts)
Page 11: Article References
- Link articles/services to contract
Page 12: Attachments
- Upload contract documents, SOWs
Page 13: Maintenance & Logs
- View contract history
UC: Create Complex Contract
- Enter contract header information
- Configure billing details
- Add line items with pricing
- Set up commission structure
- Define budget controls
- Apply usage limits
- Define contingent pool
- Auto-generate tasks
- Link templates
- Configure notifications
- Attach supporting documents
- Review contract summary
- Save contract with audit trail
Validation Rules Discovery (431 Total)
Key Validation Domains:
-
Customer Validations (45 rules)
- Credit limit checks
- Payment term validations
- Active status verification
-
Order Validations (60 rules)
- Item availability
- Price verification
- Tax calculation
- Discount limits
-
Billing Validations (80 rules)
- Invoice date range
- Amount verification
- Contract status
- Customer qualification
-
Helpdesk Validations (55 rules)
- Category/priority mapping
- SLA time calculation
- Assignment validation
- Status transition rules
-
Financial Validations (70 rules)
- GL account validation
- Tax code verification
- Exchange rate checks
- Rounding rules
-
System Validations (121 rules)
- User rights verification
- Lock/delete prevention
- Duplicate detection
- Data integrity checks
Summary Statistics
| Component | Count | Documented | Gap |
|---|---|---|---|
| State Machines | 9 | 1 | 89% |
| Wizard Workflows | 4 | 0 | 100% |
| Wizard Pages | 30+ | 0 | 100% |
| Validation Rules | 431 | ~50 | 88% |
| Total | 474 | ~51 | 89% |
Recommendations
High Priority
- Document all state machines with transition diagrams
- Create wizard flowcharts with decision points
- Centralize validation rules with business logic explanations
- Map state machine transitions to use cases
Medium Priority
- Add SLA time calculations to ticket state machine
- Document escalation rules for state transitions
- Create user documentation for wizard workflows
Implementation
- Use state diagram notation (PlantUML, Mermaid)
- Link to code implementations
- Include business rule explanations
- Provide transition examples