更新时间:2025-12-30 GMT+08:00
分享

使用规则

在工业生产中,规则的创建只是第一步,只有通过有效调用才能真正发挥其价值。例如,设备异常预警规则能够自动监测设备数据并及时告警,质量判定规则可以实时校验零件参数以确保品质合格。规则引擎为此提供两种核心调用方式:

  • XDM调用:适用于与xDM-F数据模型绑定的自动触发场景。例如,创建零件数据时,系统自动执行尺寸校验规则。
  • API调用:适用于需要主动触发或嵌入其他系统的灵活场景。例如,在生产报表生成时,调用规则进行数据计算与汇总。

本文将通过典型工业场景示例,详细介绍两种调用方式的具体操作方法,帮助您在专业与易懂之间取得平衡。

前提条件

  • 登录应用运行态,并具备规则引擎操作权限。
  • 目标规则已完成发布,具体操作请参见发布规则
  • 如使用“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

  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": "电机运行正常"}
        ]
      }

相关文档