> **前置条件** — 执行以下任何命令前，请先确认已完成认证。如未认证，参见 [`../../shb-shared/SKILL.md`](../../shb-shared/SKILL.md)。

# PaaS 表单列表与按名定位

这里的"表单"指 PaaS 里一个自定义的业务模块/页面(一个菜单入口,如"寄修")。没有单独的"模板"概念——一切都是表单,`templateBizId`/`template-biz-id` 只是这个表单 id(即结果里的 `bizId`)在传参时的名字。定位表单只用一个命令 `paas app forms`:不带参数列出全部表单,带 `--name` 按名称服务端搜索。

```bash
shb-cli paas app forms                     # 列出当前用户可见的全部表单
shb-cli paas app forms --name <form-name>  # 按表单/菜单名称服务端搜索
shb-cli paas app forms --name <form-name> -o table
```

## 结果字段与定位流程

`paas app forms` 每项结果含 `appId` 与 `bizId`:

- **`bizId`** = 表单 id,内部标识,直接作为后续命令的 `--template-biz-id` / `--form-template-id`(即 templateBizId),**回复中不暴露**。
- **`appId`** = 内部标识,仅供 `paas flow` / `paas template create` 等命令的必填参数使用,**回复中不暴露**。
- `displayName` = 表单显示名,用于和用户描述做匹配;**回复中指代表单一律用 `displayName`**。
- **`isCommonTemplate`** = 表单类型:**`0` = 流程表单**(记录会走流程,可用 `paas flow` 系列命令、`status` 过滤等),**`1` = 纯表单**(仅数据表,无流程,不要对它调 `flow` 命令或按流程状态过滤)。需要二次确认时看 `paas template fields` 返回的 `isContainWf`(1=含流程,0=无流程),两者口径一致。

> **CRITICAL** — 这里的 `bizId`(表单 id/templateBizId) 与 `appId` 都只在命令传参时内部使用,任何给用户的回复中都不得出现这两个 id 的值;需要指代表单时只说表单显示名(`displayName`)。此规则针对表单层的 id;`paas form search` 结果里数据记录的 `bizId`(内容 id) 不属于本条约束。

定位步骤:

1. 用户给了表单/菜单名 → `paas app forms --name <名>`;只给业务描述且不确定 → `paas app forms` 列全部,再用 `displayName` 语义匹配。
2. 选中后取 `bizId` 作为 `paas form search --template-biz-id`、`paas template get --biz-id` 的值(仅内部传参,不在回复中展示)。
3. 若多个候选都可能匹配,先让用户确认(用 `displayName` 列出候选,不带 id),不要猜测,也不要凭空构造表单 id。

## 表单基本信息 / 选项列表(只读)

定位到表单后,查它自身的信息或全量表单选项:

```bash
shb-cli paas template get --biz-id <template-biz-id>   # 单个表单基本信息(显示名、创建时间等)
shb-cli paas template all-list                          # 应用与表单选项列表(全量,供选择)
```

- 查表单**有哪些字段 / 字段类型 / key** → [`shb-paas-fields.md`](shb-paas-fields.md);查**表单下的数据记录** → [`shb-paas-search.md`](shb-paas-search.md)。
- 创建新表单 / 校验表单状态(`template create` / `check-state`)→ [`shb-paas-create.md`](shb-paas-create.md);删除表单 → [`shb-paas-delete.md`](shb-paas-delete.md)。
