轻易云平台助力ETL转换及数据写入云水聚

  • 轻易云集成顾问-陈洁琳
### 金蝶收款单对接到云水聚的实现方案 在系统集成项目中,数据的一致性和实时性往往是评价成败的关键因素。本文将详细描述如何通过轻易云数据集成平台,将金蝶云星空生成的收款单,无缝对接到云水聚,实现收款记录的高效处理与同步。在实际运行过程中,该方案被命名为“金蝶收款单对接收款记录接收-ok”,并成功解决了多个技术难题。 首先,我们需要面临的是如何确保从金蝶云星空获取的数据不漏单,从而保证账务信息的完整性。为此,通过调用executeBillQuery接口定时抓取最新生成的收款单,并以可靠机制保障每次数据提取都准确无误。这部分操作利用了全生命周期管理功能,对流程进行实时监控,确保每个环节操作透明、数据流动清晰。 面对大量业务数据快速写入到云水聚的问题,我们借助批量集成技术,将抓取到的数据转换并分批传输给/Kingdee/UpdateBankPayBackInfo接口,高效地完成大规模数据交互。同时,为处理分页和限流问题,采用了自适应策略,不仅提高了系统性能,还避免了API请求超负荷造成的数据丢失或延迟。 另外,由于两个平台间的数据格式存在一定差异,在发送前需进行格式转换。我们定制化设计了一套映射规则,以匹配云水聚所要求的数据结构。这些规则被嵌入至自动化工作流中,使得整个过程更加顺畅且低错误率。此外,针对可能出现的异常情况,配置了一整套完善的错误捕捉与重试机制,以确保任何一次失败都能得到及时补救及重发。 通过上述措施,这一集成方案不仅实现了精准、高效、安全的信息传递,更让企业能够随时掌握财务动态,大幅提升整体运营效率。以下章节将深入细节配置及特定代码示例来进一步阐述具体实施步骤及最佳实践方法。 ![用友与MES系统接口开发配置](https://pic.qeasy.cloud/D34.png~tplv-syqr462i7n-qeasy.image) ### 调用金蝶云星空接口executeBillQuery获取并加工数据 在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将深入探讨如何通过轻易云数据集成平台调用金蝶云星空的`executeBillQuery`接口来获取并加工数据。 #### 接口配置与请求参数 首先,我们需要了解`executeBillQuery`接口的基本配置和请求参数。根据提供的元数据配置,接口采用POST方法进行调用,主要用于查询操作(effect: QUERY)。以下是关键字段及其描述: - **FID**: 单据ID - **FBillNo**: 单据编号 - **FDOCUMENTSTATUS**: 单据状态 - **FCreatorId**: 创建人ID - **FAPPROVERID**: 审批人ID - **FCreateDate**: 创建日期 - **FSETTLEORGID**: 结算组织ID - **FApproveDate**: 审批日期 这些字段将作为请求参数发送给金蝶云星空,以获取相应的数据。 #### 请求示例 为了更好地理解如何构建请求,我们来看一个具体的请求示例。假设我们需要查询所有审批日期在某个时间点之后且单据状态为“C”的收款单记录,可以构建如下请求: ```json { "FormId": "AR_RECEIVEBILL", "FieldKeys": ["FID", "FBillNo", "FDOCUMENTSTATUS", "FCreatorId", "FAPPROVERID", "FCreateDate", "FSETTLEORGID.FNumber", "FApproveDate"], "FilterString": "FApproveDate>='2023-01-01' and FDocumentStatus='C'", "Limit": 100, "StartRow": 0 } ``` #### 数据清洗与转换 获取到原始数据后,需要对数据进行清洗和转换,以便后续处理和写入目标系统。以下是一些常见的数据清洗与转换操作: 1. **字段映射与重命名**:将金蝶云星空返回的数据字段映射到目标系统所需的字段。例如,将`FBillNo`映射为目标系统中的`InvoiceNumber`。 2. **数据格式转换**:将日期格式从YYYY-MM-DD转换为目标系统所需的格式。 3. **数据过滤**:根据业务需求过滤掉不需要的数据记录。例如,只保留审批通过的记录。 #### 实现代码示例 以下是一个使用轻易云平台实现上述操作的代码示例: ```python import requests import json # 定义请求URL和头信息 url = 'https://api.kingdee.com/executeBillQuery' headers = {'Content-Type': 'application/json'} # 构建请求体 payload = { "FormId": "AR_RECEIVEBILL", "FieldKeys": ["FID", "FBillNo", "FDOCUMENTSTATUS", "FCreatorId", "FAPPROVERID", "FCreateDate", "FSETTLEORGID.FNumber", "FApproveDate"], "FilterString": f"FApproveDate>='{last_sync_time}' and FDocumentStatus='C'", "Limit": 100, "StartRow": 0 } # 发起POST请求 response = requests.post(url, headers=headers, data=json.dumps(payload)) # 检查响应状态码并处理返回的数据 if response.status_code == 200: data = response.json() # 数据清洗与转换逻辑 cleaned_data = [] for record in data: cleaned_record = { 'InvoiceNumber': record['FBillNo'], 'ApprovalStatus': record['FDOCUMENTSTATUS'], 'Creator': record['FCreatorId'], 'Approver': record['FAPPROVERID'], 'CreationDate': record['FCreateDate'], 'SettlementOrg': record['FSETTLEORGID.FNumber'], 'ApprovalDate': record['FApproveDate'] } cleaned_data.append(cleaned_record) # 后续处理逻辑,例如写入目标系统 else: print(f"Error: {response.status_code}, {response.text}") ``` #### 自动填充响应 在实际应用中,轻易云平台可以自动填充响应数据,这样可以减少手动处理的工作量。通过设置`autoFillResponse`为true,平台会自动将返回的数据填充到相应的字段中。 以上内容展示了如何通过轻易云平台调用金蝶云星空接口获取并加工数据,从而实现不同系统间的数据无缝对接。这一步骤是整个数据集成生命周期中的关键环节,为后续的数据处理和写入奠定了基础。 ![打通金蝶云星空数据接口](https://pic.qeasy.cloud/S2.png~tplv-syqr462i7n-qeasy.image) ### 使用轻易云数据集成平台进行ETL转换并写入云水聚API接口 在数据集成的生命周期中,第二步是将已经集成的源平台数据进行ETL(Extract, Transform, Load)转换,并转为目标平台能够接收的格式。本文将重点探讨如何利用轻易云数据集成平台,将金蝶收款单的数据通过ETL转换后,写入到云水聚的API接口。 #### 数据请求与清洗 首先,我们从金蝶系统中提取所需的数据。这一步骤包括从源系统中获取原始数据,并对其进行必要的清洗和预处理,以确保数据的准确性和一致性。由于本文重点在于ETL转换和写入,因此不详细展开这一部分。 #### 数据转换与写入 接下来是核心步骤:将清洗后的数据进行转换,并通过API接口写入到目标平台——云水聚。我们需要根据目标平台的要求,对数据进行格式化和映射。以下是元数据配置,用于指导如何将金蝶收款单的数据转换为云水聚API所需的格式。 元数据配置如下: ```json { "api": "/Kingdee/UpdateBankPayBackInfo", "effect": "EXECUTE", "method": "POST", "idCheck": true, "request": [ {"field": "fBussinessOrderNo", "label": "商户订单号", "type": "string", "value": "{FBillNo}-{FID}"}, {"field": "fsettleno", "label": "银联流水号", "type": "string", "value": "{FSETTLENO}"}, {"field": "ftransAmount", "label": "入账金额", "type": "float", "value": "{FREALRECAMOUNTFOR_D}"}, {"field": "ftransDate", "label": "入账时间", "type": "string", "value": "{FDATE}"}, {"field": "fbookedType", "label": "入账方式", "type": "string", "value": "银行转账"}, {"field": "fCreateOrgName", "label": "入账公司", "type": "string", "value":"上海云水聚科技有限公司"}, {"field": "fbankAcnName", ![钉钉与WMS系统接口开发配置](https://pic.qeasy.cloud/T26.png~tplv-syqr462i7n-qeasy.image)