EXPORTMI

本文档描述了 EXPORTMI,用作从 M3 导出所选数据的通用 API。该选择以类似 SQL 的语法定义,且同一 API 交易可用于 M3 中的几乎任何表。返回的数据被格式化为包含平面文件格式或逗号分隔格式的单个长字段。

限制

  • 信息检索限制为 M3 中的单个表。无法连接到其他表等。API 要求从中检索信息的表包含 M3 公司字段 (CONO)。
  • 不支持包含公司选择的筛选器。M3 公司始终设置为 API 会话使用的公司(通常是用户的默认公司,除非在 API 会话的登录期间设置了不同的公司)。
  • 只有在全局分部(空白分部)上登录的 API 会话才支持包括分部的筛选器。

指南

所用筛选器的语法必须遵循以下指南:

  • 用于选择信息的筛选器以类似 SQL 的语法写入。
    注意

    这不是实际的 SQL,但它具有相似的语法。不支持 IN()、"order by" 等运算。

  • 可以为表定义一个特定的索引,这将控制返回列表的排序。如果未指定索引,则将使用 00-索引。如果已完成筛选,从性能角度来看,建议使用与筛选字段匹配的索引。
  • 运算符“from”、“where”、“and”和“or”必须小写。它们两边都必须有一个空格。
  • “=”、“<>”等运算符两边都必须有一个空格。
  • 可以使用“count(*)”等特殊运算符。结果等于与筛选器选择相匹配的记录数。
    注意

    count(*) 返回当前公司的记录数。要计算表中的所有记录,应使用 count(#)。

  • 字段名必须用大写字母书写,且包含表的前缀。即,“MMITNO”正确,但“ITNO”不正确。
  • 从性能的角度来看,建议始终指定各个字段。但是,作为一个例外,可以使用通用“*”选择所有字段。也就是说,所有可以符合交易的字段都包含在返回信息中。
  • 输入比较值时可以带,也可以不带引号 '',不管数值的类型如何,如字符串、数字等。
  • 分隔符参数 (SEPC) 用于定义字段值之间的分隔符。如果留空,则结果是包括尾随空格的文本文件格式。如果输入了字符,则该字符用作分隔符,并从值中删除可能的空格。如果字符为“*”或“#”,则字段值也会以字段名称为前缀(同样适用于结果中的所有行),后跟一个空格。
  • 如果标题参数 (HDRS) 设置为 1,则返回的第一条记录包含字段名,其格式与分隔符参数中定义的相同。
  • 输入字符串的示例:
    注意

    空格直到位置 16,包含分隔符参数 (SEPC)。然后位置 17 包含标题参数 (HDRS)。

    • 有特定字段:Select ;1MMSTAT,MMITNO,MMITDS,MMRESP,MMDCCD,MMUNMS,MMITGR,MMITCL from MITMAS where MMSTAT = 10 or MMSTAT = 90 and MMITCL = 'Y001'.
    • 无特定字段:Select ;1* from CEMAIL where CBEMTP = 04 and CBRGDT <= 20160111.
    • 有特定字段和特定索引(请注意,筛选器值与索引匹配):Select ;1MMSTAT,MMITNO,MMITDS,MMRESP,MMDCCD,MMUNMS,MMITGR,MMITCL from MITMAS80 where MMITTY = ‘D02’ and MMSTAT = ‘50’.