当前位置: 首页 > news >正文

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 的年度也变更了:

相关文章:

  • 做阿里巴巴类似的网站/网站域名备案信息查询
  • 哈尔滨座做网站的/建立网站用什么软件
  • 赤峰建设局网站/全媒体广告策划营销
  • 做片头网站/东莞seo建站优化工具
  • 医院网站建设宗旨/百度百家号官网
  • 自适应wordpress/友情链接代码
  • 【自学Python】Python合并字符串
  • synchronized实现原理
  • 奔向光明阿波罗(5)
  • 介绍Java中的常/变量.各种数据类型以及类型转换和提升的用法
  • 【计科】计科相关
  • MyCat实现单库分表+代理所有表
  • (二十二)简单算法和Lambda表达式
  • C#利用SaveFileDialog实现保存的功能示例
  • kafka常见命令介绍和使用
  • Python_文件的打开与关闭
  • Python aiohttp 库是否值得学?那必须要掌握呀
  • 如何学习C++图像处理?