Packages
mozart
0.8.7
1.0.1
1.0.0
0.9.8
0.9.7
0.9.6
0.9.5
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.9
0.8.8
0.8.7
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.8
0.7.7
0.7.6
0.7.5
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.8
0.6.7
0.6.6
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.8
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.7
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.11
0.2.10
0.2.9
0.2.8
0.2.7
0.2.6
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.11
0.1.10
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
Mozart is an Elixir based BPM platform. It provides a powerful and highly readable DSL for implementing executable business process models.
Current section
Files
Jump to
Current section
Files
lib/processes/home_loan_app.ex
defmodule Opera.Processes.HomeLoanApp do
@moduledoc false
use Mozart.BpmProcess
def_bpm_application("Home Loan",
data: "First Name,Last Name,Income,Debt",
bk_prefix: "Last Name, First Name"
)
def pre_approval_declined(data) do
data["Pre Approval"] == "Declined"
end
def_choice_type("Pre Approval", choices: "Approved, Declined")
def_choice_type("Loan Verified", choices: "Pass, Fail")
def_choice_type("Loan Approved", choices: "Approved, Declined")
defprocess "Home Loan" do
user_task("Perform Pre-Approval", group: "Credit", outputs: "Pre Approval")
reroute_task "Pre-Approval Denied", condition: :pre_approval_declined do
user_task("Communicate Loan Denied", group: "Credit", outputs: "Communicate Loan Denied")
end
user_task("Receive Mortage Application", group: "Credit", outputs: "Purchase Price")
user_task("Process Loan", group: "Credit", outputs: "Loan Verified")
subprocess_task("Perform Loan Evaluation", process: "Perform Loan Evaluation Process")
end
def loan_failed_verification(data) do
data["Loan Verified"] == "Fail"
end
defprocess "Perform Loan Evaluation Process" do
reroute_task "Loan Failed Verification", condition: :loan_failed_verification do
user_task("Communicate Loan Denied", group: "Credit", outputs: "Communicate Loan Denied")
end
user_task("Perform Underwriting", group: "Underwriting", outputs: "Loan Approved")
subprocess_task("Route from Underwriting", process: "Route from Underwriting Process")
end
def loan_declined(data) do
data["Loan Approved"] == "Declined"
end
def_choice_type("Communicate Loan Approved", choices: "By Phone, By US Mail")
def_choice_type("Communicate Loan Denied", choices: "By Phone, By US Mail")
defprocess "Route from Underwriting Process" do
reroute_task "Loan Declined", condition: :loan_declined do
user_task("Communicate Loan Denied",
group: "Customer Service",
outputs: "Communicate Loan Denied"
)
end
user_task("Communicate Approval", group: "Credit", outputs: "Communicate Loan Approved")
end
end