对账引擎

对账引擎包括数据集和对账集两部分主要功能,针对不同部分,SDK对其中的常用接口进行了二次封装

数据集

对账引擎-数据集元素是对对账引擎数据集的二次封装,提供比底层API更加符合使用习惯的函数,主要是执行数据集抽取,批次确认等操作。

实例化数据集

可以根据元素基本信息,进行对账引擎—数据集实例化

例如如下代码为使用元素编码进行实例化:

[2]:
from deepfos.element.reconciliation import ReconciliationEngine

reconciliation_engine = ReconciliationEngine('ds_bank')

抽取业务数据

使用extract_data方法将业务数据抽取到dsd表。

执行数据抽取,执行参数`day=‘day01’

[3]:
reconciliation_engine.extract_data(
    param=[{'code':'day','defaultValue':'day01',"valueType":1}]
)
[3]:
307

执行数据抽取,执行参数day='day01',不自动清理数据且自动确认数据集批次

[4]:
reconciliation_engine.extract_data(
    param=[{'code': 'day', 'defaultValue': 'day01', "valueType": 1}],
    cleanup=False,
    auto_confirm=True
)
[4]:
308

确认数据集批次

使用confirm方法确认数据集批次

[6]:
reconciliation_engine.confirm('D20230425153039510', 'D20230425152223770')
[6]:
{'code': 0}

取消确认数据集批次

使用cancel方法取消确认数据集批次

[7]:
reconciliation_engine.cancel('D20230425153039510', 'D20230425152223770')
[7]:
{'code': 0}

删除数据集批次

使用delete方法删除指定数据集批次

[8]:
reconciliation_engine.delete('D20230425153039510', 'D20230425152223770')
[8]:
{'code': 0}

对账集

对账引擎-对账集元素是对账引擎对账集的二次封装,提供比底层API更加符合使用习惯的函数,主要为执行对账集执行,任务操作,平账等功能。

实例化对账集

可以根据元素基本信息,进行对账引擎—数据集实例化

例如如下代码为使用元素编码进行实例化:

[9]:
from deepfos.element.reconciliation import ReconciliationMsEngine

reconciliation_engine_ms_1 = ReconciliationMsEngine('ms_1')
reconciliation_engine_ms_3 = ReconciliationMsEngine('ms_3')

指定参数执行对账

使用execute方法分块或按指定参数创建&执行对账任务

创建并且执行POV法人体为S001的对账任务:

[10]:
reconciliation_engine_ms_3.execute(pov={'entity': "S001"})
[10]:
309

创建对账任务

使用create_task方法创建对账任务

创建POV法人体为S001,对账任务名为“20230501”的对账任务:

[11]:
reconciliation_engine_ms_3.create_task(
    pov={'entity': "S001"},
    auto_run=False,
    task_name="20230503"
)
[11]:
1

仅执行对账

使用exec_task方法执行对账任务

执行task_idT20230423102835188 的对账任务

[12]:
reconciliation_engine_ms_3.exec_task('T20230424114524465')
[12]:
310

关闭对账任务

使用close_task关闭已开启的对账任务

[13]:
reconciliation_engine_ms_3.close_task("T20230424114524465")
[13]:
{'code': 0}

打开对账任务

使用open_task打开已关闭的对账任务

[14]:
reconciliation_engine_ms_3.open_task("T20230424114524465")
[14]:
{'code': 0}

删除对账任务

使用delete_task删除对账任务

[15]:
reconciliation_engine_ms_3.delete_task('T20230424114524465')
[15]:
{'code': 0}

标记未匹配数据

使用mark_by_hand方法标记未匹配数据为手工匹配、暂挂、不参与匹配等状态

[17]:
reconciliation_engine_ms_1.mark_by_hand(
    base_data_ids=["08RQ5Z000002"],
    cpr_data_ids=["08RZ45000004"],
    task_id='T20230420135857904',
    type=6,
    reason='timing_difference',
    description='说明'
)
[17]:
True

说明

base_data_idscpr_data_ids必须至少一个数据集有值才能进行操作

取消暂挂与未匹配

使用cancel_by_hand方法手工取消暂挂的数据或者不参与匹配的数据。

[19]:
reconciliation_engine_ms_1.cancel_by_hand(
    'T20230420135857904',
    type=0,
    base_data_ids=["08RQ5Z000002"],
)
[19]:
1

说明

base_data_idscpr_data_ids必须至少一个数据集有值才能进行操作

取消已匹配

使用cancel_matched方法手工取消已匹配的数据集组。

取消指定匹配id的匹配组数据:

[21]:
reconciliation_engine_ms_1.cancel_matched(
    'T20230420135857904',
    match_ids=["M0000000M3"]
)
[21]:
1