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的接口响应超时时间而报错

返回类型

Optional[DataDTO]

返回

调用同步接口时返回执行信息(批次号和执行成功条数),调用异步接口时则返回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,以免和回调脚本传入的默认参数冲突