# 集成节点

# 一、 集成节点数据结构概述

  • 所有基础节点的输入/输出配置方式一致。
  • 数据流向
    • 调用时:ESB输入 → 集成节点参数。
    • 返回时:集成节点返回 → ESB输出。
  • 数据结构支持情况
    • 自动生成:SAP/SQL等标准节点。
    • 需手动配置:RESTful WebAPI等接口。

# 二、 RESTful接口手动配置数据结构

# 以K3WISE物料列表为例

  1. 基础配置

    • 新建ESB数据源。
    • 拖入RESTful集成组件。
    • 配置连接:K3。
    • 请求类型:POST。
    • 服务路径:Material/GetList。

    基础配置 ▲ 基础配置

  2. 导入架构方法

    • 调用参数配置

      1. 切换到"调用"页签。
      2. 点击Payload区域的"导入"按钮。
      3. 选择"JSON示例"类型。
      4. 粘贴API文档中的请求示例:
       {
         "Data": {
           "Top": "100",
           "PageSize": "10",
           "PageIndex": "1",
           "Filter": "FNumber like '%003%' ",
           "OrderBy": "FNumber asc",
           "Fields": "FNumber,FName"
         }
       }
      
      1. 点击"生成架构" → "保存"。

      调用参数配置 ▲ 调用参数配置

    • 返回参数配置

      1. 切换到"返回"页签。
      2. 右键Response选择"导入"。
      3. 粘贴API文档中的响应示例:
          {
            "StatusCode": 200,
            "Message": "Success",
            "Data": {
              "ROWCOUNT": 0,
              "PAGESIZE": 10,
              "PAGEINDEX": 1,
              "DATA": null
            }
          }
      
      1. 生成架构后保存。

      返回参数配置 ▲ 返回参数配置

  3. 手动编辑方法

    • 右键点击Response选择"编辑"。
    • 添加字段(支持类型:string/number/boolean等)。
    • 数组配置:勾选"数组"选项将转换为:
      Array<Object> 或 Array<String>
      
    • 规范说明:采用JSON Schema标准。

# 三、 数据映射机制详解

  1. 映射本质

    • 实际生效的是右侧JS代码。
    • 连线工具仅自动生成简单映射代码。
  2. 示例解析

    // 实际生效的映射逻辑(示例)
    var $result = {
        Response: {
            total: Response.Data.ROWCOUNT,
            rows: map(Response.Data.DATA, function (dATA, indexOfDATA) {
                return {
                    供应商编码: dATA.FNumber,
                    供应商名称: dATA.FName
                };
            })
        }
    }
    
    // BU节点返回映射示例
    // 功能:判断结果集非空时取首条记录的bu字段
    bu: Result.rows.length ? Result.rows[0].bu : null
    
  3. 无连线情况

    • 仍可通过JS代码实现数据传递。
    • 复杂逻辑时连线可能不显示但代码仍有效。

# 四、 高级数据转换技巧

  1. JS代码优势

    • 支持数据格式转换(如日期→字符串)。
    • 可处理复杂业务逻辑。
    • 支持函数式编程。
  2. 扩展能力

    • 自定义JS函数
      • 节点内定义:当前映射可用。
      • 系统级定义:全局可用(路径:系统扩展→增加ESB映射函数)。
  3. 典型应用场景

    // 示例:K3日期转换
    Fdate1: $Ymd(明细.交货日期)
    

# 五、 注意事项

  1. JSON Schema规范参考:https://json-schema.org/
  2. 复杂映射建议先进行数据预览。
  3. 系统预置函数列表可在帮助文档查询。