mcpField
U
uniface-procscript

uniface-procscript

github.com/dedalus-erp-pas开发122 次安装
代码仓库

关于 uniface-procscript

面向 Uniface 9.7 ProcScript 开发者的文档导航技能。它引导查询随附的官方参考文件,涵盖语言结构和触发器,回答时以文档为依据而非仅凭记忆。

主要功能

  1. 01查阅 594 条参考文档
  2. 02按类别和索引定位条目
  3. 03查询语法与参数
  4. 04查看用法说明和示例
  5. 05检查相关主题

适用场景

  1. 01查找 ProcScript 语句语法
  2. 02查询函数或触发器
  3. 03了解数据类型或预处理指令
  4. 04依据参考文档排查代码问题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/dedalus-erp-pas/foundation-skills --skill uniface-procscript

安装后在 Claude Code 中输入/uniface-procscript确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

reference/
llms.txt
predefinedoperations.md
procdatatypes.md
procprecomp.md
procstructfunctions.md
triggersextended.md
triggersstandard.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:阅读并综合
  1. 使用带有 -A(后续上下文)的 Grep 读取条目。通常 -A 80 足以涵盖一个条目;如果条目更长,请增加数值
  2. 注意:语法、参数、返回值、使用限制和代码示例
  3. 查看每个条目底部的相关主题部分,了解关联概念
  4. 如果问题涉及多个主题,请搜索多个条目并进行综合
  5. 始终注明你查阅的文件和条目
步骤 4:精准作答
  • 引用文档中的确切语法
  • 包含文档中的代码示例(使用 ```procscript 围栏代码块)
  • 相关时,说明 $status 返回值和错误代码
  • 如果文档提到限制(组件类型、触发器上下文),请一并说明
  • 如果用户的问题含糊不清,请列出可能的理解,并附上条目引用

常见查找模式

“如何执行 X?”(面向任务)
  1. 在 reference/llms.txt 中搜索与任务相关的关键词
  2. 从相应类别文件中 Grep 最相关的条目
  3. 如果任务涉及特定事件上下文,请查看 reference/triggersstandard.md
  4. 综合查找结果,给出连贯的答案,并附上文档中的代码示例
“X 有什么作用?”(查找参考信息)
  1. 在相应类别文件中直接 Grep 查找该条目:pattern="^# X$"
  2. 阅读并呈现:语法、说明、参数、返回值和示例
“这段代码哪里有问题?”(调试)
  1. 确认代码使用了哪些语句/函数
  2. Grep 查找每个语句/函数对应的条目,注意以下内容:
    • 正确语法(文档展示了确切的语法模板)
    • 有效的触发器上下文(某些语句仅适用于特定触发器)
    • 返回值和错误条件
    • “Use”或“Description”部分提到的常见注意事项
“所有 X 都有哪些?”(枚举)
  1. 阅读 reference/llms.txt,并按相关章节标题筛选
  2. 或者在相关类别文件中使用宽泛的模式进行 Grep 搜索

重要注意事项

  • 生成的文件:reference/ 目录由 doc/scripts/convert.py 根据 doc/html/ 源文件重新生成——请勿手动编辑这些文件。
  • 合并格式:每个 .md 文件包含多个以 --- 分隔的条目。使用带 -A 上下文的 Grep 来读取各个条目。
  • 编码:源文件采用 Windows-1252 编码;生成的输出采用 UTF-8 编码。
  • 版本:本文档专门介绍 Uniface 9.7。请勿假设其他版本中的功能适用。

评论

支持 Markdown