首页 理论教育 预算结构增强扩展使用——SAP基金管理模块全面解析

预算结构增强扩展使用——SAP基金管理模块全面解析

时间:2023-08-03 理论教育 版权反馈
【摘要】:图3.2.3-2其中预留了用户自定义扩展结构CI_FMBS_S_BSAC_ADDRESS_SUPPL,因此只需要把前面分析的三个字段扩展进去并激活,如图3.2.3-3所示。图3.2.3-52.预算地址派生规则中用到的HELP_FIELDS字段扩展在创建派生策略规则过程中,如果使用了比较复杂的推导规则,例如后一步是建立在前几步结果的基础上时,可能会出现辅助用于推导的HELP_FILEDs字段不够用,这个时候,SAP系统提供了可以扩展用户定义的HELP_FIELDs。图3.2.3-6完成后,在预算派生地址规则的维护界面中,可以看到用户自定义扩展的字段,如图3.2.3-7所示。

预算结构增强扩展使用——SAP基金管理模块全面解析

预算结构提供了预算地址、记账地址、索引预算地址的生成功能,在实际使用中可能存在预算地址、记账地址的特殊检查,或预算地址派生策略规则功能不满足需求的时候,可以使用预算结构的增强来达到满足用户需求的目标。

1.预算地址派生规则的BADI增强

系统提供了BADI:FMBS_VALID_ADDRESS供用户使用进行增强。它提供以下功能:

978-7-111-59891-6-Chapter03-193.jpgFMBS_VALID_ADDRESS~VALIDATE_BO:增强预算地址的有效性检查,用户可以扩展在方法中加入自己的逻辑代码来实现。

978-7-111-59891-6-Chapter03-194.jpgFMBS_VALID_ADDRESS~VALIDATE_PO:增强记账地址的有效性检查,用户可以扩展在方法中加入自己的逻辑代码来实现。

978-7-111-59891-6-Chapter03-195.jpgFMBS_VALID_ADDRESS~FILL_ADDRESS_SUPPL:增强预算地址派生策略规则的数据源填写,用户可以写入自己的逻辑代码来实现。

比如前面讲到的派生策略规则的例子中,提出了基金中心和承诺项目都是不定深度的层次结构,如何完成推导呢?可以按照如下方法来进行:

(1)分析:要满足基金中心、承诺项目不定深度层次结构情况下其上级的预算成功存在,首先需要一个成功找到预算的标识,其次是返回预算存在的上级的承诺项目和基金中心值。那么最少给出预算源结构的三个字段:

ZZB_FUNDSCTR 上层基金中心

ZZB_CMMTITEM 上层承诺项目

ZZB_CHECK 预算存在标识(成功为X)

在该方法的CHANGING参数中,C_S_ADDRESS_SUPPL的关联类型为FMBS_S_BSAC_ADDRESS_SUPPL,如图3.2.3-1所示。

978-7-111-59891-6-Chapter03-196.jpg

图3.2.3-1

在图3.2.3-1中,双击FMBS_S_BSAC_ADDRESS_SUPPL,显示如图3.2.3-2所示。

978-7-111-59891-6-Chapter03-197.jpg

图3.2.3-2

其中预留了用户自定义扩展结构CI_FMBS_S_BSAC_ADDRESS_SUPPL,因此只需要把前面分析的三个字段扩展进去并激活,如图3.2.3-3所示。

978-7-111-59891-6-Chapter03-198.jpg

图3.2.3-3

(2)实施该BADI(TCODE:SE19来实施),为FILL_ADDRESS_SUPPL写入自己的代码逻辑。基本逻辑如下:

第一步:根据记账地址源中的基金中心和承诺项目数据调用函数FMHIE_GET_BUDGET_ATTRIBUTES取预算地址等于记账地址是否有预算,取成功则标识ZZB_CHECK=X,ZZB_FUNDSCTR为原记账地址的基金中心,ZZB_CMMTITEM为原地址中的承诺项目。(www.xing528.com)

第二步:如果第一步不成功,则调用函数FMDT_READ_HIER_CMMT_ITEM取上一级承诺项目,再用函数FMHIE_GET_BUDGET_ATTRIBUTES取上一级承诺项目(其他账户分配要素不变)的预算,不成功则循环这一过程,直到根节点承诺项目。成功则标识ZZB_CHECK=X,ZZB_FUNDSCTR为当前的基金中心,ZZB_CMMTITEM为上一级承诺项目。

第三步:如果第二步不成功,则调用函数FMDT_READ_HIER_FUNDS_CTR取基金中心的上一级,然后以上一级基金中心为当前基金中心重复第二步过程,不成功则循环这一过程,直到根节点基金中心。成功则标识ZZB_CHECK=X,ZZB_FUNDSCTR为上一级基金中心,ZZB_CMMTITEM为第二步过程中的承诺项目。

第四步:如果前三步都不成功,则标识ZZB_CHECK为空,ZZB_FUNDSCTR为空,ZZB_CMMTITEM为空,代表没能取得基金中心、承诺项目层次结构向上的预算存在。

详细参考伪代码:参考本书附录11.2中的伪代码。

完成上述开发后,就可以在预算地址的派生策略规则里进行使用了,例如为基金中心创建分配步骤定义如下:

选项卡“条件”的配置如图3.2.3-4所示。

978-7-111-59891-6-Chapter03-199.jpg

图3.2.3-4

选项卡“定义”的配置如图3.2.3-5所示。

建好基金中心的分配步骤规则后,再为承诺项目再创建一个分配规则,与基金中心的类似。

978-7-111-59891-6-Chapter03-200.jpg

图3.2.3-5

2.预算地址派生规则中用到的HELP_FIELDS字段扩展

在创建派生策略规则过程中,如果使用了比较复杂的推导规则,例如后一步是建立在前几步结果的基础上时,可能会出现辅助用于推导的HELP_FILEDs字段不够用,这个时候,SAP系统提供了可以扩展用户定义的HELP_FIELDs。预算地址派生用到的HELP_FIELDS结构为FMBS_S_BSAC_HELP_FIELDS,它预留了给用户扩展的结构CI_FMBS_S_BSAC_HELP_FIELDS,用户只需扩展定义并激活它即可,如图3.2.3-6所示。

978-7-111-59891-6-Chapter03-201.jpg

图3.2.3-6

完成后,在预算派生地址规则的维护界面中,可以看到用户自定义扩展的字段,如图3.2.3-7所示。

978-7-111-59891-6-Chapter03-202.jpg

图3.2.3-7

读者可以思考一下,能不能在推导规则中使用用户自己定义开发的函数,类似使用SAP提供的标准函数?

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