对账引擎¶
对账引擎包括数据集和对账集两部分主要功能,针对不同部分,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_id
为 T20230423102835188
的对账任务
[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_ids
或cpr_data_ids
必须至少一个数据集有值才能进行操作
取消暂挂与未匹配¶
使用cancel_by_hand
方法手工取消暂挂的数据或者不参与匹配的数据。
[19]:
reconciliation_engine_ms_1.cancel_by_hand(
'T20230420135857904',
type=0,
base_data_ids=["08RQ5Z000002"],
)
[19]:
1
说明
base_data_ids
或cpr_data_ids
必须至少一个数据集有值才能进行操作
取消已匹配¶
使用cancel_matched
方法手工取消已匹配的数据集组。
取消指定匹配id的匹配组数据:
[21]:
reconciliation_engine_ms_1.cancel_matched(
'T20230420135857904',
match_ids=["M0000000M3"]
)
[21]:
1