拓冰建站拓冰建站
首页 / 资讯中心 / 正文

SAP CO分配分摊实战:KSV1/KSU1循环、统计指标与BDC批导入

简介这份PDF聚焦SAP CO模块期末分配、分摊与重过帐的底层机制适合已具备成本中心会计基础、需要理清循环参数含义的财务顾问与ERP实施人员查阅。内容以分配(Distribution)与分摊(Assessment)的差异为切入点逐条辨析初级成本要素与次级成本要素的使用边界、原成本因素能否追溯等常见争议并重点拆解「重复的」标志带来的迭代发送效果发送方同时作为接收方时金额如何被完全贷出、仅留极少尾差以及不勾选该标志时保留自身份额的差异。文中还延伸到「累计」标志在资产类科目余额与业务范围分配中的用途并梳理发送值类型、接收方追踪因素、可调整份额、统计关键指标等段级参数的选择逻辑。压缩包内仅1个PDF文件约1.74MB篇幅紧凑、配图与实例对应清晰可作为参数对照与问题排查时的速查笔记。目前已有161人学习下载。1. 分配、分摊与重过帐从期末成本中心余额说起月底在 KSV1/KSU1 里跑完分配分摊回头用 S_ALR_87013611 看成本中心报表发现发送方还剩 0.01或者接收方冒出一个负数这种场面比循环本身更常见。SAP 里 Allocation 是统称Distribution 保留原初级成本要素Assessment 把费用打包进次级成本要素两条路都能把成本从发送方转到接收方。真正让结果跑偏的往往不是循环建得对不对而是分配循环段里的几个开关重复的迭代、累计、接收方追踪因素以及统计指标的数量更新逻辑。这份 2007 年的 PDF 用屠宰费、电话费、电费几个例子把迭代和累计讲透了下面按循环参数、统计指标、批导入和结果验证的顺序拆一遍。CO 月结、FICO 顾问和要写 BDC 批导入的 ABAP 都能直接抄。2. 分配循环的选型逻辑初级成本要素、次级成本要素与循环段参数2.1 Distribution 与 Assessment 的成本要素可追溯性Distribution 在中文系统里叫分配Assessment 叫分摊。两者都挂在成本中心会计的期末处理下KSV1 建分配循环KSU1 建分摊循环KSW1 做 CO 定期重过帐。很多项目把这三个事务码混着用结果月结时发现接收方成本中心看到的成本要素不是原来那一笔。分配的特点是接收方继续看到发送方原来的初级成本要素电话费还是电话费电费还是电费。分摊则允许把多个初级成本要素打包成一个次级成本要素接收方只看到这个次级成本要素比如办公费用原始的电话费、打印费、网络维护费在接收方不再单独体现。对比项分配 Distribution分摊 Assessment事务码KSV1/KSV2/KSV3KSU1/KSU2/KSU3成本要素初级成本要素原样转移可用次级成本要素打包可追溯性接收方看到原成本要素只看到分摊成本要素典型场景电话费、电费按统计指标分办公费用打包分摊循环层次循环头 段循环头 段选型时先问一句接收方成本中心需不需要知道这笔钱原来是什么。需要就用分配不需要或者想把几笔费用合并成一个管理口径就用分摊。利润中心那边同样有 3KE1 分摊循环和 4KE1 分配循环新总账里还有 FAGLGA31资产科目余额也能通过分配分到业务范围或利润中心这条路径在 ECC6 之后越来越常用。2.2 性能误区与循环段结构PDF 作者对“分配比分摊性能高”的说法很不客气。这个判断放在今天依然成立Distribution 和 Assessment 的底层都是按循环、按段、按接收方追踪因素算权数然后写 CO 凭证。性能差异不在名字而在循环段数量、接收方个数、追踪因素的计算复杂度和迭代次数。分摊多了一层次级成本要素写入但在现代服务器上这点写入量远不是瓶颈。真正拖慢月结的是几百个段、每个段几千个接收方再加上反复迭代。一个分配循环可以包含多个段每个段有自己的发送方规则和接收方规则。发送值可以是记账金额、固定金额、固定比率也可以选择实际值或计划值。计划费用同样能做分配分摊KP06 里录入的计划成本可以作为追踪因素这一点在按计划劳务费分配电费的例子里体现得很清楚。2.3 发送方值、接收方规则与可变部分类型发送方值页签决定发什么。记账金额取实际发生额固定金额取一个写死的数固定比率需要输入价格。实际值和计划值可以分别跑循环。发送方值比例允许只发一部分出去剩余留在发送方。接收方规则有四种常见选择可调整份额、固定金额、固定百分比、固定份额。可调整份额最灵活需要选可变部分类型和量度负方向跟踪因素。可变部分类型有十种常用第 5 种实际统计关键指标和第 6 种计划统计关键指标。量度负方向跟踪因素通常选 1 无刻度默认值最稳。遇到接收方追踪因素可能出现负数时要改成 3 绝对值或 4 负方向处理。DATA: lt_cosr TYPE TABLE OF cosr. SELECT kostl, stakz, gjahr, perbl, mbgbtr FROM cosr INTO TABLE DATA(lt_cosr) WHERE gjahr p_gjahr AND perbl BETWEEN p_perab AND p_perbi. LOOP AT lt_cosr ASSIGNING FIELD-SYMBOL(ls_cosr). WRITE: / ls_cosr-kostl, ls_cosr-stakz, ls_cosr-perbl, ls_cosr-mbgbtr. ENDLOOP.逻辑说明COSR 表存统计指标数量成本中心、统计指标、年度、期间和数量都在里面。参数说明p_gjahr 是会计年度p_perab 和 p_perbi 是期间范围。老系统找不到 FAGLSKF3 时用这段 Open SQL 捞统计数量最直接。注意 COSR 里固定值型统计指标会一次性铺到第 12 期捞数时按期间过滤别把未来期间的数量当成当期实际消耗。3. 迭代与累计重复标志、发送方余额和资产科目分配3.1 重复的迭代标志如何收敛发送方金额分配循环段里有一个“重复的”标志对应英文 Iterative。它解决的是发送方同时又是接收方的情况。PDF 里的屠宰费例子很直观成本中心 A 发生屠宰费 100 元接收方追踪因素用固定百分比A 自己 20%B 30%C 50%。如果不选“重复的”分配结果就是 A 20、B 30、C 50A 自己留下 20 元。如果选了“重复的”A 会先收到 20 元再把这 20 元按 30:50 分给 B 和 C下一轮 B 和 C 再分一部分回来直到收敛。最终 A 没有余额或只剩极小尾差B 拿到 37.50C 拿到 62.50。接收方固定百分比不选重复选重复A20%20.000.00B30%30.0037.50C50%50.0062.50计算逻辑是 B 和 C 按 30:50 消化 A 的 100 元A 自己反复接收又发出最终不保留余额。想留一部分金额在发送方就不要选“重复的”。迭代次数由系统控制尾差通常很小但接收方很多时尾差可能落在某一个接收方上月结后要习惯用 S_ALR_87013611 核对一遍。3.2 累计标志与 BS/PL 账户的分配差异“累计”标志决定分配时取当期发生额还是取累计余额。PL 账户是虚账户月结后基本结平累计余额意义不大。BS 账户是实账户原材料、固定资产这类科目有累计余额。ECC6 的新总账允许在 FI 中分配资产科目余额业务范围或利润中心需要出资产负债表时公用料暂时记在某个业务范围期末用分配把累计余额分出去。选了累计标志2007/04 的分配金额就是第 4 期间的累计余额而不是 4 月当月发生额。科目类型当月发生额当月余额累计余额累计标志的影响PL 费用科目有月结后结平通常为零影响小BS 资产科目有有逐月累积取累计余额分配制造费用有允许留余额季节性波动按预算或计划分配季节性生产企业的制造费用可能按全年预算或停工月度预算确定计划分配率制造费用允许留一定余额。这种场景和累计标志的分配逻辑有相似之处。PL 账户选累计要谨慎除非业务明确要求把累计发生额再分一次。3.3 数量字段在分配中的角色成本中心和成本要素主数据里可以维护数量字段。成本中心报表里能看到金额和数量并列成本要素也可以记录数量。数量在分配里的用途是作为追踪因素的替代口径。比如按实际消耗数量分配或者按计划数量分配。统计指标是更灵活的数量载体KK01 建统计指标KB31N 录实际数量追踪因素选实际统计关键指标分配时就把统计数量当成权数。DATA: lv_total TYPE p DECIMALS 2, lv_share TYPE p DECIMALS 4. LOOP AT lt_stat ASSIGNING FIELD-SYMBOL(ls_stat). lv_total lv_total ls_stat-mbgbtr. ENDLOOP. IF lv_total IS INITIAL. MESSAGE 所有接收方统计指标数量为0分配无法执行 TYPE E. ENDIF. LOOP AT lt_stat ASSIGNING ls_stat. lv_share ls_stat-mbgbtr / lv_total. WRITE: / ls_stat-kostl, ls_stat-stakz, lv_share. ENDLOOP.逻辑说明这段代码在跑 KSV1 之前手工验算统计指标权数。参数说明lt_stat 是从 COSR 或接口表取出的接收方统计数量mbgbtr 是数量lv_total 是所有接收方数量合计。如果合计为零SAP 找不到有效接收方分配不出金额这种情况在按实际成本做追踪因素时也会遇到接收方该成本要素恰好没有发生额权数为零费用留在发送方。4. 统计指标批导入KK01、KB31N 与固定值/总值更新逻辑4.1 统计指标主数据与实际数量过账统计指标是 SAP 分配分摊里最灵活的依据来源。KK01 建立统计指标可以指定固定值或总值。KB31N 输入统计指标实际数量KB33N 显示统计指标凭证。KB85、KB86 定义统计指标计划编制格式KP46、KP47 建立和显示成本中心统计指标计划。分配循环的可变部分类型选实际统计关键指标时系统去 COSR 表取 KB31N 录入的数量选计划统计关键指标时取 KP46/KP47 维护的计划数量。事务码用途说明KK01建立统计指标选择固定值或总值KB31N输入实际统计数量按成本中心或订单KB33N显示统计指标凭证核对录入了哪些行FAGLSKF3查询统计指标数量新系统常用COSR统计指标数量表老系统直接查表实际数量过账前要先定义屏幕格式把成本中心和订单字段放出来隐藏不需要的字段。屏幕格式在配置里维护业务交易选 RKS“输入统计指标”一般字段选上总数量否则数量字段不可输入。接受方字段同时选成本中心和订单初始屏幕选清单项目。屏幕格式建好后KB31N 初始屏幕可以选 ZFR1带出成本中心、订单、统计指标和数量四列。4.2 固定值型与总值型统计指标的更新规则固定值型和总值型的差别在更新期间和累加方式。固定值型输入后系统自动生成从输入期到当年 12 期的统计数量后面期间沿用同一个值直到下一次更改。某期多次更改最后一次输入覆盖前面的值不是累加。成本中心 Z02 在 5 月电话数量 10 部6 月没改6 月还是 10 部7 月 Z03 转 10 部电话给 Z01Z03 从 7 月到 12 月变成 10前面 5、6 月保留 20。固定值型可以输入 0撤掉电话时把 Z03 数量录成 0系统会报警告消息 BK 198可以用 OBA5 关掉。总值型输入后只更新当期不往后铺。同一期间多次输入数量累加即上次数量加本次输入数量本次输入可以为负但不能为 0。KB31N 输入 0 会报错误 BK 048OBA5 关不掉。发现某个成本中心的统计数量应该是 0可以先查 FAGLSKF3再输入一个负的调整数量。企业只在月末一次性导入且必定导入统计指标时固定值型和总值型结果一样有上百个成本中心和水电统计指标时固定值型模板更方便把所有成本中心列出来没发生费用的录 0每期套用模板。对比项固定值型总值型更新期间输入期到当年 12 期仅输入当期多次输入最后一次覆盖本次数量累加输入 0可以警告 BK 198不可以错误 BK 048适用场景电话数量、模板批量导入每周抄表、分次累计4.3 SHDB 录屏与 BDC 程序批量导入 KB31N统计指标一多手工 KB31N 不现实。常见做法是 SHDB 录屏生成 BDC 程序再把 Excel 组织成文本文件上传。第一步在 SHDB 里新建记录输入事务码 KB31N屏幕变式选 ZFR1输入一组成本中心、统计指标和数量保存后得到录屏。第二步把 Excel 另存为“文本文件制表符分割”注意删掉末尾多余的回车行。第三步在 SHDB 里用 ShiftF5 或菜单生成程序再把生成的代码按实际需求整理。KB31N 的行项目是 Table control 控件录屏时每输入一行都要回车系统只保留最新两行第一行的光标指针是 ELR1(01)第二行及以后是 ELR1(02)。成本中心字段 EL2、订单字段 EL3、统计指标字段 EL4、数量字段 ELR1。第一行用 (01) 指针后续行统一用 (02) 指针这是 BDC 能稳定导入的关键。FORM bdc_field TABLES p_bdc STRUCTURE bdcdcdata USING p_name p_value. CLEAR p_bdc. IF p_value IS NOT INITIAL. p_bdc-fnam p_name. p_bdc-fval p_value. APPEND p_bdc. ENDIF. ENDFORM. LOOP AT itab_tjzb ASSIGNING FIELD-SYMBOL(ls_tj). IF sy-tabix 1. lv_el2 EL2(01). lv_el3 EL3(01). lv_el4 EL4(01). lv_elr1 ELR1(01). ELSE. lv_el2 EL2(02). lv_el3 EL3(02). lv_el4 EL4(02). lv_elr1 ELR1(02). ENDIF. PERFORM bdc_field TABLES int_bdc: USING BDC_OKCODE /00, USING BDC_CURSOR lv_elr1, USING COHEADER-SEND_REC_REL p_pmgs, USING RK23F-STATUS L, USING lv_el2 ls_tj-skostl, USING lv_el3 ls_tj-saufnr, USING lv_el4 ls_tj-stagr, USING lv_elr1 ls_tj-mbgbtr. ENDLOOP. CALL TRANSACTION KB31N USING int_bdc MODE E UPDATE S MESSAGES INTO itab_msg.逻辑说明itab_tjzb 是上传后的内表字段 skostl 成本中心、saufnr 订单、stagr 统计指标、mbgbtr 数量。第一行指针用 (01)后续行用 (02)这是 Table control 录屏的固定规律。参数说明int_bdc 是 BDCDATA 内表p_pmgs 是屏幕变式 ZFR1MODE E 表示出错时停住UPDATE S 表示同步更新MESSAGES INTO itab_msg 把返回消息收进内表循环取出凭证号。同一行不能既填成本中心又填订单号成本中心和订单的统计指标值可以放在不同行一次性导入。5. 分配结果验证与异常处理FAGLSKF3、S_ALR_87013611 和 COSR 捞数分配分摊跑完验证比配置更耗时间。FAGLSKF3 查统计指标数量确认固定值型有没有铺到未来期间总值型有没有重复累加。S_ALR_87013611 看成本中心报表核对发送方余额和接收方追踪因素。KB33N 看统计指标凭证确认 KB31N 或 BDC 导入的凭证号。老系统没有 FAGLSKF3直接查 COSR 表。KANK 可以查 CO 业务交易和对应凭证编号分配、分摊、重过帐的凭证类型都在里面。检查点事务码/表看什么统计指标数量FAGLSKF3 / COSR期间、成本中心、数量接收方追踪因素S_ALR_87013611实际成本、统计指标权数统计指标凭证KB33N录入行和凭证号分配循环日志KSV1/KSU1发送方余额、尾差CO 业务交易KANK凭证编号与交易类型负值追踪因素是最容易出事的场景。按实际成本做可变部分类型某个接收方该成本要素是负数量度负方向跟踪因素选 1 无刻度会把负数放大成权数导致接收方分到异常金额。改成 3 绝对值负号被忽略按绝对额参与分配改成 4负值接收方直接出局金额全部分给正值接收方。选 3 还是 4 取决于业务愿不愿意让负值成本中心承担费用月结前最好用报表看一眼追踪因素列。SELECT kostl, stakz, perbl, mbgbtr FROM cosr INTO TABLE DATA(lt_abn) WHERE gjahr p_gjahr AND perbl p_perid AND mbgbtr 0. IF lines( lt_abn ) 0. LOOP AT lt_abn ASSIGNING FIELD-SYMBOL(ls_abn). WRITE: / 负值统计指标:, ls_abn-kostl, ls_abn-stakz, ls_abn-mbgbtr. ENDLOOP. ELSE. WRITE: / 当期无负值统计指标. ENDIF.逻辑说明这段代码在分配前筛查负值统计数量负值不一定错总值型允许输入负数做调整但负值会直接影响权数计算。参数说明p_gjahr 会计年度p_perid 期间mbgbtr 小于 0 的记录被列出。固定值型统计指标不建议用负数需要把某个成本中心数量调成 0 时先输入 0再检查是否触发 BK 198必要时用 OBA5 关闭警告。把负调整数量当成正常凭证录入再用 FAGLSKF3 核对比直接冲销统计指标凭证更稳。本文还有配套的精品资源点击获取
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门