summaryrefslogtreecommitdiff
path: root/rt/docs/design_docs/realflow.txt
diff options
context:
space:
mode:
Diffstat (limited to 'rt/docs/design_docs/realflow.txt')
-rw-r--r--rt/docs/design_docs/realflow.txt191
1 files changed, 0 insertions, 191 deletions
diff --git a/rt/docs/design_docs/realflow.txt b/rt/docs/design_docs/realflow.txt
deleted file mode 100644
index 3717e27..0000000
--- a/rt/docs/design_docs/realflow.txt
+++ /dev/null
@@ -1,191 +0,0 @@
-- I have a MonitoredQueue that sets tickets to "Monitored"
- if its subject matches /monitored/.
-
-- I want to have a kind of Ticket that are 'Monitored'.
-- I want all monitored tickets, when they are overdue for
- 14 days, to:
- - send notification to manager
- - mark as stalled
-- I want all monitored tickets, when they are overdue for
- 28 days, to:
- - mark as rejected
-- I want to query all tickets that are monitored as such
-- I want to modify 14 => 15 and have it affect all existing
- tickets that are monitored
-
-{
-- I want to add a new "overdue for 27 days, add a 'ultimatum'
- correspondence to it" rule for all monitored tickets.
-- I want to add a new "overdue for 27 days, add a 'ultimatum'
- correspondence to it" rule for all _new_ monitored tickets
- without affecting existing ones.
-}
-
-- The user of OrderRequest queue needs to fill a numeric "CF",
- called "Price".
-- On creation, it needs to create following approvals:
- - "Manager" approval if CF.Price is > 1000
- - "President" approval if CF.Price is > 2000
-- When all of "M", "P" are resolved (if any, or if there were none
- to begin with), Create a new approval, "Finance".
-- If any approvals above is rejected, reject the original ticket.
-- If "Finance" is resolved, resolve original ticket.
-- If "Finance" is rejected, create an approval for "CEO".
-- If "CEO" is resolved, resolve the original ticket.
-- If "CEO" is rejected, reject the original ticket.
-
-[RuleAction CreateTicketWithRuleset]
- -> ReleaseMyLockOnRuleset $ruleset
- -> UnlessLockOnRuleset $ruleset
- # i.e. if no active tickets still have a lock on it
- -> ForceCreateTicketWithRuleset $ruleset
-
-[Queue OrderRequest]
- -> Condition: OnCreate
- Action: AddTicketRuleSet "PurchaseApproval"
- # Triggers immediately
-
-[RuleSet: PurchaseApproval]
- -> Condition: OnCreate
- Condition: CF.Price > 1000
- Action: CreateTicketWithRuleset "ManagerApproval"
- -> Condition: OnCreate
- Condition: CF.Price > 2000
- Action: CreateTicketWithRuleset "PresidentApproval"
- -> Condition: OnCreate
- Action: CreateTicketWithRuleset "FinanceApproval"
- -> Condition: OnReject
- Action: DeleteTree
-
-[RuleSet: ManagerApproval]
- -> Condition: OnCreate
- Action: Prohibit Ruleset "FinanceApproval"
- -> Condition: OnResolve
- Action: CreateTicketWithRuleset "FinanceApproval"
- -> Condition: OnReject
- Action: RejectTicket TOP
-
-[RuleSet: PresidentApproval]
- -> Condition: OnCreate
- Action: Prohibit CreateTicketWithRuleset "FinanceApproval"
- -> Condition: OnResolve
- Action: CreateTicketWithRuleset "FinanceApproval"
- -> Condition: OnReject
- Action: RejectTicket TOP
-
-[RuleSet: FinanceApproval]
- -> Condition: OnCreate
- Action: Prohibit RuleSet "CEOApproval"
- -> Condition: OnResolve
- Action: ResolveTicket TOP
- -> Condition: OnReject
- Action: CreateTicketWithRuleset "CEOApproval"
-
-[RuleSet: CEOApproval]
- -> Condition: OnResolve
- Action: ResolveTicket TOP
- -> Condition: OnReject
- Action: RejectTicket TOP
-
-
-
-Prohibit Ticket Operation:
- Ruleset CEOApproval
-
-
-
-
-
-
-
- ,--------.
-[TOP] --> [M] --> [F]
- ` `-> [P] -'
- `
- `-> [X] --> [Y]
-
-
-[TOP] => [Approval]
- -> Queue: B
- -> Rule: yyy
- -> Workflow: W
- -> Stage: Approval
- -> Rule: xxx
-
-isa_ok( $Approval->Type, 'RT::Ticket' );
-is( $Approval->Workflow->Name, 'W' );
-is( $Approval->Stage->Name, 'Approval' );
-
-[Queue: A]
- -> Workflow: W
-
-[Workflow: W]
- -> Stage: TOP
- -> Stage: Approval
- -> Stage: SUCCESS
- -> Stage: FAIL
-
-"RuleCollections"
-
-[Stage: TOP]
- -> Rule: OnCreate RunStage Approval
-
-ok( TicketA->Rules->HasEntry($ApprovalRule) )
-ok( TicketB->Rules->HasEntry($ApprovalRule) )
-
-[Rule: Approval]
- -> Rule: OnResolve RunStage SUCCESS
- -> Rule: OnReject RunStage FAIL
-
-[Stage: SUCCESS]
- -> Rule: OnCreate SetStatus('resolved') TOP
-
-[Stage: FAIL]
- -> Rule: OnCreate SetStatus('rejected') TOP
-
-[Unassociated]
- - Rule FOO: OnAnything {
- CreateTicketIfNotBlocked StageFOO
- AddLink DependedOnBy TOP to Stage1
- AssignRule DoStage2 to Stage1
- AssignRule DoStage3 to Stage1
- }
- - Rule BAR: OnAnything {
- CreateTicketIfNotBlocked StageBAR
- DoSomethingBizzare
- }
-
- ,==> [Stage0] ==>.
- , .
-[TOP] ==> [Stage1] ==> [Stage3]
- ` '
- `==> [Stage2] ==>'
-
-OnTransaction:
- $self->Ticket->Queues->Scrips->Apply
-
-OnTransaction:
- $self->Ticket->Queues->Scrips->Apply
- ->Scrips->Apply
-
-OnTransaction:
- $self->Ticket->Queues->Scrips->Apply
- ->Stages->Scrips->Apply
-
-[QueueX]
- - Rule:
- OnCreate:
- RunRule FOO
-
-[QueueY]
- - Rule:
- OnWhatever:
- RunRule FOO
-
-
-[TOP] => [Stage1] => [Stage2] => [END]
- `- => [Stage3] => [END]
- ` -> [Stage4]
-
-[Stages]
- ->