跳到主要内容

数据与集成参考

先按数据形状、生命周期和所有者选择能力,再开始配置。不要因为所有能力都“能存数据”,就把状态、配方、表格和外部系统记录放进同一个位置。

何时查这页

  • 不确定应该使用 Variable、Recipe、RecordStore 还是 Query;
  • 运行后数值重置、持久值没有保留,或部署到另一 target 后数据不同;
  • Page 和 Graph 需要复用同一个外部 HTTP 调用;
  • 运行页多语言、表格数据或 Asset 路径不符合预期;
  • Query 测试成功,但现场参数、认证或写入结果不正确。

能力选择

需求使用能力例子
当前已加载运行时中的小型共享状态App Variable当前工单、运行模式、临时结果
需要由该 Runtime target 保留的小型值Saved Variable标定值、阈值、累计计数
只在一个 Graph 实例中使用的临时值Graph Variable循环索引、中间判断结果
一组可命名、切换的工艺参数Recipe产品型号、温度和压力组合
当前设备上的轻量多行数据RecordStore点位表、物料表、批次行
外部系统数据或跨设备共享记录HTTP QueryMES 工单、ERP 配方、生产报工
运行页翻译i18n按钮、报警和状态文案
图片、视频、3D 模型和上传文件Asset工艺图、设备模型、附件

大量历史、复杂检索和跨设备共享不应放在 Variable 或 RecordStore;应由外部数据库或业务系统负责,再通过 Query 访问。

入口与核心对象

能力编辑入口
App / Saved VariableApp Settings → Variables
RecipeApp Settings → Recipes;Object tree 中需要一个 RecipeManager
RecordStore在 Object tree 添加 RecordStore,从 Properties 配置字段、主键和存储模式
HTTP QueryApp Settings → Queries
i18nApp Settings → i18n;Widget 文本属性也可就地选择翻译 key
AssetResources → Assets 或 Files

Variable

类型当前值在哪里重要行为
App Variable当前 materialized runtimePage 和 Graph 可共享;重新加载或重新部署后从定义的初始值开始
Saved Variable当前 Runtime target 的 App 状态重新启动后继续使用;迁移到另一 target 时不会自动带走当前值
Graph Variable单个 Graph 实例不与其他 Graph 实例共享,不用于长期保留

Page 表达式和 method 通过 QX.variables 读取 App Variable。Graph 使用 Get Variable / Set Variable 明确选择 graphappsaved scope。需要改变 Object 自身状态时调用 Object method,不要把 Object 运行状态复制成多份 Variable 真相源。

Recipe 与 RecordStore

Recipe 适合字段固定、需要按名称整体保存和切换的参数组。每个 App 只需要一个 RecipeManager;运行流程应明确何时选择、应用和保存 Recipe。

RecordStore 适合在设备端维护多行结构化数据:

  • File 模式用于需要在该 target 上保留的行数据;
  • Memory 模式用于当前运行实例的临时表;
  • 字段 schema 和 Primary Key 在 Object Properties 中配置;
  • 页面表格通过 Object method 读取、添加、更新和删除行。

RecordStore 不是外部数据库。数据量、查询复杂度或共享范围增大时,改用外部系统和 Query。

HTTP Query

当前 Query 类型是 HTTP,支持 GETPOSTPUTDELETEPATCH。在 Settings 中维护:

  • URL 与 {{parameter}} 运行参数;
  • Headers 和固定 URL Params;
  • JSON、Form 或 Raw Body;
  • None、Bearer 或 Basic Auth;
  • Timeout。

Page method 使用 QX.queries.<name>.run(...),Graph 使用 Query 节点。两处都引用同一份 App Query,不复制请求配置。

Settings 中的 Send 会从当前 Runtime target 执行请求并显示状态和响应。写入型 Query 应先对测试环境或可撤销数据验证;不要用生产数据做第一次 Send。

Query 凭据会随 App 配置保存

Bearer token、Basic 用户名和密码属于 Query 配置。不要把生产凭据提交到不受控 Git、源 ZIP 或普通 AI 对话;交付前按项目的凭据策略检查和清理。

i18n 与 Asset

  • i18n 先定义语言和默认语言,再维护 key。缺少目标语言时回退到默认语言,仍缺少时显示 key。
  • Widget 文本应引用 i18n key,不要为每种语言复制一套 Page。
  • Asset 使用 App 内相对路径,不使用开发机绝对路径。
  • 运行页只能访问已包含在 runtime package 中的 Asset;上传文件应通过专用 Upload Widget。

关键规则

  • Variable 适合小值,不适合图片、历史表或大 JSON。
  • Saved Variable 当前值是 target-specific runtime state,不是 App 源文件。
  • Query 是外部调用合同,不是数据副本,也不是数据库。
  • Recipe 适合成套参数,RecordStore 适合本机行数据,两者不要互相代替。
  • 外部写入必须定义超时、错误处理、幂等或重复提交策略。
  • 数据能力保存后仍要从正确 Runtime target 验证,不只看编辑器表单。

如何验证

  1. 在 Settings 或 Object Properties 确认名称、类型、默认值、字段和参数。
  2. 保存后检查 Problems,确认 Page / Graph 引用没有失效。
  3. App Variable 验证当前运行内共享,以及重新加载后的初始值。
  4. Saved Variable 验证重启后保留,并确认换 target 后不会误用旧值。
  5. Recipe 验证选择、应用、保存和重新打开;RecordStore 验证增删改查和主键。
  6. Query 先用已知参数执行无副作用 Send,再验证失败、超时和写入去重。
  7. 切换运行页语言,并从目标运行页检查 Asset 下载或上传。

相关教程与指南