SAP 折旧运行核对器
目的
审「折旧有没有真的运行到凭证里」,不是审折旧怎么算。
SAP 的折旧计算由配置保证(折旧码、期间控制、年限与残值率在资产主数据里),算得对不对由系统负责。但系统不保证每台设备都真的被计提、被过账——AFAB 会静默跳过资产,日志里的红点会被几千条绿记录淹没,重估后漏跑 AFAR 不会报错。
本 skill 在资产级把计划折旧与实际过账折旧逐条比对,把没进凭证的资产挑出来。
使用边界
- 用于 SAP 折旧运行的完整性核对,不替代会计复核、审计程序或税务申报判断。
- 「未发现异常」指在已提供数据与当前规则范围内未发现问题,不能推论为折旧计提完全正确。
- AA 与 FI 总账对账、多折旧范围对账、税法最低年限、减值测试、在建工程转固、盘点需另行提供资料,固定列为待补。
- 不判断折旧金额是否正确(那是配置问题);只判断折旧有没有按计划进入凭证。
输入契约
三张 CSV 放入同一输入目录。字段名固定,来源为 SAP 标准报表或底表导出。
1. asset_master.csv(资产主数据)
来源:AS03 批量导出 / 表 ANLH + ANLZ + ANLC。
必填字段:
asset_code、asset_name、asset_classcapitalization_date:资本化日期original_cost:原值dep_key:折旧码useful_life_months、residual_ratecost_centerstatus:状态(在用 / 处置 / 报废 / 已清理 / 停用 / 封存 / 闲置)
可选字段:
disposal_period:处置期间(YYYY-MM),D06 需要prior_original_cost:上期原值,D05 需要monthly_plan_amount、prior_monthly_plan_amount:本期与上期计划月折旧额,D05 需要
2. planned_depreciation.csv(计划折旧)
来源:S_ALR_87012993(折旧预测)或 AW01N 批量导出。
字段:asset_code、period(YYYY-MM)、amount。
3. posted_depreciation.csv(实际过账折旧)
来源:ANEP(资产行项目)/ ACDOCA / FBL3N 按折旧科目过滤。
字段:asset_code、period、amount,可选 doc_no。
执行流程
- 从 SAP 导出上述三张表,脱敏后放入同一目录。
- 执行:
python scripts/run_checker.py --input <输入目录> --output <输出目录>。 - 查看三份交付文件:
-检查状态表.csv:每条规则的字段前提、执行状态、结果与口径说明。
-异常清单.csv:定位到资产号与期间的异常,附处理建议。
-待补件清单.csv:缺资料或缺字段导致未执行的规则。 - 对每条异常回到 SAP 复核(AW01N 看资产价值日与业务交易、AFBP 看折旧日志),不要直接改数。
规则口径
读取 references/rule-catalog.md 了解八条规则的判定逻辑、字段前提与去重口径。
关键口径:
- 判定容差 1.00 元(吸收四舍五入误差)。
- 每条异常唯一的「资产 × 期间」格子只由一条规则认领,跨规则不重复计数。
- 处置当期计提通常仍在政策范围内,D06 只报处置次月及以后。
- 整月全资产缺失由 D07 报出,不由 D01 逐资产重复报出。
- 折旧范围限定为账面折旧范围(通常 01);多范围对账属 G02 待补。
演示
使用 assets/example_input/ 中的三张脱敏表运行。样例故意包含:单资产某期完全无过账记录(D01)、过账金额不符(D02)、无计划却过账(D03)、有过账记录但金额为 0(D04)、原值重估后计划折旧未重算(D05)、处置后仍计提(D06)、新年度首期全资产未过账(D07)、孤儿资产与无折旧数据资产(D08)。
样例未提供总账余额、多折旧范围、税法年限、减值、在建工程与盘点资料,因此 G01–G06 应出现在待补件清单中。