关于 uniface-procscript
面向 Uniface 9.7 ProcScript 开发者的文档导航技能。它引导查询随附的官方参考文件,涵盖语言结构和触发器,回答时以文档为依据而非仅凭记忆。
主要功能
- 01查阅 594 条参考文档
- 02按类别和索引定位条目
- 03查询语法与参数
- 04查看用法说明和示例
- 05检查相关主题
适用场景
- 01查找 ProcScript 语句语法
- 02查询函数或触发器
- 03了解数据类型或预处理指令
- 04依据参考文档排查代码问题
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ dedalus-erp-pas/ foundation-skills --skill uniface-procscript安装后在 Claude Code 中输入/uniface-procscript确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
reference/llms.txtpredefinedoperations.mdprocdatatypes.mdprocprecomp.mdprocstructfunctions.mdtriggersextended.mdtriggersstandard.md详细介绍
Uniface 9.7 ProcScript 参考 — 导航技能
此技能可让你访问完整的官方 Uniface 9.7 ProcScript 参考文档——共 594 个条目,合并在 reference/ 中的 8 个类别文件里。回答 ProcScript 问题时,你的职责是查找并阅读这些文件,而不是依赖记忆中的知识。
什么是 ProcScript(最简背景)
ProcScript 是 Uniface 低代码平台的 4GL 脚本语言。阅读文档时请牢记以下特性:
- 分号(
;)用于开始注释,而不是结束语句 - 每行一条语句(使用
%\续行) - 字段引用形式为
FIELD.ENTITY(限定)或FIELD(在上下文中) - 变量:
$1-$10(临时变量)、$NAME$(通用变量)、variables/endvariables块 - 列表使用金色分号作为分隔符
$status保存上次操作的结果(0 = 成功,<0 = 错误)- 代码位于触发器(事件处理程序)中,这些触发器附加到组件、实体或字段上
文档布局
所有文档都位于相对于此技能的 reference/ 目录中。每个类别都是一个合并文件,包含所有条目,条目之间以 --- 分隔:
reference/
llms.txt # Index: every entry with title + one-line description (~620 lines)
procstatements.md # 173 entries -- statements (retrieve, read, store, if, for, putitem, ...)
procfunctions.md # 248 entries -- functions ($status, $concat, $scan, $replace, $date, ...)
triggersstandard.md # 74 entries -- standard triggers (Read, Write, Store, Validate Field, ...)
triggersextended.md # 34 entries -- extended triggers (OnClick, OnChange, expand, ...)
procdatatypes.md # 21 entries -- data types (string, numeric, date, struct, handle, ...)
procprecomp.md # 23 entries -- preprocessor directives (#define, #if, #include, ...)
procstructfunctions.md # 13 entries -- struct functions ($name, $parent, $scalar, $tags, ...)
predefinedoperations.md # 8 entries -- predefined operations (Exec, Init, Cleanup, Quit, ...)
每个条目都以 # Title 开头,并包含完整的参考内容:语法、参数、返回值、使用说明和代码示例。条目之间以 --- 分隔。
如何回答 ProcScript 问题
请遵循以下查找策略。务必查阅文档,不要只凭记忆回答。
步骤 1:确定用户需要什么
将用户的问题对应到某个类别文件:
| 用户询问…… | 查阅 |
|---|---|
| 语句(retrieve、read、store、if、for、putitem、creocc 等) | procstatements.md |
$function($status、$concat、$scan、$date、$curocc 等) | procfunctions.md |
| 触发器(Read、Write、Store、Validate、Leave Field 等) | triggersstandard.md |
| 扩展/控件触发器(OnClick、OnChange、expand 等) | triggersextended.md |
| 数据类型(string、numeric、date、struct、handle 等) | procdatatypes.md |
| 预处理器(#define、#if、#include、编译时常量) | procprecomp.md |
| Struct 操作($name、$parent、$scalar、$tags 等) | procstructfunctions.md |
| 预定义操作(Exec、Init、Cleanup、Quit 等) | predefinedoperations.md |
步骤 2:在文件中查找条目
选项 A — Grep 条目标题(已知名称时最快):
Grep: pattern="^# retrieve$" path="reference/procstatements.md" -A 80
这会返回该条目及其后续行。请一直读到下一个 --- 分隔符或 # NextTitle。
选项 B — 搜索索引(不确定确切名称时):
读取 reference/llms.txt,查找条目名称及其类别文件。每个章节都会列出文件:
## Statements
File: `procstatements.md`
- retrieve: Activate the Read trigger for the first outermost entity...
选项 C — 在所有文件中使用 Grep 搜索(适用于跨主题问题):
Grep: pattern="your search term" path="reference/" glob="*.md"
这适用于诸如“哪些语句支持 /lock 选项?”或“在哪里使用了 $webinfo?”等问题。
步骤 3:阅读并综合
- 使用带有
-A(后续上下文)的 Grep 读取条目。通常-A 80足以涵盖一个条目;如果条目更长,请增加数值 - 注意:语法、参数、返回值、使用限制和代码示例
- 查看每个条目底部的相关主题部分,了解关联概念
- 如果问题涉及多个主题,请搜索多个条目并进行综合
- 始终注明你查阅的文件和条目
步骤 4:精准作答
- 引用文档中的确切语法
- 包含文档中的代码示例(使用
```procscript围栏代码块) - 相关时,说明
$status返回值和错误代码 - 如果文档提到限制(组件类型、触发器上下文),请一并说明
- 如果用户的问题含糊不清,请列出可能的理解,并附上条目引用
常见查找模式
“如何执行 X?”(面向任务)
- 在
reference/llms.txt中搜索与任务相关的关键词 - 从相应类别文件中 Grep 最相关的条目
- 如果任务涉及特定事件上下文,请查看
reference/triggersstandard.md - 综合查找结果,给出连贯的答案,并附上文档中的代码示例
“X 有什么作用?”(查找参考信息)
- 在相应类别文件中直接 Grep 查找该条目:
pattern="^# X$" - 阅读并呈现:语法、说明、参数、返回值和示例
“这段代码哪里有问题?”(调试)
- 确认代码使用了哪些语句/函数
- Grep 查找每个语句/函数对应的条目,注意以下内容:
- 正确语法(文档展示了确切的语法模板)
- 有效的触发器上下文(某些语句仅适用于特定触发器)
- 返回值和错误条件
- “Use”或“Description”部分提到的常见注意事项
“所有 X 都有哪些?”(枚举)
- 阅读
reference/llms.txt,并按相关章节标题筛选 - 或者在相关类别文件中使用宽泛的模式进行 Grep 搜索
重要注意事项
- 生成的文件:
reference/目录由doc/scripts/convert.py根据doc/html/源文件重新生成——请勿手动编辑这些文件。 - 合并格式:每个
.md文件包含多个以---分隔的条目。使用带-A上下文的 Grep 来读取各个条目。 - 编码:源文件采用 Windows-1252 编码;生成的输出采用 UTF-8 编码。
- 版本:本文档专门介绍 Uniface 9.7。请勿假设其他版本中的功能适用。
评论
支持 Markdown