预订演示
前页 后页

业务规则的代码生成

在为规则流图中的所有规则任务元素建模规则后,业务域模型就可以进行代码转换了。为生成特定技术规则代码而提供的内部代码模板与 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统一版和终极版提供企业规则建模

了解更多