
# 使用规则
在工业生产中，规则的创建只是第一步，只有通过有效调用才能真正发挥其价值。例如，设备异常预警规则能够自动监测设备数据并及时告警，质量判定规则可以实时校验零件参数以确保品质合格。规则引擎为此提供两种核心调用方式：
- [XDM调用]：适用于与xDM-F数据模型绑定的自动触发场景。例如，创建零件数据时，系统自动执行尺寸校验规则。
- [API调用]：适用于需要主动触发或嵌入其他系统的灵活场景。例如，在生产报表生成时，调用规则进行数据计算与汇总。
本文将通过典型工业场景示例，详细介绍两种调用方式的具体操作方法，帮助您在专业与易懂之间取得平衡。
#### 前提条件
- 已[登录应用运行态](https://support.huaweicloud.com/consog-idme/idme_consog_0023.html)，并具备规则引擎操作权限。
- 目标规则已完成发布，具体操作请参见[发布规则](https://support.huaweicloud.com/usermanual-idme/idme_rule_0027.html)。
- 如使用"XDM调用"，需提前创建并关联对应的XDM模型（如零件数据模型、设备数据模型）。
- 如使用"API调用"，需准备接口调用工具（如Postman）。
 
 #### XDM调用
XDM调用是一种自动化规则执行方式。当规则与XDM模型（如"零件"数据模型、"设备"数据模型）绑定，并设置了触发场景（如"创建"、"修改"）后，系统将在对应操作发生时自动执行规则，无需人工干预。
下面以"零件数据创建时自动校验尺寸" 为例，说明XDM调用的完整流程：
1. 确认规则的关键配置。 
   调用前必须确保规则已按实际业务需求配置到位，否则会导致触发失败。以"零件尺寸校验规则"为例，关键配置要求如下：
   表1"零件尺寸校验规则"配置信息 
   | 配置项    | 配置示例              | 说明                                     |
   |:---|:---|:---|
   | 规则名称   | PartSizeCheckRule | 用户自定义，建议体现"规则场景+用途"。                   |
   | 规则类型   | 属性校验原子规则          | 必须选择"属性校验原子规则"或"属性赋值原子规则"，否则无法使用XDM调用。 |
   | 关联模型   | Parts（即"零件"数据实体）  | 绑定需要触发规则的XDM模型。                        |
   | 界面模式   | 规则集               | 根据实际业务逻辑进行选择。校验类规则推荐选择"规则集"或"真值表"。     |
   | 冲突解决策略 | 先进先出              | 多规则触发时的执行顺序，根据实际业务逻辑进行选择。              |
   | 触发场景   | 勾选"创建"和"修订"       | 例如勾选"创建"，新增零件实例数据时触发该校验。               |
   | 规则逻辑   | 长度≤10mm，且宽度≤5mm   | 需在"规则配置"中完成配置，并测试通过。                   |
      
   
   
2. 触发规则自动执行。 
   规则发布后，只要触发预设场景，系统会自动执行规则，无需人工干预。操作如下：
   1. 在左侧导航栏中，选择"数据模型管理 \> 数据实例"，进入"数据实例"页面。
   
   2. "数据实体/关系实体"选择规则关联的XDM模型（如"Parts"）。
   
   3. 单击"创建"，填写零件信息（如长度11mm、宽度4mm）。
   
   4. 单击"确定"提交时，系统会自动触发规则校验。 一个XDM模型可绑定多条规则，例如"Parts"同时绑定"尺寸校验"、"材质校验"两条规则，触发时，系统自动按"冲突解决策略"顺序执行。
      - 如果符合逻辑（如长度9mm、宽度4mm），数据正常保存，实例数据创建成功。
      
      - 如果不符合逻辑（如长度11mm），弹出校验失败的提示（如"零件长度超出标准值10mm，请修正"），数据无法保存。
       
   
   
   
   
 
 #### API调用
当需要将规则嵌入到自定义业务流程（如生产报表系统、运维巡检系统）时，API调用是最佳选择。以下以"运维系统定时调用规则，批量检测50台电机设备数据" 为例，说明API调用的步骤：
1. 获取API信息。
   
   1. 在左侧导航栏中，选择"数据服务管理 \> 全量数据服务"，进入"全量数据服务"页面。
   
   2. 单击"分类"下的"规则引擎"折叠面板，找到"XDM_runtime_execute_post"接口名称。 "XDM_runtime_execute_post"为规则引擎在系统中预置的数据服务API，用于执行指定规则。
      
   
   3. 单击"API列表"中的"API英文名称"超链接，进入该API详情页面，复制其"API URL"。 API URL格式如下：
      ```
      http://{Endpoint}/rdm_{appID}_app/services/rule-engine/api/runtime/execute
      ```
      ![](https://support.huaweicloud.com/usermanual-idme/figure/zh-cn_image_0000002530093607.png "点击放大")
      
   
   
   
   
2. 发起调用请求。 
   1. 打开接口调用工具（如Postman）。
   
   2. 请求方式选择"POST"，在地址栏粘贴[1]获取的API URL。
   
   3. 根据业务需求配置请求头和请求体，单击"Send"发起调用。 请求示例：
      ```
      POST https://dme.cn-north-4.huaweicloud.com/rdm_fce01234567d41828cf3473b07fa7ae2_app/services/rule-engine/api/runtime/execute
      Content-Type: application/json
      X-Auth-Token: ABCDEFG....
      {
        "ruleCode": "MOTOR_TEMP_CHECK_RULE",  // 目标规则编码（可在“规则列表 > 详情”中获取）
        "dataList": [  // 批量检测的设备数据列表
          {"deviceId": "M001", "temp": 82, "runTime": 180},  // 1号电机：温度82℃，运行180分钟
          {"deviceId": "M002", "temp": 88, "runTime": 200},  // 2号电机：温度88℃，运行200分钟
          {"deviceId": "M003", "temp": 79, "runTime": 150},  // 3号电机：温度79℃，运行150分钟
          {"deviceId": "M004", "temp": 92, "runTime": 220},  // 4号电机：温度92℃，运行220分钟
          {"deviceId": "M005", "temp": 85, "runTime": 190}   // 5号电机：温度85℃，运行190分钟
        ]
      }
      ```
      响应示例：
      ```
      {
        "code": 200,
        "msg": "执行成功",
        "result": [
          {"deviceId": "M001", "pass": true, "msg": "电机运行正常"},
          {"deviceId": "M002", "pass": false, "msg": "温度超出阈值85℃，触发预警"},
          {"deviceId": "M003", "pass": true, "msg": "电机运行正常"},
          {"deviceId": "M004", "pass": false, "msg": "温度超出阈值85℃且运行超200分钟，触发停机建议"},
          {"deviceId": "M005", "pass": true, "msg": "电机运行正常"}
        ]
      }
      ```
      
   
   
   
   
 
