前页 | 后页 |
业务规则的代码生成
在为规则流图中的所有规则任务元素建模规则后,业务域模型就可以进行代码转换了。为生成特定技术规则代码而提供的内部代码模板与 EASL 代码模板协同工作,以从规则处理类及其规则流结构生成代码。
从规则流为返回一个值
节 |
行动 |
也见 |
---|---|---|
1 |
双击规则流图结束节点之前的最后一个 Rule任务元素。 显示元素的“属性”对话框。 |
创建业务域模型 |
2 |
单击“影响”选项卡。 |
|
3 |
在“影响”字段中,键入返回语句;例如,返回True 。 |
|
4 |
单击保存按钮,然后单击确定按钮关闭对话框。 生成包含规则流行为的类的代码(在我们的初始示例中,Rental系统);生成业务规则逻辑代码,规则语句以自然语言表达为注释。 |
生成一个单类 |
示例
此代码片段是从 EAExample模型中的 Rental系统类元素生成的:
///////////////////////////////////////// /////////
// RentalSystem.cs
//类RentalSystem的实现
// 由Enterprise Architect生成
// 创建于:2016 年 7 月 26 日下午 2:39:23
///////////////////////////////////////// /////////
使用系统;
使用系统。收藏品。通用;
使用系统.文本;
使用系统。 IO ;
公共课租赁系统
{
公众顾客;
公共汽车 m_Car;
公共租金 m_Rent;
公共租赁系统()
{
}
〜出租系统()
{
}
公共虚拟void处置()
{
}
/* 开始 - EA 生成的活动和交互代码 */
public bool ProcessApplication(Rent m_rent,Application m_application)
{
// 行为是一种活动
/*不得将汽车出租给没有有效牌照号码A客户*/
if(m_Customer.ValidLicenseNumber == "FALSE")
{
状态= "拒绝";
m_Customer.Eligible = false ;
}
/*不得将汽车出租给 18 岁以下的顾客*/
如果(m_Customer.age < 18)
{
状态= "拒绝";
m_Customer.Eligible = false ;
}
/*不得将车辆出租给 3 级不良历史的客户*/
如果(m_Customer.BadHistoryLevel == 3)
{
状态= "拒绝";
m_Customer.Eligible = false ;
}
if (顾客== true)
{
/*小型汽车的租金是每天 80 澳元*/
如果(m_Car.type == 小)
{
m_rent.RentPerDay = 80;
}
/*AWD 车的租金为每天 100 澳元*/
如果(m_Car.type == AWD)
{
m_rent.RentPerDay = 100;
}
/*豪华汽车的租金为每天 150 澳元*/
如果(m_Car.type == 豪华)
{
m_rent.RentPerDay = 150;
}
/*应付租金计算为 RENTPERDAY 和 RENTALPERIOD 天数的乘积*/
m_rent.RentPayable = m_rent.RentPerDay * m_rent.No_of_rent_days;
if (CustomerBadHistoryLevel > 0)
{
/*必须对 2 级不良历史的客户处以 20% 的租金罚款*/
如果(m_Customer.BadHistoryLevel == 2)
{
m_rent.PenaltyFee = m_rent.RentPayable * 0.2;
}
/*必须对 1 级不良历史的客户处以 10% 的租金罚款*/
如果(m_Customer.BadHistoryLevel == 1 )
{
m_rent.PenaltyFee = m_rent.RentPayable * 0. 1 ;
}
}
else
{
}
/*应付总金额计算为应付租金和罚款(如有)的总和。*/
m_rent.TotalAmountPayable = m_rent.RentPerDay + m_rent.PenaltyFee;
}
else
{
}
返回状态.状态;
}
/* 结束 - EA 生成的活动和交互代码 */
}
//结束租赁系统
注记
- Enterprise Architect统一版和终极版提供企业规则建模