使用 ABAP GIT 发生 IF_APACK_MANIFEST dump

时间:2024-11-06 19:37:58

错误重现

  1. 使用经典的 ABAP 系统
  2. 运行 ZABAPGIT 或者 ZABAPGIT_STANDALONE
  3. 然后添加在线或者离线项目
  4. 点击 Pull
  5. Short dump SYNTAX_ERROR

Dump 界面:

 解决方案

它发生在 CREATE OBJECT lo_manifest_provider TYPE (ls_manifest_implementation-clsname) 语句中。

该语句 CREATE OBJECT lo_manifest_provider TYPE (ls_manifest_implementation-clsname) 要么在类 ZCL_ABAPGIT_APACK_HELPER 中,要么在类 ZCL_ABAPGIT_APACK_READER 中。原因是 manifest 类使用接口 IF_APACK_MANIFEST但它不存在。

分析:在非 Cloud SAP 系统中,abapGit 不需要与 IF_APACK_MANIFEST 一起使用,但如果拉取的项目打算安装在 Cloud 系统中,则不会短 dump。

建议的解决方案:如果 manifest 类有语法错误,请不要分析它。

所以我的解决方案是在使用到这个语句的地方,注释掉:

参考链接:

  • SYNTAX_ERROR 拉取 APACK 项目时,IF_APACK_MANIFEST 不存在 ·问题 #3308 ·abapGit/abapGit ·GitHub的 --- SYNTAX_ERROR while pulling APACK project, IF_APACK_MANIFEST doesn't exist · Issue #3308 · abapGit/abapGit · GitHub