会计/单据引擎

会计引擎元素和单据引擎元素是对会计引擎、单据引擎的二次封装,主要提供执行会计/单据引擎,修改执行状态等功能

实例化会计/单据引擎

[22]:
from deepfos.element.accounting import AccountingEngines, BillEngines

# 实例化会计引擎
engines = AccountingEngines('zhy_acc092_test')

# 实例化单据引擎
# engines = BillEngines('zhy_acc092_test')

说明

在Deepfos SDK中,会计引擎和单据引擎的区别仅在于实例化时所用的元素类不同,它们在实例化后的属性和方法都是相同的。出于方便,后续内容均以会计引擎元素类为例进行说明。

需要注意的是,会计/单据引擎组件目前仅支持单主键主表的目标模型

执行会计/单据引擎

示例所用的会计引擎的部分配置如下图

7bf2eb1c24d64365ac5af9bdf292ea68

会计/单据引擎元素类的execute方法提供了通过程序主动执行会计/单据引擎的功能。

execute方法具有一个字典类型的参数filter_scope,该参数定义了执行时源对象的数据选择范围,其键值对分别表示执行时源数据的数据选择字段和对应范围

[8]:
engines.execute(filter_scope={"year": "2022", "period": "10"})

修改执行状态

会计/单据引擎元素类的update_status方法提供了通过程序修改数据执行状态的功能。

update_status方法具有两个参数keystatuskey表示目标模型中需要修改执行状态的业务主键字段的值,为列表类型,status表示需要修改成的执行状态,为字符串类型,failure表示失败,success表示成功,delete表示删除。参数key中不存在于主键映射表目标模型主表主键列的元素,会被自动忽略。

[9]:
engines.update_status(key=["A_2022_8_0046", "100001"], status='delete')

会计事件类型

实例化会计事件类型

[23]:
from deepfos.element.accounting import AccountingEventType

# 实例化会计事件类型

# 1. 根据元素编码 进行实例化
# eventType = AccountingEventType('zhy_0104_001')

# 2. 根据元素编码和路径 进行实例化
# eventType = AccountingEventType(element_name='zhy_0104_001',path="/zhy_test/event")

# 3. 根据元素编码和文件夹ID,进行实例化
eventType = AccountingEventType(element_name='zhy_0104_001',folder_id='DIR1b7e6f8b5bc3')

业务主键插入到会计事件表

会计/单据引擎元素类的insert_to_event_table方法提供了通过程序将业务主键插入到会计事件表的功能。

insert_to_event_table方法具有一个参数(object_id_list),表示需要插入到事件表的业务主键ID集合。

[20]:
# 1. 指定参数名 object_id_list,并传业务ID集合
#eventType.insert_to_event_table(object_id_list=["A00000002","A00000003"])

# 2. 不指定参数名,直接传业务ID集合
eventType.insert_to_event_table(["A00000004","A00000005"])