**01**
**问题
**
Oracle eBS中如何让eBTax根据销售订单类型确定税率?
**02**
**答案
**
Oracle
eBTax本身支持基于4P(Place/Party/Product/Processes)进行相关税则的配置推导。在实务操作中已经可以满足大部分税率推导的配置。但是Oracle
eBTax作为一个独立的税务模块,支持税则使用的4P相关的属性均需要其余模块对相关属性进行传值支持,涉及到OM/AR/PO/AP等模块。
在项目实际实践中,会发现一些例外场景,虽然依旧基于基础4P进行税则推导,但是推导所需属性并未预制在税务模块的决定因素集中,比如采购类别,销售订单类型,客户主数据上的DFF。从模块功能划分的角度,这些属性传递应该由源头模块进行传值,但是考虑到Oracle
eBS系统实施方案的特性以及各个模块依旧共享数据库的情况,可能会出现使用其他属性的需求。eBTax模块预留了一些属性字段,供用户通过开发定制的方式获取额外的计税属性。这些属性包括文本字段,日期字段,数值字段。我们可以在税决定因素集中选中这些需定制的计税属性。
如何去定制这些属性呢?首先我们要了解各个模块和Oracle eBTax的交互方式,交互方式见下图:
那核心也就是在将计税属性填充至临时表时,如何将我们所需的字段也一并传递。
Oracle eBTax提供了拓展的Hook程序包来支撑这一需求。
首先,需要在配置责任人的事件类型上启用拓展税的属性:
接下来,则需要修改Hook包的函数,
ZX_TAX_PARAM_EXTENSIBILITY_PKG.DERIVE_EXTENSIBLE_PARAMS
在函数中针对不同的事件类型进行不同的逻辑处理,比如可以针对销售订单/AR
发票的事件类型,根据发票行获取对应的销售订单类型放入Char1中,然后在决定因素集中使用Char_Attribute1用于后续的税则推导。
实施中需要注意,由于销售订单没有单独的事件类型,销售订单会沿用应收发票的事件类型的配置责任人选项的定义,但是单据关联关系沿用销售订单行关联的逻辑。
了解到这个拓展功能后,Oracle eBTax模块在项目实施上应该的问题应该基本上都可以通过标准功能及自定义字段的属性进行方案实现。
回看Oracle
eBTax模块本身,包含了足够多的业务抽象且提供了灵活的定制化属性用于税则推导。从模块功能设计角度,eBTax本身是相当强大的。希望大家在项目上都能有效利用eBTax的计税功能实现客户自动计税相关功能。
参考MOS : R12: EBTax: eBusiness Tax Extensible Parameters Feature and Its Usage
(Doc ID 1992106.1)
END作者|杜张雄
审核|陆 觉
编辑|王 锐