AfterTargetGenerate事件驱动的数据处理工厂实现
轻易云数据集成平台数据处理工厂开发指南
本指南详细说明如何在轻易云数据集成平台中开发一个数据处理工厂,实现跨方案数据关联查询功能。该工厂将在目标数据生成后触发执行(AfterTargetGenerate事件),主要完成以下功能:
- 通过DataStorage组件实现跨方案数据查询
- 动态修改响应数据中的表单组件值
核心代码实现
<?php
use Domain\Datahub\Instance\Storage\DataStorage;
class AfterSourceInvoke
{
protected $response;
protected $adapter;
public function __construct(&$response, $adapter)
{
$this->response = &$response;
$this->adapter = $adapter;
}
public function run()
{
if ($this->response['errcode'] > 0) {
return;
}
$newItem = [];
foreach ($this->response['process_instance']['form_component_values'] as $key => $value) {
if ($value['name'] === '费用归属部门') {
$newItem = $value;
$newItem['name'] = '费用归属部门_关联';
$name = json_decode($value['ext_value'], true)['label'];
// 使用轻易云DataStorage组件进行跨方案查询
$DST = new DataStorage('替换为租户ID', '400f56e7-e846-35e5-9017-c28fd7303fb0');
$find = $DST->find(['content.FName' => ['$eq' => $name]]);
if ($find) {
$newItem['value'] = $find[0]['content']['FNumber'];
}
break;
}
}
if (isset($newItem['name'])) {
$this->response['process_instance']['form_component_values'][] = $newItem;
}
return;
}
}
关键配置说明
-
DataStorage参数配置:
- 第一个参数必须替换为实际的租户ID
- 第二个参数为方案ID(示例中为'400f56e7-e846-35e5-9017-c28fd7303fb0')
-
数据处理逻辑:
- 遍历表单组件值,查找"费用归属部门"字段
- 通过轻易云平台的数据存储组件查询关联数据
- 将查询结果添加到原始响应数据中
-
部署方式:
- 将该加工厂代码添加到方案的AfterTargetGenerate事件中
- 确保DataStorage组件已正确引入
轻易云平台优势体现
该实现充分利用了轻易云数据集成平台的以下特性:
- 跨系统数据关联:通过DataStorage组件轻松实现不同方案间的数据关联
- 事件驱动架构:基于AfterTargetGenerate事件触发数据处理
- 高性能数据处理:支持大规模数据的高效查询和转换
建议开发者在实际部署前,先在轻易云平台的测试环境中验证该加工厂的运行效果,确保数据处理逻辑符合预期。