Business Process(业务过程)
业务过程是现实世界中一类可识别的业务活动,例如签订合同、实际放款或发生还款。建模前要先确定本次分析记录的是哪一个过程。
业务方说“新增贷款”时,先把这句话拆成可以被记录、核对和追问的业务过程。
业务过程是现实世界中一类可识别的业务活动,例如签订合同、实际放款或发生还款。建模前要先确定本次分析记录的是哪一个过程。
业务方问:“今年新增贷款是多少?”这句话听起来明确,实际可能对应合同约定金额、实际放款金额、新增借据本金,甚至当前贷款余额。它们来自贷款链路中的不同业务活动,不能因为都叫“贷款”就放在一起计算。
先看一条足够小的链路:张三签下 LoanContract,合同下实际形成两笔 LoanNote,之后产生 Repayment,最后某笔借据可以进入结清状态。每个节点都是真实业务对象或状态,但它们记录的事情不同。
点击签约、放款、还款或结清,查看它对应的业务对象、事件和记录数量;再选择一个数字,检查它回答的到底是哪一个问题。
点击环节,查看它对应的业务对象、事件和记录数量。
Business Process:贷款放款分析对象:LoanNote事件:实际放款
contract_id C001 · contract_amount ¥1,000,000合同约定的额度,不等于已经形成的贷款本金。
选择一个数字,先看清它究竟在回答哪件事。
回答“今年签了多少合同约定额度”,对应 LoanContract 的合同事件;它不是已经放出的本金。
业务对象 ≠ 业务过程 ≠ 分析事实。默认分析“贷款放款”时,本例的声明是:Business Process:贷款放款;分析对象:LoanNote;事件:实际放款。
如果问题是“今年实际放出了多少贷款本金”,建模前可以先写下:Business Process:贷款放款;分析对象:LoanNote;事件:实际放款。这个声明让后续每个字段和数字都有了检查依据。
如果问题改成“今年签了多少合同”,声明就会变成贷款签约和 LoanContract。问题变了,记录对象也应该跟着变,而不是继续沿用上一种业务含义。