使用轻易云平台进行数据ETL转换并写入金蝶云API

  • 轻易云集成顾问-贺强

吉客云数据集成到金蝶云星空:盘盈单103v2对接其他入库

在本文中,我们将详细讨论一个典型的系统对接集成案例:如何利用盘盈单103v2方案实现吉客云数据高效、可靠地集成到金蝶云星空。这一过程涉及多个技术环节,包括API接口调用、分页与限流处理、数据格式转换等关键问题。

首先,确保吉客云的数据不漏单是整个集成过程中首要考虑的问题。通过定时抓取吉客云的erp.storage.goodsdocin.v2接口数据,可以保证每次获取的数据都是最新且完整的。此外,为应对大量数据,我们采用了批量写入技术,将获取的数据快速写入至金蝶云星空的batchSave API,不仅提升了效率,还减少了各类错误发生的可能性。

处理分页和限流问题是另一个重要环节。在面对大体量且需要及时更新的数据时,对吉客云API进行合理配置,以确保能按需分页抓取,并采用重试机制来防止由于网络或服务器压力导致的数据丢失或重复提交。同时,通过实时监控与日志记录,可以全程追踪每一次数据传输和处理状态,有效预警并解决潜在异常。

除此之外,两个系统之间存在的数据格式差异也是必须克服的问题。我们全面定制化数据显示映射关系,确保存储在吉客云上的信息能够无缝转换为金蝶云星空所需的格式,从而避免出现因字段不匹配导致的数据错乱。

对于特殊情况下如网络异常或者接口响应超时等情况,则引入了一整套完备的错误重试机制及预警体系。此构架不仅提升了整体稳定性,也确保即使遇到突发故障也能迅速恢复正常操作流程。

以上内容只是盘盈单103v2方案实际运行策略中的一部分,在随后的章节中将详细介绍具体实施步骤与关键代码细节,以帮助读者更好地理解这一高效、可靠的数据集成解决方案。 如何开发用友BIP接口

调用吉客云接口erp.storage.goodsdocin.v2获取并加工数据的技术案例

在数据集成过程中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用吉客云接口erp.storage.goodsdocin.v2,并对获取的数据进行加工处理。

接口调用配置

首先,我们需要配置元数据以便正确调用吉客云的接口。以下是关键的元数据配置:

{
  "api": "erp.storage.goodsdocin.v2",
  "method": "POST",
  "number": "goodsdocNo",
  "id": "recId",
  "pagination": {
    "pageSize": 10
  },
  "idCheck": true,
  "request": [
    {"field":"pageIndex","label":"分页页码","type":"int"},
    {"field":"pageSize","label":"分页页数","type":"int","value":"100"},
    {"field":"goodsDocNo","label":"入库单号","type":"string"},
    {"field":"startDate","label":"创建时间的起始时间","type":"string"},
    {"field":"endDate","label":"创建时间的结束时间","type":"string"},
    {"field":"gmtModifiedStart","label":"主表更新时间起始","type":"string","value":"_function from_unixtime(({LAST_SYNC_TIME}-86400),'%Y-%m-%d %H:%i:%s')"},
    {"field":"gmtModifiedEnd","label":"主表更新时间截至","type":"string","value":"_function from_unixtime(({CURRENT_TIME}-86400),'%Y-%m-%d %H:%i:%s')"},
    {"field":"inouttype","label":"入库类型","type":"string","describe":"入库类型(103-盘盈入库)","value":"103"},
    {"field":"sourceBillNo","label":"原始单号","type":"string"},
    {"field":"warehouseCode","label":"仓库编号","type":"string"},
    {"field":"outBillNo","label":"外部单号","type":"string"},
    {"field":"vendCode","label":"供应商编号(往来单位)","type":"string"},
    {"field":"billNo","label":"上游单据号(关联单号)","type":"string"},
    {"field":"userName","label":"创建人名称","type":""},
    {"field": "selelctFields", "label": "需要返回的字段", "type": "string", "describe": "需要返回的字段,用“,”号拼接,子类用子类名称.属性", 
     "value": "..."} // 字段过多省略
  ],
  "omissionRemedy": {
    "crontab": "2 */5 * * *",
    "takeOverRequest": [
      {
        "field": "gmtModifiedStart",
        "value": "_function from_unixtime(({CURRENT_TIME}-172800),'%Y-%m-%d %H:%i:%s')",
        "label": "接管字段"
      },
      {
        "field": "gmtModifiedEnd",
        "value": "_function from_unixtime(({CURRENT_TIME}-86400),'%Y-%m-%d %H:%i:%s')",
        "label": ""
      }
    ]
  }
}

数据请求与清洗

在配置好元数据后,我们开始进行数据请求。通过POST方法向erp.storage.goodsdocin.v2接口发送请求,获取盘盈入库的数据。

  1. 分页处理:为了高效处理大量数据,我们设置了分页参数pageIndexpageSize。每次请求100条记录。
  2. 时间过滤:使用gmtModifiedStartgmtModifiedEnd字段来过滤更新时间在过去24小时内的数据。这些时间戳通过函数计算得到,以确保同步过程中不遗漏任何更新。
  3. 入库类型:指定入库类型为103,即盘盈入库。
{
  "pageIndex": 1,
  "pageSize": 100,
  ...
}

数据转换与写入

