十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

SAP FICO双层账与集成过账:FI/CO、MM/SD/AA月结排错

SAP FICO双层账与集成过账:FI/CO、MM/SD/AA月结排错 简介这份 SAP FICO 模块基本原理培训课件面向 SAP 初学者、企业财务与 IT 从业者以及准备入门财务顾问的读者用于快速建立财务与管理会计的整体框架。内容围绕 FI 与 CO 两条主线展开涵盖总分类账、应收应付、固定资产等财务会计要点以及成本中心、产品成本、获利分析等管理会计场景并梳理集团、会计科目表、公司代码、业务部门、成本控制范围、利润中心等组织单位之间的对应关系。课件还通过销售订单、采购收货、发票校验、付款与折旧等流程说明 FICO 与 SD、MM、HR 的集成记账逻辑并涉及凭证输入、特别总账业务、记账期间、税码与自动记账、报表输出等基础操作。资源包为单个 pptx 文件约 3.14MB共 1 个文件结构紧凑适合集中阅读。目前已有 542 人学习可作为培训讲义或自学提纲帮助读者在短时间内把握 FICO 核心概念与模块间联系。1. SAP 的 FICO 不只是财务的账它是法定账加成本账的双层结构第一次翻开SAP系统FICO模块基本原理培训这类材料很多人会先入为主地把它当成财务岗的内部课件翻两页就放下了。但只要在项目里接过一次集成需求就会发现能做 FICO 的人真正稀缺MM 的收货落进哪个存货科目、SD 开票怎么变成收入凭证、内部订单归集的成本最后结到哪张资产上这些问题光懂业务说不清楚光懂 ABAP 也说不清楚。FICO 在 SAP 里不是一个记账模块而是 FI 财务会计和 CO 管理会计两层FI 负责对外的法定账CO 负责对内的成本账两层的原始数据在 S/4HANA 里已经同源到一张通用日记账表。这篇按四条线走FI 的账套骨架、CO 的成本流转、两个模块跟后勤的集成点以及结账期的导表与排错。2. FI 的账套骨架公司代码、科目表和凭证类型怎么串起来2.1 公司代码与五大变式绑定了科目的全部行为FI 不是上手就建科目。它先搭组织架构再把架构和几个变式绑在一起科目才有确定的行为。新手最容易踩的坑是两个公司代码用了同一套科目表但科目表现不一样原因往往不在科目本身而在公司代码层挂的变式不同。组织元素配置事务码作用范围典型取值Client集团SCC4全集团100Company Code公司代码OX02独立法人1000Business Area业务范围OX03跨公司分部0001Chart of Accounts科目表OB13科目表层INTFiscal Year Variant会计年度变式OB29期间定义K412 期 4 个特殊期Posting Period Variant过账期间变式OBBO开关账控制0001Field Status Variant字段状态变式OBC4凭证字段控制0001这几个变式通过公司代码全局参数串起来总入口是 OBY6。任何一个变式改错表现出来的都是科目怎么跟你以前看到的不一样所以排错第一步永远是先把这张表的值捞出来比对。 读取公司代码全局参数确认变式绑定是否正确 DATA: ls_global TYPE t001, lv_bukrs TYPE bukrs VALUE 1000. SELECT SINGLE * FROM t001 INTO ls_global WHERE bukrs lv_bukrs. IF sy-subrc 0. WRITE: / 公司代码:, ls_global-bukrs, / 科目表:, ls_global-ktopl, / 会计年度变式:, ls_global-periv, / 过账期间变式:, ls_global-oppvar, / 字段状态变式:, ls_global-fstvar. ENDIF.逻辑说明T001 是公司代码主表字段直接反映该公司的关键变式。写接口前、或者排查同一科目在不同公司行为不一致时先比这张表。参数说明KTOPL 决定该公司能用哪些科目PERIV 决定会计年度是 12 期还是 13 期OPPVAR 控制开关账FSTVAR 控制凭证录入时哪些字段必输、哪些可选、哪些隐藏。这四个值不一致后面的现象一定不同。2.2 总账科目主数据与科目组的字段控制总账科目分三层存储SKA1 存科目表层信息SKB1 存公司代码层信息SKAT 存多语言描述。用 FS00 维护时会看到科目表和公司代码两个页签本质就是往这两张表写。科目组OBD4是这里最关键的开关它同时决定了三件事科目编号落在哪个号段、创建时哪些字段必输、以及科目在报表里的归类方式。科目组示意编号区间科目性质典型控制现金100000-199999资产负债表科目强制要求货币银行200000-299999资产负债表科目银行标识联动应付往来300000-399999往来科目强制要求供应商字段收入600000-699999损益科目强制要求成本要素费用660000-669999损益科目允许带成本中心注意最后一行只有费用类科目才允许在凭证行上挂成本中心、内部订单这类 CO 对象收入类科目要挂的是获利段或销售订单。这个差别决定了 CO 能不能从 FI 侧接收到成本配错科目组业务侧的集成过账会直接被系统拦下来。2.3 一张 FI 凭证的搭积木结构一张 FI 凭证由抬头和行项目组成物理上落在两张核心表BKPF 存抬头BSEG 存行项目。抬头里有公司代码、凭证号、凭证类型、过账日期、货币这些字段行项目里有科目、借贷标识、金额、以及可选的成本中心、分配、参考凭证。凭证类型OBA7控制凭证号的号段和字段状态常见的有 SA 总账、KR 供应商发票、KZ 供应商付款、DR 客户发票、DZ 客户收款。表内容关键字段BKPF凭证抬头BUKRS、BELNR、BLART、BUDAT、WAERSBSEG凭证行项目BUZEI、HKONT、SHKZG、DMBTR、KOSTLBSIS总账科目未清/已清索引报余额用BSID / BSIK客户 / 供应商未清项清账用写集成接口往总账过账时不建议直接 INSERT 这两张表标准做法是调 BAPI_ACC_DOCUMENT_POST让系统走完整的校验、编号和更新逻辑。DATA: ls_header TYPE bapiache09, lt_gl TYPE TABLE OF bapiacgl09, lt_amount TYPE TABLE OF bapiaccr09, lt_return TYPE TABLE OF bapiret2. ls_header-username sy-uname. ls_header-header_txt 培训示例凭证. ls_header-comp_code 1000. ls_header-doc_type SA. ls_header-pstng_date sy-datum. ls_header-doc_date sy-datum. 借管理费用 1000带成本中心 APPEND INITIAL LINE TO lt_gl ASSIGNING FIELD-SYMBOL(gl). gl-itemno_acc 1. gl-gl_account 66020001. gl-comp_code 1000. gl-costcenter CC1000. APPEND INITIAL LINE TO lt_amount ASSIGNING FIELD-SYMBOL(amt). amt-itemno_acc 1. amt-currency CNY. amt-amt_doccur 1000.00. 正数为借方 贷银行存款 1000 APPEND INITIAL LINE TO lt_gl ASSIGNING FIELD-SYMBOL(gl2). gl2-itemno_acc 2. gl2-gl_account 20020100. gl2-comp_code 1000. APPEND INITIAL LINE TO lt_amount ASSIGNING FIELD-SYMBOL(amt2). amt2-itemno_acc 2. amt2-currency CNY. amt2-amt_doccur -1000.00. 负数为贷方 CALL FUNCTION BAPI_ACC_DOCUMENT_POST EXPORTING documentheader ls_header TABLES accountgl lt_gl currencyamount lt_amount return lt_return. READ TABLE lt_return TRANSPORTING NO FIELDS WITH KEY type E. IF sy-subrc 0. COMMIT WORK AND WAIT. ELSE. CALL FUNCTION BAPI_TRANSACTION_ROLLBACK. ENDIF.逻辑说明BAPI 用抬头、GL 行、金额行三张内表拼凭证借贷是否平衡由系统校验不平会返回 E 类型消息。成本中心这类 CO 对象挂在 GL 行上由它把 FI 成本带到 CO 侧。参数说明DOC_TYPE 决定号段和字段状态换成 KR 就得带上供应商PSTNG_DATE 必须落在已打开的过账期间内否则报期间关闭AMT_DOCCUR 是凭证货币金额正负号区分借贷。出错时先读 RETURN 表里每行的 TYPE、ID、NUMBER 和 MESSAGE比对着 OBA7、OBC4 的配置看基本能定位到是字段缺失还是期间问题。3. CO 的成本流转成本要素、成本中心与结算3.1 初级成本要素和次级成本要素的边界CO 里记账的科目叫成本要素分两大类。初级成本要素类别 01在创建时直接对应到一个 FI 损益科目一笔费用过账到 FI 的同时就自动在 CO 侧生成成本要素行不需要额外动作。次级成本要素类别 21、42、43 等只存在于 CO 内部用的是分配、分摊、评估、内部作业这些手段不产生 FI 凭证。KA01 建初级KA06 建次级。类别名称是否对应 FI 科目主要用途01初级成本要素是接收外部费用11收入要素是收入归集21次级分配否成本中心间转移42次级评估否按价格重估43次级内部作业否工时/机时结算90统计要素否只统计不过账这里有个反直觉的结论成本中心之间分摊看起来像转账其实用的往往是次级成本要素FI 侧一分钱都没动只有 CO 报表里两边的数字变了。想验证有没有动 FI去 ACDOCA 里筛 ledger 和科目即可。3.2 成本中心的分配分摊循环KSU5 与 KSV5成本中心用 KS01 建挂到标准层级OKEON上模型基本是采购中心→行政部门→生产车间→产品这条链。把上游成本推给下游用 KSU5 做分配、KSV5 做分摊。两者的区别在接收方的取值方式分配按固定的追踪因素比例推分摊可以按统计指标的百分比或逆序推算。KSU5 屏幕字段含义建议循环已定义的分配循环一次只跑一个循环便于定位期间 / 会计年度执行范围月末结账按当期测试运行只模拟不更新首次必勾详细清单输出明细行勾选便于核数实际 / 计划 / 承诺版本实际成本选 COC提示跑 KSU5 之前先跑一次测试运行并勾详细清单把发送方余额和接收方得到的金额对一遍。上生产之前不模拟跑出问题只能冲销麻烦得多。循环本身用 KSU1 维护头部定义发送方和接收方段里定义追踪因素。追踪因素可以是统计指标KB31N 录入的统计值、作业量或固定百分比。循环一旦被引用改发送方会导致历史期间的数据对不上所以改循环要连带考虑未结期间。3.3 KO88 结算与 S/4HANA 里直接查通用日记账内部订单和项目归集的成本最后要按结算规则COBRB 表结算到接收方——成本中心、资产、总账科目都有可能。执行结算是 KO88结果分析是 KO8G批量结算是 KO8G 或 CJ8G。热词里频繁出现的sap ko88 增强多数场景是要在结算前后做校验订单还有未清采购、结算金额为 0、或者接收方被锁这类判断如果不放进增强用户只能靠报错找原因。常见的挂钩点是结算前的用户出口和 BADI具体名字随版本有差异实施前先在系统里用 SMOD/SE18 搜结算相关的出口确认。S/4HANA 之后FI 和 CO 实际成本都落在同一张通用日记账行项目表 ACDOCA 里这比在 ECC 里分别查 BKPF/BSEG 再查 COEP 要省事得多一条 SQL 就能把科目、成本中心、金额一起拉出来。-- S/4HANA 通用日记账行项目表 ACDOCAFI 与 CO 同源 SELECT RJLDC AS company_code, -- 公司代码 RACCT AS gl_account, -- 总账科目 KOSTL AS cost_center, -- 成本中心 RTCUR AS doc_currency, -- 凭证货币 HSL AS amount_local, -- 本位币金额 RLDNR AS ledger -- 分类账 FROM ACDOCA WHERE RYEAR 2025 AND POPER 008 AND KOSTL CC1000 AND RLDNR 0L;逻辑说明ACDOCA 是 S/4HANA 里 FI 和 CO 共享的行项目表一次查询就能同时拿到记账科目和成本对象。参数说明RYEAR、POPER 定位期间KOSTL 过滤成本中心RLDNR 是分类账标识0L 是主导分类账改这个值可以查平行分类账。用它替代过去先查 BSEG 再查 COEP 再对账的路径是排查FI 有、CO 没有这类问题最直接的办法。4. FICO 与 MM、SD、AA 的集成点4.1 MIGO 收货为什么会自动生成会计凭证MM 里的物料移动能自动生成 FI 凭证靠的是一整套自动记账配置事务码 OBYC核心逻辑是移动类型 物料评估类 交易码三者确定一个科目。读一遍这条链路比背几十个移动类型的科目有用。OBYC 事务码用途典型来源BSX存货科目物料评估类WRX采购价格差异价格控制 S 的物料GBB费用消耗 / GR-IR移动类型 账户修改标识PRD价格变更差异标准价调整KDM汇兑差异外币采购业内常见的异常是MiGO 检查导致物料锁定多数情况不是 FI 配置的问题而是收货时物料在库存或质量检验环节被锁或者评估类缺失导致系统找不到 BSX 科目。排查顺序是先看物料主数据会计视图的评估类再去看 OBYC 里对应组合的科目有没有维护最后看移动类型的字段状态。4.2 MIRO 发票校验与 GR/IR 清账采购发票校验用 MIRO它把发票金额和收货时的暂估做比对差额进到 GR/IR 中间科目或价格差异科目。发票和收货数量、金额完全匹配时GR/IR 科目自动清平有差异时保留余额靠 MR11 做后续处理。热词里出现的miro 拆分增强后无法清账这类问题根源基本在增强逻辑改动了行项目的分配字段或清账标识导致系统找不到可以配对的 GR/IR 行。注意动 MIRO 增强之前先把发票行 - 采购订单行 - 收货行的对应关系在白纸上画清楚。只要有一环的分配号、参考号或项目号被改写后续清账就会失败而且这种失败通常到月底才暴露。贷项凭证走 MIRO 时若提示完全冲销自动设置的冲销表目值一般和冲销原因、过账期间、以及原凭证是否已被后续操作占用有关。标准路径处理不了的时候先检查原发票的冲销状态再考虑用冲销原因区分正负记账别硬改配置。4.3 固定资产折旧 AFAB 与资产主数据资产会计AA的主数据落在 ANLA主数据和 ANLB折旧范围里一笔购置通过 F-90 或集成过账进来月末用 AFAB 跑折旧。折旧能不能跑先确认三件事资产资本化日期落在本期、折旧码和折旧范围配置完整、本期折旧已经计划AFABP 或直接在 AFAB 里勾计划外过账。 读取公司代码下的资产及折旧范围核对折旧是否可运行 DATA: lt_anla TYPE TABLE OF anla, lt_anlb TYPE TABLE OF anlb. SELECT * FROM anla INTO TABLE lt_anla WHERE bukrs lv_bukrs. SELECT * FROM anlb INTO TABLE lt_anlb FOR ALL ENTRIES IN lt_anla WHERE bukrs lt_anla-bukrs AND anln1 lt_anla-anln1. 输出资产编号和折旧范围缺失折旧范围的行就是 AFAB 跑不过去的嫌疑 LOOP AT lt_anla INTO DATA(ls_anla). READ TABLE lt_anlb TRANSPORTING NO FIELDS WITH KEY bukrs ls_anla-bukrs anln1 ls_anla-anln1. IF sy-subrc 0. WRITE: / 缺折旧范围:, ls_anla-bukrs, ls_anla-anln1. ENDIF. ENDLOOP.逻辑说明ANLA 一行对应一个资产ANLB 按折旧范围拆行正常资产在 ANLB 里至少有一条记录。缺记录意味着这个资产没有折旧参数AFAB 跑到它就会跳过或报错。参数说明BUKRS 限定公司代码ANLN1 是资产主编号ANLN2 是子编号多子编号资产要一起查。折旧跑完用 S_ALR_87012082 看折旧明细和总账里累计折旧科目的余额对一遍对不上就查折旧范围与总账科目的对应配置。5. FICO 结账期的导表核数与报错定位期末做总账核数绕不开几个高频事务码。FS10N 看单个科目余额FAGLB03 是新总账的余额显示FAGLL03 看行项目S_ALR_87012284 出财务报表。想把科目余额表导成 ExcelFS10N 或 FAGLB03 进到余额界面后用清单→导出→电子表格这条路最稳行项目级的导出用 FAGLL03 勾选输出到文件。如果只是要核对用上一章的 ACDOCA 查询反而更快还能顺带带上成本中心维度。事务码用途典型场景FS10N单个总账科目余额科目核数FAGLB03新总账余额显示平行分类账核数FAGLL03总账行项目追明细F-92贷项凭证录入冲销、调整S_ALR_87012284财务报表资产负债表/损益期末出表F-92 处理的是客户贷项凭证容易出错的地方是参考凭证和特殊分类账的字段联动。录入后如果发现金额方向和预期相反先看凭证类型的借贷默认方向和反向记账标识再看该客户的往来科目字段状态组有没有把贷项相关字段隐藏掉。凭证分割Document Splitting是结账期最容易出问题的一块。启用之后一笔凭证会按维度利润中心、段、业务范围被拆成多行用来实现完整的资产负债表。排错时用显示凭证 → 环境 → 分割看系统实际拆分的结果核对每一行的维度取值来源。常见的失败原因是维度可以被空值填充此时要么在凭证行上补全维度要么配置派生规则把维度从成本中心或科目派生出来。一个落地的小技巧把上面几件事串成一张结账检查清单——科目余额和 ACDOCA 对平、GR/IR 科目无意外余额、成本中心分配分摊已跑、KO88 结算完成、AFAB 折旧已跑、凭证分割无空维度。每一项都对应一个事务码和一张可导出的表按顺序过一遍比月底临时翻日志排查要快得多。清单里任何一项对不上先用下一项的数据去反查上一项而不是从头再来一遍。本文还有配套的精品资源点击获取
返回列表