预算控制_业务单据如何预占负数?
1 业务场景
上游业务发生时占用预算,下游的业务发生时需要按照最新业务重新占用预算,若上下游业务单据之间没有详细的关联信息,仅知道需要下游业务发生时冲回上游哪些费用的多少金额;例如:上级合同已经占用预算,合同分摊时需要按照新分摊的合同重新占用预算,合同和合同分摊单没有上下游BOTP关系,无法释放上游合同占用预算,下游合同分摊单也没有上游上游合同的分录信息,仅依据补充协议知道需要冲回上游多少占用,且不能全部冲回所有金额。
2 解决方案
2.1 解决方案总述
下游单据扣减预算时,同时上游单据扣减负数的预算。
2.2 关键操作
2.2.1 前提条件
配置除控制过程方案以外的所有控制功能配置。
2.2.2 操作步骤
2.2.2.1 调用负数占用微服务接口传入单据对象
·步骤1: 调用微服务接口,传入单据对象。
DispatchServiceHelper.invokeBizService();
参数类型:
参数名 | 必选 | 类型 | 说明 |
cloudId | 是 | String | 服务所属云,预算接口固定"epm" |
appId | 是 | String | 服务所属应用,预算接口固定"eb" |
serviceName | 是 | String | 服务名,预算控制的接口固定"BgControlService" |
methodName | 是 | String | 调用方法名,传"negativeBudget" |
bizObj | 是 | DynamicObject | 单据对象,通过单据元数据查询出来的单据对象,包含单据所有字段 |
operationKey | 是 | String | 单据操作编码,因该接口是特殊操作(参见下文) |
请求方式示例:DynamicObjec dynamicObject=BusinessDataServiceHelper.load(billId,"er_dailyreimbursebill");
String jsonStr = DispatchServiceHelper.invokeBizService("epm","eb", "BgControlService", " negativeBudget ", bizObj,"submit");
·步骤2: 返回正常扣减成功的结果。
说明:在单据数据未存储后台数据库时只能使用此接口,通过单据元数据查询出来的单据对象,包含单据所有字段。此接口可使用于所有场景。
2.2.2.2调用负数占用微服务接口传入单据ID
·步骤1: 调用微服务接口,传入单据ID。
DispatchServiceHelper.invokeBizService();
参数类型:
参数名 | 必选 | 类型 | 说明 |
cloudId | 是 | String | 服务所属云,预算接口固定"epm" |
appId | 是 | String | 服务所属应用,预算接口固定"eb" |
serviceName | 是 | String | 服务名,预算控制的接口固定"BgControlService" |
methodName | 是 | String | 调用方法名,传"negativeBudget" |
entityNumber | 是 | String | 单据类型编码如:费用报销单er_dailyreimbursebill |
bizId | 是 | Long | 单据ID |
operationKey | 是 | String | 单据操作编码,比如submit |
请求方式示例:String jsonStr = DispatchServiceHelper.invokeBizService("epm","eb", "BgControlService", " negativeBudget ", entityNumber, bizId ,"submit");
·步骤2: 返回正常扣减成功的结果。
说明:此接口适用于单据的数据已经在后台数据库中存储。
3 注意事项
该接口只支持占用,如果根据接口的操作获取的是执行,则抛异常“当前接口参数不支持预算执行操作。”(错误码:err_negative_execute)。
使用此接口占用负数预算后,允许同一单据正常执行预算,执行时需要将占用的预算释放,执行时也需要校验预算余额是否充足。
在开启多次扣减参数后,同一单据支持使用此接口占用负数预算后,再正常二次占用预算,再次使用接口占用复数预算。
当前单据如果是使用此接口扣减的负数预算,本单据的控制记录不支持下游单据在扣减负数对本数据冲销或冲减;也不支持扣减负数后,冲回上游正占用数。(负数占用不与上下游单据联动)。若存在多次占用的场景,则需要看最后一次的扣减记录是否存在负数扣减的场景,若最后一次的扣减记录时负数扣减的场景,则不允许被下游冲销。若存在即占用又执行的场景,在执行时,单据仍存在负数的扣减记录,执行也不会对上游进行冲销。
该功能,可能会造成预算余额被放大,谨慎使用。
4 相关文档(可选)
预算控制_业务单据如何预占负数?
本文2024-09-22 23:07:37发表“云星瀚知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-xinghan-131032.html