用途
该技能用于导航和查询 Uniface 9.7 ProcScript 的完整官方参考文档。ProcScript 是 Uniface 低代码平台的 4GL 脚本语言。技能的目标是让使用者在回答 ProcScript 问题时查阅 reference/ 目录下的文档文件,而不是依赖记忆中的知识。
文档结构
所有文档位于相对于本技能的 reference/ 目录下。每个分类是一个合并文件,条目之间以 --- 水平分隔线分隔:
- reference/llms.txt:索引,列出每个条目的标题和一行描述(约 620 行)
- procstatements.md:173 条,语句(retrieve、read、store、if、for、putitem 等)
- procfunctions.md:248 条,函数($status、$concat、$scan、$replace、$date 等)
- triggersstandard.md:74 条,标准触发器(Read、Write、Store、Validate Field 等)
- triggersextended.md:34 条,扩展触发器(OnClick、OnChange、expand 等)
- procdatatypes.md:21 条,数据类型(string、numeric、date、struct、handle 等)
- procprecomp.md:23 条,预处理器指令(#define、#if、#include 等)
- procstructfunctions.md:13 条,结构函数($name、$parent、$scalar、$tags 等)
- predefinedoperations.md:8 条,预定义操作(Exec、Init、Cleanup、Quit 等)
每个条目以 # 标题 开头,包含完整参考内容:语法、参数、返回值、使用说明和代码示例。
主要能力
- 按用户问题类型映射到对应分类文件进行查找
- 通过 Grep 检索条目标题(如 pattern="^# retrieve$")快速定位
- 通过读取 llms.txt 索引查找不确定名称的条目
- 跨文件 Grep 处理跨领域问题
- 阅读并综合条目内容,引用所查阅的文件和条目
使用方式
回答 ProcScript 问题时遵循以下查找策略,始终查阅文档而非仅凭记忆:
- 识别用户需求,映射到分类文件(语句→procstatements.md,$函数→procfunctions.md,触发器→triggersstandard.md,扩展触发器→triggersextended.md,数据类型→procdatatypes.md,预处理器→procprecomp.md,结构操作→procstructfunctions.md,预定义操作→predefinedoperations.md)。
- 在文件中查找条目:已知名称时用 Grep 匹配标题(如 pattern="^# retrieve$" path="reference/procstatements.md" -A 80);不确定名称时读取 llms.txt 索引;跨领域问题时用 Grep 跨所有文件搜索。
- 阅读并综合:使用 Grep 的 -A 参数读取条目(通常 -A 80 足够),关注语法、参数、返回值、使用限制和代码示例,查看条目底部的 Related Topics 部分,跨主题时综合多个条目,并注明所查阅的文件和条目。
- 精确回答:引用文档中的确切语法,包含文档中的代码示例(使用 ```procscript 围栏块),在相关时提及 $status 返回值和错误码,包含文档提到的限制(组件类型、触发器上下文),问题含糊时列出可能的解释及条目引用。
常见查找模式:
- "如何做 X?"(任务导向):在 llms.txt 中搜索关键词,从对应分类文件 Grep 最相关条目,若涉及特定事件上下文则检查 triggersstandard.md,综合发现并附文档代码示例。
- "X 做什么?"(参考查询):在对应分类文件中直接 Grep 条目,阅读并呈现语法、描述、参数、返回值、示例。
- "这段代码有什么问题?"(调试):识别代码使用的语句/函数,逐个 Grep 其条目,关注正确语法、有效触发器上下文、返回值和错误条件、"Use" 或 "Description" 部分提到的常见陷阱。
- "所有 X 有哪些?"(枚举):读取 llms.txt 并按相关章节标题过滤,或在对应分类文件中用宽泛模式 Grep。
适用场景
- 查询 ProcScript 语句、函数、触发器、数据类型、预处理器指令、结构函数或预定义操作的语法与用法
- 调试 ProcScript 代码,核对语法、触发器上下文和返回值
- 枚举某类功能的所有条目
- 处理跨多个主题的 ProcScript 问题
限制
- 文档专门覆盖 Uniface 9.7,不应假设其他版本的功能。
- reference/ 目录由 doc/scripts/convert.py 从 doc/html/ 源文件重新生成,不应手动编辑这些文件。
- 每个 .md 文件包含多个以 --- 分隔的条目,需使用 Grep 的 -A 上下文读取单个条目。
- 源文件编码为 Windows-1252,生成输出为 UTF-8。
- ProcScript 关键特征:分号(;)开始注释而非结束语句;每行一条语句(%\ 用于续行);字段引用为 FIELD.ENTITY(限定)或 FIELD(上下文中);变量包括 $1-$10(临时)、$NAME$(通用)、variables/endvariables 块;列表使用 gold-semicolon 作为分隔符;$status 保存上次操作结果(0 = 成功,<0 = 错误);代码位于附加到组件、实体或字段的触发器(事件处理器)中。