ABAP 月末费用重新分摊

ABAP 月末费用重新分摊

一、需求概述:根据KSV3 / KSU3配置的发送方对应的会计凭证金额分摊至接收方所维护的订单

二、程序设计:

1. 查询未锁定的分配周期段(表T811S)

2. 对于每个分配周期段,查询对应的发送方成本中心和成本要素(表T811K),用于后面查询会计凭证的条件。

如果维护的是组,可能还有子集,所以需要不断循环找到所有子集(表SETNODE),然后查询所有集维护的具体单值(表SETLEAF)。

3. 根据2得出的条件查询需分摊的会计凭证行项目

4. 查询接收方规则

(1) 如果是按照固定比例分摊(T811S-RRULE = '3'),则查询接收方固定比例(表T811F)

(2) 如果是按照可调整份额分摊(T811S-RRULE = '1'),查询接收方的加权因素(表T811F),需注意默认值是100,如果是默认值表里无记录,只有修改了值表里才有记录。

参照TCODE:S_ALR_87012993 查询接收方订单指定统计指标的实际值(表COEPR),并计算每个订单所占比例

5. 分摊金额,需注意尾差问题,此处是将尾差放到最后一行

6. 检查会计凭证(BAPI:BAPI_ACC_DOCUMENT_CHECK)或者生成会计凭证(BAPI:BAPI_ACC_DOCUMENT_POST),需留意单张凭证不能超过999行

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SAP BW系统中,转换例程是用于转换数据的自定义ABAP代码。转换例程可以用于实现各种数据转换需求,例如数据分摊。 下面是一个简单的数据分摊例子,演示如何在转换例程中实现数据分摊。 假设您有一个数据源,其中包含销售数据和销售成本数据。您希望根据销售数据分摊销售成本数据。您可以使用以下步骤来实现此目标: 1. 在SAP BW中创建一个转换,并将销售数据和销售成本数据源添加到转换中。 2. 在转换中创建一个数据包,并将销售数据和销售成本数据源映射到该数据包中。 3. 在数据包中创建一个转换例程,并在该例程中添加以下代码: ``` DATA: lt_sales TYPE TABLE OF zsales_data, ls_sales TYPE zsales_data, lt_costs TYPE TABLE OF zcost_data, ls_costs TYPE zcost_data, lv_total_sales TYPE f, lv_cost_share TYPE f. " 从销售数据源中选择销售数据 SELECT * FROM zsales_data INTO TABLE lt_sales. " 从成本数据源中选择成本数据 SELECT * FROM zcost_data INTO TABLE lt_costs. " 计算总销售额 LOOP AT lt_sales INTO ls_sales. lv_total_sales = lv_total_sales + ls_sales-sales_amount. ENDLOOP. " 分摊成本数据 LOOP AT lt_sales INTO ls_sales. lv_cost_share = ls_sales-sales_amount / lv_total_sales. LOOP AT lt_costs INTO ls_costs WHERE product_id = ls_sales-product_id. ls_costs-cost_amount = ls_costs-cost_amount * lv_cost_share. MODIFY lt_costs FROM ls_costs INDEX sy-tabix. ENDLOOP. ENDLOOP. " 将更新后的成本数据写回到转换中 CLEAR: lt_costs. SELECT * FROM zcost_data INTO TABLE lt_costs. ``` 在此转换例程中,我们首先从销售数据源和成本数据源中选择数据,并将其存储在内部表中。然后我们计算总销售额,并使用循环遍历销售数据,以便计算每个产品的成本分摊比例。最后,我们在内部表中更新成本数据,并将其写回到转换中。 请注意,上述代码仅供参考,并且可能需要根据您的具体需求进行修改。此外,您还需要确保您的转换例程正确地映射到数据包中,并且您已正确设置源系统连接和目标系统连接。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值