### 系统对接集成案例:泛微OA-Http数据集成到金蝶云星空
在企业信息系统中,数据的无缝对接和高效流转是提高工作流程效率的关键。本技术案例分享了一个实际运行方案FD004-对个费用报销 泛微=>金蝶其他应付单--427,通过轻易云数据集成平台实现了泛微OA与金蝶云星空两大系统之间的数据互通。
首先,我们需要从泛微OA-Http获取相关的费用报销数据。为此,调用其提供的API接口 `/api/workflow/paService/getWorkflowRequest` 进行定时抓取。为了确保高吞吐量的数据写入能力,使大量数据能够快速被处理,我们设置了自动重试机制,以处理可能出现的分页和限流问题,从而保证每笔数据都能顺利获取,不会发生漏单现象。此外,为保障数据质量,我们还引入了一系列监控和异常检测措施,一旦发现问题即可即时处理。
在完成数据提取后,需要将这些开票信息批量写入到金蝶云星空系统中。在这一过程中,自定义的数据转换逻辑显得尤为重要,因为两套系统间存在格式差异,比如字段名称、时间戳格式等。这一步骤通过可视化的数据流设计工具来直观配置,有效简化操作复杂度,同时增强管理便捷性。
我们使用金蝶云星空提供的 `batchSave` API 进行批量保存,这不仅提升了工作效率,还保证了操作的一致性和可靠性。为了更全面地掌握API资产使用情况,并实时追踪任务状态及性能表现,该平台具备集中监控和告警功能。如果发生异常,将触发错误重试机制以降低业务风险。
通过这个实际案例,可以看出优质的数据集成方案如何利用轻易云平台特有的不间断监控与灵活自定义规则,克服不同系统之间交互障碍,从而实现高效、稳定、安全的信息互联。这种全生命周期管理方法不但提升了业务透明度,更助力企业运营智能化迈上新台阶。
![如何开发企业微信API接口](https://pic.qeasy.cloud/D13.png~tplv-syqr462i7n-qeasy.image)
### 调用泛微OA-Http接口/api/workflow/paService/getWorkflowRequest获取并加工数据
在数据集成生命周期的第一步,调用源系统接口获取数据是至关重要的一环。本文将详细探讨如何通过轻易云数据集成平台调用泛微OA-Http接口`/api/workflow/paService/getWorkflowRequest`,并对获取的数据进行初步加工。
#### 接口调用配置
首先,我们需要配置元数据以便正确调用API接口。以下是关键的元数据配置:
```json
{
"api": "/api/workflow/paService/getWorkflowRequest",
"effect": "QUERY",
"method": "GET",
"number": "requestId",
"id": "requestId",
"name": "id",
"idCheck": true,
"request": [
{
"field": "workflowId",
"label": "e9流程id",
"type": "string",
"value": "427"
},
{
"field": "workflowIdList",
"label": "workflowIdList中间方案ID",
"type": "string",
"value": "2356388e-8c49-35b3-bb7e-1eca1a8617d5"
}
],
"autoFillResponse": true,
"condition_bk": [
[
{
"field": "workflowMainTableInfo.bxlx",
"logic": "eqv2",
"value": "实报实销"
}
],
[
{
"field": "workflowMainTableInfo.bxlx",
"logic": "eqv2",
"value": "Actual Expense"
}
]
],
"condition": [
[
{
"field": "workflowMainTableInfo.bxlx",
{
...
```
#### 请求参数与条件设置
在上述配置中,`request`部分定义了请求参数:
- `workflowId`: 固定值为`427`,表示特定的工作流ID。
- `workflowIdList`: 固定值为`2356388e-8c49-35b3-bb7e-1eca1a8617d5`,表示中间方案ID。
这些参数确保了我们能够准确地请求到所需的工作流数据。
此外,`condition_bk`和`condition`部分定义了过滤条件:
- `workflowMainTableInfo.bxlx`: 等于“实报实销”或“Actual Expense”。
这些条件用于筛选出符合特定类型的报销单据。
#### 数据获取与初步加工
在成功调用API并获取到数据后,我们需要对数据进行初步加工。以下是一个简单的示例代码片段,用于展示如何处理返回的数据:
```python
import requests
import json
# 定义API URL和请求参数
url = 'https://yourdomain.com/api/workflow/paService/getWorkflowRequest'
params = {
'workflowId': '427',
'workflowIdList': '2356388e-8c49-35b3-bb7e-1eca1a8617d5'
}
# 发起GET请求
response = requests.get(url, params=params)
# 检查响应状态码
if response.status_code == 200:
data = response.json()
# 初步加工数据,例如过滤符合条件的数据
filtered_data = []
for item in data['result']:
if item['workflowMainTableInfo']['bxlx'] in ['实报实销', 'Actual Expense']:
filtered_data.append(item)
# 输出处理后的数据
print(json.dumps(filtered_data, indent=4, ensure_ascii=False))
else:
print(f"Error: {response.status_code}")
```
在这个示例中,我们首先发起一个GET请求以获取工作流数据,然后根据预定义的条件对返回的数据进行过滤,仅保留符合“实报实销”或“Actual Expense”类型的记录。
#### 自动填充响应
元数据配置中的`autoFillResponse: true`选项表示平台会自动填充响应结果。这一功能极大地简化了开发者的工作,使得我们可以专注于业务逻辑而无需处理繁琐的数据解析过程。
#### 小结
通过上述步骤,我们成功地调用了泛微OA的API接口,并对返回的数据进行了初步加工。这一过程展示了如何利用轻易云数据集成平台高效地实现源系统数据的获取与处理,为后续的数据转换与写入奠定了坚实基础。
![金蝶与SCM系统接口开发配置](https://pic.qeasy.cloud/S13.png~tplv-syqr462i7n-qeasy.image)
### 使用轻易云数据集成平台将源平台数据转换并写入金蝶云星空API接口
在数据集成生命周期的第二阶段,关键任务是将已从源平台提取的数据进行ETL(Extract, Transform, Load)转换,并最终写入目标平台。在本案例中,我们将详细探讨如何使用轻易云数据集成平台,将泛微系统中的费用报销数据转换为金蝶云星空API接口所能接收的格式,并成功写入金蝶云星空。
#### 配置元数据
首先,我们需要配置元数据以适应金蝶云星空的API接口要求。以下是元数据配置的详细说明:
```json
{
"api": "batchSave",
"effect": "EXECUTE",
"method": "POST",
"idCheck": true,
"operation": {
"rowsKey": "array",
"rows": 1,
"method": "batchArraySave"
},
"request": [
{
"field": "FBillTypeID",
"label": "单据类型",
"type": "string",
"describe": "单据类型\n其他应付单-QTYFD01_SYS\n费用报销其他应付单-QTYFD02 SYS",
"parser": {
"name": "ConvertObjectParser",
"params": "FNumber"
},
"value": "QTYFD01_SYS"
},
{
...
}
],
...
}
```
#### 数据字段解析与转换
在配置元数据时,关键在于正确解析和转换每个字段。以下是几个重要字段的解析和转换方法:
- **FBillTypeID(单据类型)**:通过`ConvertObjectParser`解析器,将固定值`QTYFD01_SYS`转换为目标格式。
- **FBillNo(单据编号)**:直接映射自源平台,无需额外处理。
- **FDATE(业务日期)**:使用模板变量`{{workflowMainTableInfo.sqrq}}`,从源平台获取业务日期。
- **FCONTACTUNITTYPE(往来单位类型)**:固定值设置为`BD_Empinfo`,表示员工。
- **FCONTACTUNIT(往来单位)**:通过`ConvertObjectParser`解析器,根据条件查询获取具体单位信息。
#### 子表明细信息处理
对于复杂的数据结构,如子表明细信息,需要特别处理。例如:
```json
{
...
{
"field": "FEntity",
"label": "明细信息",
...
"children": [
{
...
{
"field": "FCOSTID",
...
"value": "_findCollection find FNumber from a3c8a497-8be0-36b3-956c-94619b971636 where FName={{detail_0.fyxmzl}}"
},
...
}
]
}
}
```
这里,通过`_findCollection`函数,根据费用项目名称查找对应的编码,并使用`ConvertObjectParser`进行解析。
#### API请求示例
配置完成后,通过POST方法向金蝶云星空API发送请求。以下是一个完整的请求示例:
```json
{
...
{
...,
{
...
{
...,
{
...,
{
...,
{
...,
{
...,
{
...,
{
...,
{
...,
{
...,
{
...,
{
...
}
}
}
}
}
}
}
}
}
}
}
}
},
...
}
```
#### 实际操作步骤
1. **配置元数据**:根据上述元数据配置文件,在轻易云平台上完成相关配置。
2. **ETL过程执行**:启动ETL流程,确保每个字段正确映射和转换。
3. **发送API请求**:通过轻易云平台自动生成并发送POST请求至金蝶云星空API接口。
4. **监控与验证**:实时监控数据流动和处理状态,确保所有数据成功写入目标平台。
通过上述步骤,我们实现了从泛微系统到金蝶云星空的数据无缝对接。这不仅提高了业务透明度和效率,还确保了数据的一致性和准确性。
![金蝶与MES系统接口开发配置](https://pic.qeasy.cloud/T1.png~tplv-syqr462i7n-qeasy.image)