SAP S/4 FAGLGVTR错误解决

本次年结支持过程中,一个客户的年结操作出现问题,问题的解决还颇费周折,稍稍记录一下。客户的SAP 版本是 S/4, 通过 FAA_CMP 事务码切换固定资产年度的时候,提示上一已关闭的会计年度与当前会计年度相同。


这个消息的意思是FI 的会计年度没有切换到新的年度,可以理解为 FAGLGVTR 没有运行或者没有运行成功。但运行 FAGLGVTR 的时候,如果只看科目的结转,看起来还是比较正常,但查看消息日志,SAP 提示部分资产切换年度失败:


可以看出,SAP 提示处理了 365 个固定资产,但哪些资产处理失败,究竟哪些资产存在问题,SAP 没有进一步说明。马上想到 SAP 有些事务码跟年度切换是相关的,比如 AR03,于是查看 AR03 报表,正好也是 365 个资产。将 AR03 报表数据与 SAP 的后台表 ANLH 对比,发现 ANLH 多出一些资产号码。这些资产号码分为两种情况,一种情况是只有资产号没有交易数据,另外是有一笔资产在 2022 年有交易数据,但 2023 年折旧存在问题。


查看该固定资产的几个关键字段,比如资本化日期、首次购置日期、购置年度、折旧开始日期等,果然发现资本化日期、首次购置日期、购置年度存在问题,字段值为空。资产年度切换原因基本找到了,但这几个字段中,除了资本化日期字段,其它字段都是灰色的,不能修改:


一般情况下,我不太喜欢直接修改后台表,所以让业务咨询 SAP 原厂,SAP 很快提供了一支程序,用于修改这三个字段,不知道程序是否是否是临时写的,但也体现了 SAP 的严谨性,有 test mode 和 production run 两种模式。

ANLA-ZUPER
ANLA-ZUGDT
ANLA-ZUJHR

以下是 SAP 提供的修改程序 ZACORR_ACQ_DATES_SET_ALL

*&---------------------------------------------------------------------*
*& Report ZACORR_ACQ_DATES_SET_ALL
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zacorr_acq_dates_set_all.
PARAMETERS: p_bukrs TYPE anla-bukrs OBLIGATORY,
            p_anln1 TYPE anla-anln1 OBLIGATORY,
            p_anln2 TYPE anla-anln2 OBLIGATORY,

            p_zugdt TYPE anla-zugdt OBLIGATORY,

            p_test  AS CHECKBOX DEFAULT 'X'.

DATA: ls_anla  TYPE anla,
      ls_t001  TYPE t001,
      ld_subrc TYPE sy-subrc.

SELECT SINGLE * FROM anla INTO ls_anla WHERE bukrs = p_bukrs
                                         AND anln1 = p_anln1
                                         AND anln2 = p_anln2.
IF sy-subrc NE 0.
  WRITE:/ 'Asset does not exist', p_bukrs, p_anln1, p_anln2.
  EXIT.
ENDIF.

SELECT SINGLE * FROM t001 INTO ls_t001 WHERE bukrs = p_bukrs.
IF sy-subrc NE 0.
  WRITE:/ 'company code does not exist', p_bukrs.
  EXIT.
ENDIF.


CALL FUNCTION 'DATE_TO_PERIOD_CONVERT'
  EXPORTING
    i_date  = p_zugdt
*   I_MONMIT             = 00
    i_periv = ls_t001-periv
  IMPORTING
    e_buper = ls_anla-zuper
    e_gjahr = ls_anla-zujhr
  EXCEPTIONS
    OTHERS  = 4.

IF sy-subrc <> 0.
  WRITE:/'no period may be determined , error occured'.
  EXIT.
ENDIF.

ls_anla-zugdt = p_zugdt.


IF p_test IS INITIAL.
  WRITE:/ 'Production Run'.
  WRITE:/ '=============='.
  SKIP.
  WRITE:/ 'The following values are changed:'.
  SKIP.
ELSE.
  WRITE:/ 'Test Run'.
  WRITE:/ '========'.
  SKIP .
  WRITE:/ 'The following values would be changed in a production run'.
  SKIP.

ENDIF.

WRITE:/ 'ANLA-ZUGDT:', ls_anla-zugdt.
WRITE:/ 'ANLA-ZUJHR:', ls_anla-zujhr.
WRITE:/ 'ANLA-ZUPER:', ls_anla-zuper.

IF p_test IS INITIAL.
  UPDATE anla FROM ls_anla.
  ld_subrc = sy-subrc.
  COMMIT WORK.
  IF ld_subrc EQ  0.
    ld_subrc = sy-subrc.
  ENDIF.
  IF ld_subrc IS INITIAL.
    SKIP.

修改之后,固定资产主数据这三个字段正常了:


各个年度的折旧也正常了:


FAGLGVTR 年度切换成功:


FAA_CMP 的年度也变更了:

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值