会计/单据引擎¶
会计引擎元素和单据引擎元素是对会计引擎、单据引擎的二次封装,主要提供执行会计/单据引擎,修改执行状态等功能
实例化会计/单据引擎¶
[22]:
from deepfos.element.accounting import AccountingEngines, BillEngines
# 实例化会计引擎
engines = AccountingEngines('zhy_acc092_test')
# 实例化单据引擎
# engines = BillEngines('zhy_acc092_test')
说明
在Deepfos SDK中,会计引擎和单据引擎的区别仅在于实例化时所用的元素类不同,它们在实例化后的属性和方法都是相同的。出于方便,后续内容均以会计引擎元素类为例进行说明。
需要注意的是,会计/单据引擎组件目前仅支持单主键主表的目标模型。
执行会计/单据引擎¶
示例所用的会计引擎的部分配置如下图
会计/单据引擎元素类的execute
方法提供了通过程序主动执行会计/单据引擎的功能。
execute
方法具有一个字典类型的参数filter_scope
,该参数定义了执行时源对象的数据选择范围,其键值对分别表示执行时源数据的数据选择字段和对应范围
[8]:
engines.execute(filter_scope={"year": "2022", "period": "10"})
修改执行状态¶
会计/单据引擎元素类的update_status
方法提供了通过程序修改数据执行状态的功能。
update_status
方法具有两个参数key
和status
,key
表示目标模型中需要修改执行状态的业务主键字段的值,为列表类型,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"])