获取到原始数据后,需要对其进行转换和清洗,以便写入目标系统。以下是几个关键步骤:

  1. 字段映射:根据业务需求,将吉客云返回的数据字段映射到目标系统所需的字段。例如,将goodsDocDetailList.skuId映射为目标系统中的商品ID。
  2. 数据格式转换:某些字段可能需要格式转换,例如日期格式、数值精度等。
  3. 异常处理:对于缺失或异常数据,需要进行补救或记录日志,以便后续排查。
def transform_data(raw_data):
    transformed_data = []

    for record in raw_data:
        transformed_record = {
            '商品ID': record['goodsDocDetailList']['skuId'],
            '数量': record['goodsDocDetailList']['quantity'],
            '仓库编号': record['warehouseCode'],
            '创建时间': record['gmtCreate'],
            # 更多字段映射...
        }

        transformed_data.append(transformed_record)

    return transformed_data

实时监控与异常处理

在整个数据集成过程中,实时监控和异常处理是确保数据准确性和完整性的关键。我们可以设置定时任务(如crontab)来定期检查和补救遗漏的数据。

{
  ...
  “omissionRemedy”: {
      “crontab”: “2 */5 * * *”,
      “takeOverRequest”: [
          {
              “field”: “gmtModifiedStart”,
              “value”: “_function from_unixtime(({CURRENT_TIME}-172800),’%Y-%m-%d %H:%i:%s’)”,
              “label”: “接管字段”
          },
          {
              “field”: “gmtModifiedEnd”,
              “value”: “_function from_unixtime(({CURRENT_TIME}-86400),’%Y-%m-%d %H:%i:%s’)”,
              “label”: “” 
          }
      ]
   }
}

通过以上步骤,我们实现了从吉客云接口获取盘盈入库数据,并对其进行清洗和转换,最终写入目标系统。这一过程不仅提高了数据处理效率,还保证了数据的一致性和准确性。 电商OMS与WMS系统接口开发配置

使用轻易云数据集成平台进行ETL转换并写入金蝶云星空API接口

在数据集成过程中,将源平台的数据转换为目标平台所需的格式是关键步骤之一。本文将详细探讨如何使用轻易云数据集成平台,将盘盈单103v2的数据通过ETL转换,最终写入金蝶云星空API接口。

配置元数据

在进行ETL转换之前,我们需要配置元数据。以下是针对金蝶云星空API接口的元数据配置:

{
  "api": "batchSave",
  "method": "POST",
  "idCheck": true,
  "operation": {
    "rowsKey": "array",
    "rows": 1,
    "method": "batchArraySave"
  },
  "request": [
    {"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"{goodsdocNo}"},
    {"field":"FBillTypeID","label":"单据类型","type":"string","describe":"单据类型","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"QTRKD01_SYS"},
    {"field":"FStockOrgId","label":"库存组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"{companyCode}"},
    {"field":"FStockDirect","label":"库存方向","type":"string","describe":"下拉列表","value":"GENERAL"},
    {"field":"FDate","label":"日期","type":"string","describe":"日期","value":"_function DATE_FORMAT('{inOutDate}', '%Y-%m-%d')"},
    {"field":"FDEPTID","label":"部门","type":"string","describe":"基础资料","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"BM000016"},
    {"field":"FOwnerTypeIdHead","label":"货主类型","type":"string","describe":"多类别基础资料列表","value":"BD_OwnerOrg"},
    {"field":"FOwnerIdHead","label":"货主","type":"","describe":"","parser":{"name":"","params":""},"value":""},
    {"field":"","label":"","type":"","describe":"","parser":{"name":"","params":""},"value":""},
    {"field":"","label":"","type":"","describe":"","parser":{"name":"","params":""},"value":""},
    {"field":"","label":"","type":"","describe":"","parser":{"name":"","params":""},"value":""},
    {"field":"","label":"","type":"","describe":"","parser":{"name":"","params":""},"value":""},
    {"field":"","label":"","type":"","describe":"","parser":{"name":"","params":""},"value":""}
  ],
  "otherRequest":[
      {"field":"",
      "label":"",
      "type":"",
      "describe":"",
      "parser":{
          "name":"",
          "params":[]
      },
      "value":[]
  ]
}

数据清洗与转换

在进行数据清洗与转换时,需要特别注意字段的映射和格式的转换。例如,日期字段需要使用特定的格式化函数进行处理:

{"field": "FDate", 
"label": "日期", 
"type": "string", 
"describe": "日期", 
"value": "_function DATE_FORMAT('{inOutDate}', '%Y-%m-%d')"}

上述配置中,DATE_FORMAT函数将{inOutDate}字段格式化为YYYY-MM-DD格式,以符合金蝶云星空API的要求。

数据写入目标平台

在数据清洗和转换完成后,下一步是将处理后的数据写入目标平台——金蝶云星空。我们使用POST方法调用金蝶云星空的batchSave API接口:

{
  "api": "batchSave",
  ...
}

为了确保数据正确写入,还需要配置一些额外参数,如业务对象表单ID、是否验证基础资料、执行操作等:


{
  ...
  "otherRequest":[
      {
        ...
        {
          ...
          {
            ...
            {
              ...
              {
                ...
                {
                  ...
                  {
                    ...
                    {
                      ...
                      {
                        ...
                        {
                          ...
                          {
                            ...
                            {
                              ...
                              {
                                ...
                                {
                                  ...
                                  {
                                    ...
                                    {
                                      ...
                                      {
                                        ...
![金蝶与SCM系统接口开发配置](https://pic.qeasy.cloud/T15.png~tplv-syqr462i7n-qeasy.image)
更多系统对接方案