- 
                Notifications
    
You must be signed in to change notification settings  - Fork 3
 
ExportAPIv2
        marstone edited this page Jul 26, 2024 
        ·
        10 revisions
      
    - 本服务旨在将数据转化成文件。支持的文件类型包括:
- Excel
 - Word(暂不支持)
 - PDF(暂不支持)
 - PNG(暂不支持)
 
 - 本服务为导出API的GraphQL版,原导出API的REST版点此访问
- 区别1:本版本直接传输文件内容,而是传输文件URL
 - 区别2:本版本支持异步导出
 
 
type Mutation {
  # 将数据导出成文件
  exportFile(
    # 导出文件格式,[xslx|docx|pdf|png] 枚举,大小写不敏感
    format: String!, 
    # 导出的文件名,可选。导出多个文件时会追加序号。
    name: String,
    # 按照 token 查询导出进度,可选
    # 如 token 有效,将会忽略data等后续参数
    # 如 token 无效但有 data 参数,则会重新导出并返回新 token
    # 如 token 无效且无 data 参数,报 EXPORT_TOKEN_INVALID 错误
    token: String,
    # 需要导出的数据,JSON 格式。
    # 对于xlsx导出,格式为:[[ {object} ]] (对象二维数组,对象数据类型需符合 fields[].type )
    # 其他格式导出时,data要求参考'补充说明[1]'。
    data: String
    # 字段列表,JSON 格式的数组,格式为: { "type": {字符串}, "label": {字符串} }
    # type 可选值参考'补充说明[2]'
    fields: String
    # 可填充的文件模版的URL,仅 docx|pdf|png 格式支持且必须,xlsx不支持 
    template: String,
    # 仅xlsx支持。默认值false。当label=true时,第一行为标题栏,显示fields的label字段
    label: Boolean 
    # 安全导出:导出文件的 uri 带有一次性 token,下载一次之后链接失效。默认 false
    secure: Boolean
  ): ExportResult
}
# 导出结果
type ExportResult {
  # 当前导出任务凭据,用于后续进度查询
  token: String!
  # 当前处理进度(0, 100),仅当100时表示导出完成
  progress: Int!
  # 导出后文件列表。仅图片格式(png)支持多文件导出。进度不到100时可不给出
  files: [ExportFile]
}
# 导出的文件
type ExportFile {
  # 文件下载地址 
  uri: String!
}
- [1] data格式参考:流程数据
 - [2] type参数:流程表单数据类型
- 对于 
KV类型(比如UserOrganizeCode)的字段,将自动获取字段名_Name作为显示值导出 - 对于 
File的字段,如果mime=image/*,则获取uri导出为图片;否则获取name和uri导出为超链接。 
 - 对于 
 
- 报错格式需符合Provider错误扩展
 
| 错误码 | Explained | 
|---|---|
| BAD_PARAMETER | 参数不合法。并需在detail中给出具体有问题的参数及解释 | 
| EXPORT_TOKEN_INVALID | token 参数无效,且未给出 data 参数 | 
- format: 'xlsx'
 - data='[ [1,"hello"], [2,null], [3,"world"] ]'
 - fields='[ {"type":"integer","label":"序号"}, {"type":"string","label":"内容"} ]'
 - label=true
 
| 序号 | 内容 | 
| 1 | Hello | 
| 2 | |
| 3 | World |