跳转至

设计时表单摘要管理(SummaryController)

表单摘要(SummaryCfg)的设计时管理:列表查询、详情获取、新建、更新与批量删除。摘要按 scope 区分(如待办摘要 scope=0,每个表单下待办摘要全局唯一)。

  • 接口类型:REST 资源
  • 基址${myapps.context-path.designer:}/api/designtime/applications(类级 @RequestMappingproduces = APPLICATION_JSON_VALUE
  • Tag:设计时-表单摘要模块

公共说明

  • 鉴权:是(需 designerToken)。控制器继承自 AbstractDesignTimeController(基类为 @RestController),通过 Security.getDesignerIdFromToken(request) 从 designerToken JWT 中解析设计器用户。鉴权机制详见 index.md「鉴权说明」。
  • 路径变量{applicationId}{summaryId} 均为**明文设计时 ID**。
  • 响应:统一 Resource(见 ../index.md「统一响应结构」)。成功 errcode=0;该控制器所有异常(含 OBPMValidateException)均统一捕获并返回 errcode=500
  • HTTP 方法:受 CommonSecurityFilter 限制,仅允许 GET/POST/HEAD/OPTIONS
  • 请求体约定:POST/PUT 接收原始 JSON 字符串(@RequestBody String content),由服务端用 JSONObject.fromObject 解析后通过 json2objSummaryCfgVO;DELETE 接收 JSON 字符串数组(@RequestBody String[])。
  • 名称来源SummaryCfgVO.name 在保存前固定取自 title 字段(setName(getTitle()))。
  • 列表字段:列表接口对每条数据做了字段裁剪与重组(详见各端点),数组键名为 data(非统一 datas)。

1. 获取表单摘要列表

分页获取指定应用下的表单摘要列表,可按 formIdscope 过滤。返回字段经过裁剪重组,列表数组键名为 data(非 datas)。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/{applicationId}/summarys(完整:{designer-context}/api/designtime/applications/{applicationId}/summarys
  • 鉴权:是(需 designerToken)
  • Tag:设计时-表单摘要模块

请求参数

参数名 位置 类型 必填 说明
applicationId path string 应用Id
scope query string 摘要类型(如 0 表示待办摘要),缺省则返回全部类型
formId query string 表单Id;非空时按表单分页查询,为空时返回应用下全量并附带分页字段
pageNo query string 页码(缺省 1
linesPerPage query string 每页条数(缺省 10

说明:上述 query 形参未标注 @RequestParam,由 Spring MVC 按请求参数绑定,故均可缺省。

请求示例

GET /api/designtime/applications/{applicationId}/summarys?scope=0&formId=&pageNo=1&linesPerPage=10 HTTP/1.1

响应

结构:统一 Resource(见 ../index.md「统一响应结构」)。 dataJSONObject,含分页字段 linesPerPage/pageCount/pageNo/rowCount 以及 dataJSONArray,每项含 id/name/type/title/uri/fieldNames/summaryScript/scope/formId/isShowTags/formName)。注意列表数组键名为 data 而非 datas

成功示例

{
  "errcode": 0,
  "errmsg": "ok",
  "data": {
    "linesPerPage": 10,
    "pageNo": 1,
    "pageCount": 1,
    "rowCount": 1,
    "data": [
      {
        "id": "...",
        "name": "摘要标题",
        "title": "摘要标题",
        "type": "...",
        "uri": "...",
        "fieldNames": "...",
        "summaryScript": "...",
        "scope": 0,
        "formId": "...",
        "formName": "表单名",
        "isShowTags": false
      }
    ]
  },
  "errors": null
}
失败示例
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }


2. 获取表单摘要详情

按摘要Id获取完整表单摘要对象。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/{applicationId}/summarys/{summaryId}
  • 鉴权:是(需 designerToken)
  • Tag:设计时-表单摘要模块

请求参数

参数名 位置 类型 必填 说明
applicationId path string 应用Id
summaryId path string 表单摘要Id

响应

dataSummaryCfgVO 完整对象。

{ "errcode": 0, "errmsg": "ok", "data": { "id": "...", "title": "...", "scope": 0, "...": "..." }, "errors": null }
失败示例
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }


3. 新建表单摘要

在指定应用下新建表单摘要。请求体解析为 SummaryCfgVO 后强制覆盖 applicationid(取路径 applicationId)、name(取 title),id 为空时生成新的设计时序列号;保存前做名称非空与重名、待办摘要(scope=0)唯一性校验。HTTP 状态码 201

  • 接口类型:REST 资源
  • 请求方式POST
  • 请求路径/{applicationId}/summarys
  • 鉴权:是(需 designerToken)
  • Tag:设计时-表单摘要模块

请求参数

参数名 位置 类型 必填 说明
applicationId path string 应用Id
content body string(JSON) 表单摘要对象 JSON

请求体

对应 SummaryCfgVO 对象 JSON(titlescopeformIdfieldNamessummaryScript 等)。

{ "title": "<摘要标题>", "scope": 0, "formId": "...", "fieldNames": "...", "summaryScript": "..." }

响应

dataJSONObject,仅含 id(新建摘要Id)。

{ "errcode": 0, "errmsg": "ok", "data": { "id": "<摘要Id>" }, "errors": null }
失败示例(标题为空):
{ "errcode": 500, "errmsg": "{*[page.name.notexist]*}", "data": null, "errors": null }
失败示例(重名):
{ "errcode": 500, "errmsg": "名称已经存在!", "data": null, "errors": null }
失败示例(待办摘要已存在):
{ "errcode": 500, "errmsg": "待办摘要已经存在!", "data": null, "errors": null }


4. 更新表单摘要

按摘要Id更新表单摘要对象。请求体解析后强制覆盖 applicationidname(取 title),随后做重名与待办摘要唯一性校验并 saveOrUpdate

  • 接口类型:REST 资源
  • 请求方式PUT
  • 请求路径/{applicationId}/summarys/{summaryId}
  • 鉴权:是(需 designerToken)
  • Tag:设计时-表单摘要模块

请求参数

参数名 位置 类型 必填 说明
applicationId path string 应用Id
summaryId path string 表单摘要Id
content body string(JSON) 表单摘要对象 JSON

请求体

对应 SummaryCfgVO 对象 JSON。

{ "title": "<摘要标题>", "scope": 0, "formId": "...", "...": "..." }

响应

datanull(成功)。

{ "errcode": 0, "errmsg": "ok", "data": null, "errors": null }
失败示例(重名/待办摘要已存在等):
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }


5. 删除表单摘要(可批量)

按摘要Id数组批量删除表单摘要(删除前收集各摘要的路径信息)。

  • 接口类型:REST 资源
  • 请求方式DELETE
  • 请求路径/{applicationId}/summarys
  • 鉴权:是(需 designerToken)
  • Tag:设计时-表单摘要模块

请求参数

参数名 位置 类型 必填 说明
applicationId path string 应用Id
ids body string 表单摘要Id字符串数组

请求体

["<summaryId1>", "<summaryId2>"]

响应

dataString,固定为 "删除成功"

{ "errcode": 0, "errmsg": "ok", "data": "删除成功", "errors": null }
失败示例
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }