ETL从金蝶云星空到简道云:实现员工数据的无缝迁移

  • 轻易云集成顾问-曾平安

金蝶云星空员工列表同步到简道云的系统对接集成案例

在数据集成过程中,如何高效、安全地将企业人力资源管理系统中的数据,同步到业务应用平台,是一个常见的技术挑战。本案例中,我们聚焦于金蝶云星空与简道云的数据对接,通过使用executeBillQuery接口从金蝶云星空获取员工列表,并利用简道云提供的API快速写入数据,实现两大平台间可靠、实时的信息同步。

首先,为了确保每条来自金蝶云星空的数据都能够准确无漏地进入简道云,我们配置了定时抓取机制。通过轻易的平台设置周期性任务,我们能够定时调用金蝶API接口进行数据拉取。这不仅提高了抓取频率,也增强了任务执行的可靠性。

面对大量员工信息需要批量写入的问题,处理分页和限流成为重点。通过仔细分析并实现合理的分页策略,在执行分页查询过程中,每次请求均精确控制返回记录数量,以应对API限流限制。这保证了即使在高负载情况下,依旧能稳定获取完整的数据集。

此外,不同平台间存在的数据格式差异也不可忽视。在具体实施方案中,通过自定义映射规则,将从金蝶取得的信息字段转化为适配简道输入要求的数据格式,从而实现无障碍传输。同时,针对可能发生的异常情况,例如网络不稳或接口响应超时等情景,通过设计健全的错误重试机制,进一步提升系统稳定性与容错能力。

最后,由于整个流程具有高度透明化和可操作性的特点,我们能够实时监控包括日志记录、状态追踪在内的一系列关键指标,以确保一旦出现问题便可以迅速定位并修正,从而达到精准、高效的数据同步目的。 金蝶与WMS系统接口开发配置

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

在数据集成生命周期的第一步,我们需要调用源系统金蝶云星空的接口executeBillQuery来获取员工列表数据,并对其进行初步加工。本文将详细探讨如何利用轻易云数据集成平台配置元数据,完成这一过程。

接口调用与元数据配置

首先,我们需要了解金蝶云星空接口executeBillQuery的基本配置。根据提供的元数据配置,我们可以看到该接口使用POST方法进行请求,主要参数如下:

  • api: executeBillQuery
  • effect: QUERY
  • method: POST
  • number: FNumber
  • id: FID
  • idCheck: true

请求参数包括以下字段:

[
    {"field":"FNumber","label":"FNumber","type":"string","describe":"111","value":"FNumber"},
    {"field":"FID","label":"FID","type":"string","describe":"111","value":"FID"},
    {"field":"FName","label":"FName","type":"string","describe":"111","value":"FName"},
    {"field":"FMobile","label":"FMobile","type":"string","describe":"111","value":"FMobile"},
    {"field":"FEmail","label":"FEmail","type":"string","describe":"111","value":"FEmail"},
    {"field":"FPostDept","label":"FPostDept","type":"string","describe":"111","value":"FPostDept"},
    {"field":"FBaseProperty3","label":"FBaseProperty3","type":"string","describe":"111","value":"FBaseProperty3"},
    {"field": "FilterString", "label": "FilterString", "type": "string", "describe": "示例写法 FSupplierId.FNumber = 'VEN00010' and FApproveDate>=", "value": "FForbidStatus ='A'"},
    {"field": "FieldKeys", "label": "FieldKeys", "type": "array", "describe": "金蝶分录主键ID格式:FPOOrderEntry_FEntryId,其它格式 FPurchaseOrgId.FNumber", "value": "{MAIN_REQUEST}"},
    {"field": "FormId", "label": "FormId", "type": "string", "describe": "必须填写金蝶的表单ID如:PUR_PurchaseOrder", "value": "BD_Empinfo"}
]

请求参数解析

  1. 基础字段

    • FNumber, FID, FName, FMobile, FEmail, FPostDept, FBaseProperty3等字段是我们需要从金蝶云星空获取的员工信息。
  2. 过滤条件

    • 使用FilterString字段可以设置查询条件,例如:"FilterString": "FSupplierId.FNumber = 'VEN00010' and FApproveDate>="。在本案例中,我们设置为"FilterString": "FForbidStatus ='A'",表示只查询状态为启用的员工。
  3. 分页参数

    • 为了避免一次性拉取大量数据导致性能问题,可以使用分页参数如Limit, StartRow, TopRowCount等。例如,设置每次查询200条记录,起始行数为1。
  4. 表单ID

    • 表单ID通过FormId字段指定,在本案例中为员工信息表单ID:"FormId": "BD_Empinfo"

数据请求与清洗

在配置好请求参数后,通过轻易云平台发起API调用,获取到员工列表数据。接下来,需要对返回的数据进行清洗和初步加工。这一步主要包括以下几个方面:

  1. 数据格式转换

    • 将返回的数据转换为统一的JSON格式,以便后续处理。
  2. 字段映射与重命名

    • 根据需求,将原始字段映射到目标系统所需的字段。例如,将金蝶云星空中的FID映射为简道云中的员工ID。
  3. 数据过滤与校验

    • 对返回的数据进行过滤和校验,确保只有符合条件的数据被保留下来。例如,剔除无效或重复的数据记录。

实际应用案例

假设我们从金蝶云星空获取到以下员工信息:

[
    {
        "FID": 1001,
        "FNumber": "E001",
        "FName": "张三",
        "FMobile": "+8613800000000",
        "FEmail": "zhangsan@example.com",
        ...
    },
    {
        ...
    }
]

我们可以通过轻易云平台对这些数据进行清洗和转换,例如将电话号格式标准化、去除无效字符等。最终生成符合简道云要求的数据格式,并准备写入目标系统。

通过上述步骤,我们完成了从调用源系统接口到初步加工数据的整个过程。这不仅提高了数据处理效率,还确保了数据的一致性和准确性,为后续的数据转换与写入奠定了基础。 金蝶与CRM系统接口开发配置

使用轻易云数据集成平台实现金蝶云星空员工列表同步到简道云

在数据集成生命周期的第二阶段,我们将重点讨论如何将已经从源平台(金蝶云星空)获取的数据进行ETL(Extract, Transform, Load)转换,并最终写入目标平台(简道云)。本文将深入探讨API接口的技术细节和元数据配置,以确保数据的无缝对接。

API接口与元数据配置

在本案例中,我们需要将金蝶云星空的员工列表数据转换为简道云API能够接受的格式。以下是关键的元数据配置:

{
    "api": "/api/v2/app/{app_id}/entry/{entry_id}/data_create",
    "effect": "EXECUTE",
    "method": "POST",
    "idCheck": true,
    "request": [
        {"field":"_widget_1690761596439","label":"创建组织","type":"string","value":"{FCreateOrgId}","parser":{"name":"ConvertObjectParser","params":"value"}},
        {"field":"_widget_1690761596440","label":"使用组织","type":"string","value":"{FUseOrgId}","parser":{"name":"ConvertObjectParser","params":"value"}},
        {"field":"_widget_1690761596441","label":"员工姓名","type":"string","value":"{FName}","parser":{"name":"ConvertObjectParser","params":"value"}},
        {"field":"_widget_1690761596442","label":"员工编号","type":"string","value":"{FStaffNumber}","parser":{"name":"ConvertObjectParser","params":"value"}},
        {"field":"_widget_1690763444713","label":"工作组织名称","type":"string","parser":{"name":"ConvertObjectParser","params":"value"}},
        {"field":"_widget_1690763444714","label":"工作组织编码","type":"string","value":"{FWorkOrgId}","parser":{"name":"ConvertObjectParser","params":"value"}},
        {"field":"_widget_1690763444715","label":"所属部门名称","type":"string","parser":{"name":"ConvertObjectParser","params":"value"}},
        {"field":"_widget_1690763444716","label":"所属部门编码","type":"","value":"","parser":{"name":"","params":""}},
        {"field":"","label":"","type":"","parser":{"name":"","params":""}},
        {"field":"","label":"","type":"","parser":{"name":"","params":""}}
    ],
    "otherRequest":[
        {"field": "is_start_workflow", "label": "is_start_workflow", "type": "string", "describe": "111", "value": "true"},
        {"field": "is_start_trigger", "label": "is_start_trigger", "type": "string", "describe": "111", "value": "false"},
        {"field": "transaction_id", "label": "transaction_id", "type": "string", "describe": "",  value: ""},
        {"field": "",  label: "", type: "", describe: "", value: ""}
    ]
}

数据请求与清洗

首先,我们从金蝶云星空获取原始员工数据。在这个阶段,确保所有必要字段(如FCreateOrgId, FUseOrgId, FName, FStaffNumber等)都已正确提取并清洗,以便后续处理。

数据转换与写入

接下来,我们需要将这些清洗后的数据通过ETL流程转换为简道云API所需的格式。具体步骤如下:

  1. 字段映射:根据元数据配置,将金蝶云星空的数据字段映射到简道云API所需的字段。例如:

    • FCreateOrgId 映射到 _widget_1690761596439
    • FUseOrgId 映射到 _widget_1690761596440
    • FName 映射到 _widget_1690761596441
    • FStaffNumber 映射到 _widget_1690761596442
  2. 类型转换:使用ConvertObjectParser进行必要的数据类型转换,确保每个字段的数据类型符合简道云API要求。例如,将所有字符串类型的数据统一转换为字符串格式。

  3. 构建请求体:根据映射关系和转换后的数据,构建POST请求体。示例如下:

{
    "_widget_1690761596439": "{FCreateOrgId}",
    "_widget_1690761596440": "{FUseOrgId}",
    "_widget_1690761596441": "{FName}",
    "_widget_1690761596442": "{FStaffNumber}",
    "_widget_1690763444713": "",
    "_widget_1690763444714": "{FWorkOrgId}",
    "_widget_1690763444715":"",
}
  1. 发送请求:使用HTTP POST方法,将构建好的请求体发送至简道云API接口。确保在请求头中包含必要的认证信息,如API密钥等。

  2. 处理响应:接收并处理简道云返回的响应,确认数据是否成功写入。如有错误,根据错误信息进行调试和修正。

实践案例

假设我们从金蝶云星空获取了一条员工记录如下:

{
    "FCreateOrgId": "ORG001",
    "FUseOrgId": "ORG002",
    "FName": "张三",
    "FStaffNumber": 1001,
}

经过ETL转换后,我们构建的POST请求体应如下所示:

{
    "_widget_1690761596439": 1001,
    "_widget_1690761596440":"",
}

通过以上步骤,我们成功地将金蝶云星空的员工列表同步到了简道云,实现了不同系统间的数据无缝对接。 电商OMS与WMS系统接口开发配置

更多系统对接方案