使用轻易云平台实现金蝶与吉客云的数据对接

  • 轻易云集成顾问-杨嫦

金蝶云星空数据集成到吉客云:金蝶直接调拨单对接吉客云其他入库案例

在企业的信息化管理过程中,实现不同系统间的数据高效流通是提升业务效率的关键。本技术案例将重点展示如何利用轻易云数据集成平台,将金蝶云星空的直接调拨单无缝对接至吉客云的其他入库模块。

首先,从金蝶云星空获取相关业务数据。我们使用其API接口executeBillQuery,该接口能够支持定时可靠地抓取监控任务所需的数据。为了确保数据完整性和及时性,我们采用分页查询和限流机制,以应对大规模数据处理中的挑战。在实际应用中,这不仅能防止漏单,还能有效减少因网络波动或请求超时导致的异常情况。

其次,为了实现大量数据快速写入到吉客云,我们调用了其提供的API erp.stock.createandstockin。通过灵活配置批量操作流程,可以显著提高写入效率。此外,在整合过程中,还需要解决两个平台之间的数据格式差异。这可以通过在导出端设置适用的字段映射规则来完成,并在轻易云内置的数据转换工具上进行实时调整。

在执行过程中,监控与日志记录功能尤为重要。每次操作都会有详细日志记录,通过可视化界面实时查看和分析处理状态,方便快速定位并解决可能出现的问题。同时,对接阶段具备完善的异常处理与错误重试机制,一旦发生意外终止情况可自动重新发起任务,确保最终结果可靠一致。

总之,本方案运用了多种技术手段,不仅保障了从金蝶云星空到吉客云的数据顺利传输,也极大提升了整体业务透明度与执行效率。在后续章节中,我们将深入探讨各个具体步骤及代码实现细节。

如何开发企业微信API接口

调用金蝶云星空接口executeBillQuery获取并加工数据

在数据集成的生命周期中,第一步是从源系统获取数据。本文将详细介绍如何通过轻易云数据集成平台调用金蝶云星空接口executeBillQuery,并对获取的数据进行加工处理。

接口调用配置

首先,我们需要配置调用金蝶云星空接口的元数据。以下是一个典型的元数据配置示例:

{
  "api": "executeBillQuery",
  "method": "POST",
  "number": "FBillNo",
  "id": "FBillEntry_FEntryID",
  "pagination": {
    "pageSize": 100
  },
  "idCheck": true,
  "request": [
    {"field":"FBillEntry_FEntryID","label":"FEntryID","type":"string","value":"FBillEntry_FEntryID"},
    {"field":"FID","label":"实体主键","type":"string","value":"FID"},
    {"field":"FBillNo","label":"单据编号","type":"string","value":"FBillNo"},
    {"field":"FDocumentStatus","label":"单据状态","type":"string","value":"FDocumentStatus"},
    {"field":"FStockOrgId_FNumber","label":"调入库存组织","type":"string","value":"FStockOrgId.FNumber"},
    {"field":"FDate","label":"日期","type":"string","value":"FDate"},
    {"field":"FBillTypeID_FNumber","label":"单据类型","type":"string","value":"FBillTypeID.FNumber"},
    {"field":"FTransferBizType","label":"调拨类型","type":"string","value":"FTransferBizType"},
    {"field":"FStockOutOrgId_FNumber","label":"调出库存组织","type":"string","value":"FStockOutOrgId.FNumber"},
    {"field":"FTransferDirect","label":"调拨方向","type":"string","value":"FTransferDirect"},
    {"field":"FNote","label":"备注","type":"string","value":"FNote"},
    {"field":"FBizType","label":"业务类型","type":"string","value":"FBizType"},
    {"field": "FSaleOrgId_FNumber", "label": "销售组织", "type": "string", "value": "FSaleOrgId.FNumber"}
  ],
  "otherRequest": [
    {
      "field": "Limit",
      "label": "最大行数",
      "type": "string",
      "describe": "金蝶的查询分页参数",
      "value": "{PAGINATION_PAGE_SIZE}"
    },
    {
      "field": "FieldKeys",
      "label": "需查询的字段key集合",
      "type": "array",
      "describe": "金蝶分录主键ID格式:FPOOrderEntry_FEntryId,其它格式 FPurchaseOrgId.FNumber",
      "parser":{
        "name": "ArrayToString",
        "params": ","
      }
    },
    {
      "field": "TopRowCount",
      "label": "返回总行数",
      "type": int,
      'describe': '金蝶的查询分页参数'
    },
    {
      'field': 'FilterString',
      'label': '过滤条件',
      'type': 'string',
      'describe': '示例写法 FSupplierId.FNumber = \'VEN00010\' and FApproveDate>=',
      'value': 'FApproveDate>=\'{{LAST_SYNC_TIME|dateTime}}\' and FDestStockId.FNumber =\'01DS\' and FSrcStockId.FNumber=\'24DS\' and FCreatorId.fname <> \'GYERP管易对接账号\''
    },
    {
        'field': 'FormId',
        'label': '业务对象表单Id',
        'type': 'string',
        'describe': '必须填写金蝶的表单ID如:PUR_PurchaseOrder',
        'value':'STK_TransferDirect'
     },
     {
       'field':'StartRow',
       'label':'开始行索引',
       'type':'string',
       'describe':'金蝶的查询分页参数',
       'value':'{PAGINATION_START_ROW}'
     }
   ]
}

