SLA Study Cases (from ERD/PRD notes)
Cheat‑sheet of common SLA patterns to guide implementation and UI mapping. Field hints:
scope_type,rule_type,threshold,condition_policy,outcome_policy.
1. Status‑based SLA (aging on a single status)
- A1 Max time in approval status
- Case: Item cannot stay > 2 hours in
WAITING_APPROVAL. - scope_type:
STATUS· rule_type:AGING· threshold:120minutes.
- Case: Item cannot stay > 2 hours in
- A2 Max time to complete data entry
- Case: User must finish data within 30 minutes.
- scope_type:
STATUS· rule_type:AGING· threshold:30minutes.
- A3 SLA only for specific status
- Case: SLA applies only when status =
WAITING_VENDOR. - scope_type:
STATUS· rule_type:AGING.
- Case: SLA applies only when status =
2. Action‑based SLA (triggered by transitions)
- B9 Business‑hours SLA
- Case: SLA counts working hours only (e.g., 08:00–17:00).
- scope_type:
ACTION· rule_type:AGING· threshold example:2hours · condition_policy:{ "business_hours_only": true }.
- B10 Weekday‑only SLA
- Case: Weekends excluded from timer.
- scope_type:
ACTION· rule_type:AGING· condition_policy:{ "exclude_weekend": true }.
- B11 Post‑submit SLA
- Case: After action
SUBMITTED, must reach Approved ≤ 1 day. - scope_type:
ACTION· rule_type:AGING· threshold:1day.
- Case: After action
- B12 One‑time transition check
- Case: Validate SLA only when entering status X.
- scope_type:
STATUS· rule_type:ON_TRANSITION.
- B13 Cancel action SLA
- Case: Cancel must be processed within 15 minutes.
- scope_type:
ACTION· rule_type:AGING· threshold:15minutes.
- B14 Rework SLA after reject
- Case: After REJECT, resubmit ≤ 1 hour.
- scope_type:
STATUS· rule_type:AGING· threshold:60minutes.
3. Cross‑workflow SLA
- E22 Wait for sibling workflow completion
- Case: DO must close ≤ 1 hour after all WO complete.
- scope_type:
STATUS· rule_type:AGING· condition_policy:{ "all_dependencies_done": true }.
- E23 Depends on child workflow status
- Case: Parent breaches if child not
DONE. - condition_policy:
{ "child_status_required": "DONE" }.
- Case: Parent breaches if child not
- E24 Aggregated MANY→ONE timing
- Case: Start SLA when first child finishes; stop when all finish.
- rule_type:
AGING· relation:MANY_TO_ONE.
4. Edge cases / safety
- G32 No double start
- Case: Same status should not start SLA twice.
- G33 Resilient across service restart (must)
- Case: Engine restart must keep SLA timers consistent.
- G35 Manual override
- Case: Admin can mark SLA as resolved.
- outcome_policy:
{ "allow_manual_resolve": true }.
5. Field mapping reminder (for forms)
scope_type:STATUS|ACTION|WORKFLOWrule_type:AGING(elapsed),ON_TRANSITION(event),AGGREGATE(cross entities)threshold: number + unit (minutes/hours/days)condition_policy: JSON for modifiers (business hours, weekend exclusion, child status, etc.)outcome_policy: JSON for overrides/escalations.