# 输入、输出概念

# 1. 输入数据结构设计原则

# 1.1 避免的两种方式

方式 问题 替代方案
接口原生结构 专业术语多,业务难理解 自定义业务化结构
表引用结构 冗余字段多,耦合数据库 人工定义精简结构

# 1.2 推荐设计方法

  1. 业务导向命名

    • 原生字段:PO_HEADER → 业务字段:订单主信息
    • 原生字段:MATNR → 业务字段:物料编码
  2. 结构精简

    // 不良示例(表引用)
    "Payload": {
      "id": "",
      "create_time": "",
      "creator": "",
      "order_no": "" // 实际需要字段
    }
    
    // 良好示例
    "订单数据": {
      "订单编号": "",
      "明细列表": [{
        "行号": "",
        "物料编码": ""
      }]
    }
    

# 2. 输出数据结构设计

# 2.1 返回数据规划要点

  1. 必要业务信息

    • 系统处理结果(成功/失败)
    • 关键业务标识(如SAP订单号)
    • 错误详情(如BAPI返回消息)
  2. 标准化结构示例

    {
      "处理结果": "SUCCESS",
      "返回代码": "0000",
      "业务数据": {
        "系统单号": "4500000123",
        "凭证日期": "2023-08-01"
      },
      "错误信息": null
    }
    

# 3. 完整配置示例

# 3.1 输入结构定义

// ESB输入结构(人工编制)
{
  "订单主信息": {
    "公司代码": "1000",
    "采购组织": "2000",
    "供应商编码": "V10086"
  },
  "订单明细": [
    {
      "物料编码": "M-1001",
      "数量": 10,
      "工厂": "W100"
    }
  ]
}

# 3.2 输出结构定义

// ESB输出结构
{
  "处理状态": {
    "code": "string", // 返回码
    "message": "string" // 返回信息
  },
  "业务返回": {
    "SAP订单号": "string",
    "凭证类型": "string"
  }
}

# 4. 实施建议

# 4.1 结构设计流程

  1. 需求分析

    • 明确业务场景和使用者
    • 识别关键数据要素
  2. 结构设计

    • 绘制数据映射关系图
    • 确定字段命名规范
  3. 版本控制

    • 初始版本:v1.0
    • 变更记录:
      版本 变更内容 日期
      1.1 增加税率字段 2023-08-01

# 4.2 维护建议

  1. 文档配套

    • 维护字段说明词典
    • 提供示例数据
  2. 变更管理

    • 向后兼容至少3个版本
    • 重大变更提前通知

# 5. 注意事项

  1. 数据类型

    • 明确区分字符串/数字类型
    • 特殊格式要求(如日期格式)
  2. 安全规范

    • 敏感字段脱敏处理
    • 避免返回系统内部信息