
# 基于脚本模式配置快递费用计费规则
#### 场景描述
在快递费计费场景中，快递费的计算方式会根据配送距离、快递重量的不同而变化，同时结合快递类型的差异，形成多样化的计费规则。
#### 场景分析
根据不同的配送条件，可快速计算出所需要的配送费用，具体说明如下：
- 条件字段（输入项）：
  - 配送距离
  
  - 快递类型
  
  - 快递重量
   
- 结果字段（输出项）： 配送费用
  
 
#### 配置步骤
1. 登录应用运行态。
2. 在左侧导航栏中，选择"规则引擎 \> 规则列表"，进入"规则列表"页面。
3. 在"规则列表"页面，单击"创建"。
4. 在"创建规则"页面，配置如下主要参数信息。 
   表1"基本信息"参数说明（模式配置） 
   | 参数         | 配置示例       |
   |:---|:---|
   | 规则名称       | 快递费规则_脚本模式 |
   | 规则类型       | 自定义规则      |
   | 界面模式       | 脚本模式       |
   | ++冲突解决策略++ | 全匹配        |
      
   
   
5. 单击"下一步"，进入"定义参数"页面。
6. 在"定义参数"页面，根据场景需求，依次添加如下3个条件字段作为判断依据，添加1个结果字段用于输出判断结果。 
   表2"定义参数"参数说明（脚本模式） 
   | 参数名称 | 配置示例                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   |:---|:---|
   | 条件字段 | 条件字段1： - 数据类型：数字  - 字段名：收件距离  - 字段代码：distance  - 数组：否             |
   | 条件字段 | 条件字段2： - 数据类型：文本  - 字段名：快递类型  - 字段代码：type  - 数组：否        |
   | 条件字段 | 条件字段3： - 数据类型：数字  - 字段名：快递重量  - 字段代码：weight  - 数组：否   |
   | 结果字段 | 结果字段1： - 数据类型：数字  - 字段名：快递费用  - 字段代码：fee  - 数组：否                         |
      
   
   
7. 单击"下一步"，进入"规则配置"页面。
8. 在"规则配置"页面，使用脚本模式的编辑器编写计费逻辑脚本，实现多条件联动计算。 
   图1脚本模式规则配置示例   
   ![](https://support.huaweicloud.com/usermanual-idme/figure/zh-cn_image_0000002523936175.png "点击放大")
   常见计费场景的脚本示例：
   ```
   规则 "情形一" 
   如果
     decision_factor.收件距离 小于等于 1000 并且 decision_factor.快递类型 等于 "普通类型"
   那么
    outcome.快递费用 = decision_factor.快递重量 * 2
   结束
   规则 "情形二" 
   如果
     decision_factor.收件距离 小于等于 1000 并且 decision_factor.快递类型 等于 "挂号类型"
   那么
    outcome.快递费用 = decision_factor.快递重量 * 3
   结束
   规则 "情形三" 
   如果
     decision_factor.收件距离 大于 1000 并且 decision_factor.快递类型 等于 "普通类型" 并且 decision_factor.快递重量 小于等于 30
   那么
    outcome.快递费用 = decision_factor.快递重量 * 2.5
   结束
   规则 "情形四" 
   如果
     decision_factor.收件距离 大于 1000 并且 decision_factor.快递类型 等于 "普通类型" 并且 decision_factor.快递重量 大于 30
   那么
    outcome.快递费用 = 2.5 * 30 + 3 * (decision_factor.快递重量 - 30)
   结束
   规则 "情形五" 
   如果
     decision_factor.收件距离 大于 1000 并且 decision_factor.快递类型 等于 "挂号类型" 并且 decision_factor.快递重量 小于等于 30
   那么
    outcome.快递费用 = decision_factor.快递重量 * 3.5
   结束
   规则 "情形六" 
   如果
     decision_factor.收件距离 大于 1000 并且 decision_factor.快递类型 等于 "挂号类型" 并且 decision_factor.快递重量 大于 30
   那么
    outcome.快递费用 = 3.5 * 30 + 4 * (decision_factor.快递重量 - 30)
   结束
   ```
   
   
9. 编写完脚本后，仔细检查逻辑是否正确，确认无误后，单击"提交"，完成规则配置。
 
