execute¶
- BillEngines.execute(filter_scope=None, callback=None, sync=False)¶
执行会计/单据引擎
- 参数
filter_scope (
Optional
[Dict
[str
,str
]]) – 执行参数,键值对分别表示执行时源数据的数据选择字段和对应范围callback (
Union
[Dict
,AccountingEnginesExecCallbackPythonDTO
,None
]) – 回调脚本配置信息,若为None,则引擎在结束后不会调用脚本,如果配置了回调, 则不论引擎是否执行成功,都将在结束后调用回调脚本sync (
bool
) – 调用执行接口的类型,同步(True)/异步(False),默认为异步,异步执行接口会 在收到执行请求时立刻响应,同步执行接口会等执行完成后才响应,并返回执行信息,如果 设置为同步,当数据量过大导致引擎执行时间过长时,可能因超出SDK的接口响应超时时间而报错
- 返回类型
- 返回
调用同步接口时返回执行信息(批次号和执行成功条数),调用异步接口时则返回None
示例
1.以自定义数据选取参数执行
engines = AccountingEngines('engines_example') # engines = BillEngines('engines_example') engines.execute(filter_scope={"year": "2022", "period": "10"})
2.以默认参数执行
engines.execute()
3.执行并在结束后调用回调脚本
callback = CallbackInfo( path="/Python", elementName="test_callback", serverName="python-server2-0", callbackParams={"key1":"value1", "key2":"value2"}, ) # callback = { # "path": "/Python", # "elementName": "test_callback", # "serverName": "python-server2-0", # "callbackParams": {"key1":"value1", "key2":"value2"}, # } engines.execute(callback=callback)
提示
filter_scope
参数中传入的键,若为会计引擎全局配置中已配置的字段,则在 执行时其值会覆盖配置字段的默认值,否则,该键值对会被忽略。filter_scope
参数中不存在而会计引擎全局配置中已配置的字段,在执行时会 取配置字段的默认值。filter_scope
参数可以不传,此时数据选择范围为会计引擎中配置的默认值。
注意
callback
可接受字典和CallbackInfo类两种参数,以CallbackInfo类为例,其在初始化时支持6个配置参数,如下表所示
参数
类型
说明
path
Optional[str]
调用元素所在路径,与folderId二选一
folderId
Optional[str]
调用元素所在文件夹ID,与path二选一
elementName
str
调用元素的元素名
elementType
Optional[str]
元素类型,默认None时指代PY,目前仅支持PY
serverName
Optional[str]
元素服务名,默认None时指代python-server2-0,目前仅支持python-server2-0
callbackParams
Optional[Dict]
传给回调脚本的额外参数
以示例3的回调参数为例,回调脚本接收到参数为
p2 = { "controlTableInfo": { # 状态控制表信息 "id": "0a43f4f1-b7b4-4d32-8b6a-c89b58a9b75c", "elementName": "accounting_control", "elementType": "DAT_MYSQL", "folderId": "DIRa020ede38a99", "serverName": None, "path": "\test\", "absoluteTag": False, "relativePath": None, "remark": None, "actualTableName": "tb001_accounting_control", }, "success": True, # 引擎是否执行成功 "key1": "value1", # 自定义参数 "key2": "value2", # 自定义参数 "batchNumber": "127559e5-de2a-42c2-95d9-1c84e1a6483b_20221129173222", # 批次号 }
自定义参数的名称不应当为controlTableInfo、success或batchNumber,以免和回调脚本传入的默认参数冲突