数据请求与清洗

在配置好元数据后,我们通过POST方法调用executeBillQuery接口,从金蝶云星空系统中获取直接调拨单的数据。以下是一个请求示例:

{
  "_FormId_":"",
  "_FieldKeys_":"",
  "_FilterString_":"",
  "_Limit_":"",
  "_StartRow_":"",
}

在请求中,我们需要传递表单ID(FormId)、字段key集合(FieldKeys)、过滤条件(FilterString)、最大行数(Limit)和开始行索引(StartRow)等参数。

示例代码
import requests

url = "<轻易云API地址>"
headers = {
   # 根据实际情况设置头部信息
}

payload = {
   "_FormId_":"",
   "_FieldKeys_":"",
   "_FilterString_":"",
   "_Limit_":"",
   "_StartRow_":"",
}

response = requests.post(url, headers=headers, json=payload)

if response.status_code == 200:
   data = response.json()
   # 对数据进行清洗和处理
else:
   print("Error:", response.status_code)

数据转换与写入

在获取并清洗了原始数据后,下一步是将其转换为目标系统所需的数据格式,并写入目标系统。在这个过程中,可以利用轻易云平台提供的丰富功能进行数据转换,例如字段映射、格式转换等。

示例代码
def transform_data(data):
   transformed_data = []

   for item in data:
       transformed_item = {
           # 根据目标系统要求进行字段映射和转换
           # 示例:
           # target_field: item["source_field"]
       }
       transformed_data.append(transformed_item)

   return transformed_data

# 获取到的数据
data = response.json()

# 转换数据
transformed_data = transform_data(data)

# 写入目标系统
write_to_target_system(transformed_data)

通过上述步骤,我们完成了从源系统获取数据、清洗处理、转换并写入目标系统的全过程。这一过程不仅提高了数据处理效率,还确保了数据的一致性和准确性。 金蝶云星空API接口配置

使用轻易云数据集成平台实现金蝶直接调拨单对接吉客云其他入库

在数据集成生命周期的第二步中,我们需要将已经集成的源平台数据进行ETL转换,转为目标平台吉客云API接口所能够接收的格式,最终写入目标平台。以下是详细的技术实现步骤和元数据配置解析。

API接口配置

我们使用的API接口为erp.stock.createandstockin,请求方法为POST。在此过程中,需要注意以下几个关键点:

  • ID校验idCheck设置为true,确保数据唯一性。
  • 操作方法:使用merge方法,将字段FBillNo作为合并依据。
  • 请求体结构:请求体包含头部信息(header)和明细信息(body)。

元数据配置解析

元数据配置如下:

{
  "api": "erp.stock.createandstockin",
  "method": "POST",
  "idCheck": true,
  "operation": {
    "method": "merge",
    "field": "FBillNo",
    "bodyName": "details",
    "bodySum": ["FRemainInStockQty"],
    "header": ["FID", "FBillNo", "FDocumentStatus", "FDestStockId_FNumber", "FDate"],
    "body": ["FMaterialId_FNumber", "FRemainInStockQty", "FDestLot", "FProduceDate", "FExpiryDate", "FMaterialId_FExpPeriod"]
  },
  "request": [
    {"field":"vendCode","label":"供应商编码","type":"string"},
    {"field":"applyDepartCode","label":"部门编码","type":"string","describe":"部门编号和公司编号 要同时填否则部门信息会有偏差","value":"H04"},
    {"field":"applyCompanyCode","label":"入库公司编码","type":"string","describe":"公司编号和部门编号 要同时填否则公司信息会有偏差","value":"103"},
    {"field":"inWarehouseCode","label":"仓库编码","type":"string","value":"{FDestStockId_FNumber}"},
    {"field":"inType","label":"入库类型","type":"string","describe":"入库类型 101=采购入库 102=调拨入库 103=盘盈入库 104=其他入库","value":"101"},
    {"field":"relDataId","label":"关联单据编号","type":"string","describe":"可随机,保证不重复即可","value":"{FBillNo}"},
    {"field":"applyUserId","label":"申请人","type":"string","value":"1"},
    {"field":"applyUserName","label":"申请人姓名","type":"string","describe":"超级用户","value":"吕修远"},
    {"field":"applyDate","label":"申请时间","type":"string","value":"{FDate}"},
    {"field":"memo","label":"备注","type":"string","value":"{FNOTE}"},
    {"field":"operator","label":"制单人","type":"","value":"","value":"","value":"","value":"","value":"","value":"","value":"","value":"","value":"","value":"","value":"","value":"","value":"","type":{"skuBarcode"}}

数据转换与写入

  1. 数据请求与清洗

    • 从金蝶系统中获取调拨单的数据,包括单据编号(FBillNo)、物料编号(FMaterialId_FNumber)、数量(FRemainInStockQty)等。
    • 清洗数据,确保字段格式和内容符合目标平台要求。
  2. 数据转换

    • 将清洗后的数据按照元数据配置进行映射。例如,将金蝶系统中的仓库编码(FDestStockId_FNumber)映射到吉客云的仓库编码字段(inWarehouseCode)。
    • 对于复杂字段,如批号明细(batchList),需要逐一映射子字段,包括批号、数量、生产日期、到期日期等。
  3. 构建请求体

    • 根据元数据配置构建请求体。头部信息包括FID、FBillNo、FDocumentStatus等;明细信息包括物料编号、数量、批号等。
    • 特别注意数组类型字段,如stockInDetailViews,需要将每个明细条目逐一添加到数组中。
  4. 发送请求

    • 使用HTTP POST方法将构建好的请求体发送到吉客云API接口。
    • 确保请求成功,并处理返回结果,如记录日志或更新状态。

以下是一个示例请求体:

{
  "vendCode": "",
  "applyDepartCode": "H04",
  "applyCompanyCode": "103",
  ...
  ...
}

技术要点

  • 异步处理:确保整个过程为全异步处理,提高效率和响应速度。
  • 错误处理:对每一步骤进行错误捕获和处理,确保系统稳定性。
  • 实时监控:通过轻易云平台提供的实时监控功能,随时掌握数据流动和处理状态。

通过以上步骤,我们可以高效地将金蝶直接调拨单的数据转换并写入到吉客云,实现两个异构系统之间的数据无缝对接。 系统集成平台API接口配置

更多系统对接方案