Abap 自定义字段未显示在表输出上

Abap 自定义字段未显示在表输出上,abap,sap-erp,Abap,Sap Erp,我很难弄清楚为什么两个自定义字段没有显示在事务VA05(其输出是特定的) 在阅读以下内容之前:我没有对程序进行任何更改,因为我没有被分配到这个任务。我的一位同事做了这个改变 我遵循了教程,它解释了如何使用自定义字段展开VA05输出表 我实际上并没有遵循这个指南。我遵循本教程只是为了了解我的同事可能会做些什么来实现我们所需要的,以及可能需要做些什么来解决这个问题 因此,正如本教程所建议的,简而言之,这是应该做的: 转到SE11并搜索VBEP数据库表,然后单击显示 单击附加结构 单击Create

我很难弄清楚为什么两个自定义字段没有显示在事务
VA05
(其输出是特定的)

在阅读以下内容之前:我没有对程序进行任何更改,因为我没有被分配到这个任务。我的一位同事做了这个改变

我遵循了教程,它解释了如何使用自定义字段展开
VA05
输出表
我实际上并没有遵循这个指南。我遵循本教程只是为了了解我的同事可能会做些什么来实现我们所需要的,以及可能需要做些什么来解决这个问题

因此,正如本教程所建议的,简而言之,这是应该做的:

  • 转到
    SE11
    并搜索
    VBEP
    数据库表,然后单击显示
  • 单击
    附加结构
  • 单击
    Create Append
  • 插入附加名称的名称,在我的示例中是
    ZZVBEP\u MECC
  • 插入两个字段:
    ZZDELIVERYDATE
    ZZREQDELIVERYDATE
  • 保存并激活
如果现在转到
VBEP
表,您将在底部看到字段
。追加
,列
数据元素
设置为
ZZVBEP\u MECC

现在,在本教程之后,需要更改include程序
V05TZZMO
,以下是我们的:

***INCLUDE V05TZZMO .
* This form is called in the include LV05TFMO.
FORM MOVE_USERFIELDS USING ZP.
  CASE ZP.
    WHEN 'VBAK'.

    WHEN 'VBAP'.

      CHECK LVBAP-PSTYV NE 'ZRAC'.
      CHECK LVBAP-PSTYV NE 'ZCAC'.     "Escl.acconti
      MOVE LVBAP-KDMAT TO LVBMTV-ZZKDMAT.
      PERFORM OFFENE_AUFTRAGSMENGE.

     SELECT SINGLE * FROM VBKD WHERE VBELN = LVBAP-VBELN.
      IF SUBRC = 0.
      MOVE VBKD-KDGRP TO LVBMTV-ZZKDGRP.
      ENDIF.

    WHEN 'VBEP'.
      MOVE LVBEP-ZZDELIVERYDATE    TO LVBMTV-ZZDELIVERYDATE.
      MOVE LVBEP-ZZREQDELIVERYDATE TO LVBMTV-ZZREQDELIVERYDATE.
  ENDCASE.
ENDFORM.

但是,当我运行
VA05
时,这两个自定义字段不存在,也不在
更改布局
屏幕中

V05TZMO
中的代码是否可能不在正确的位置?查看教程的代码,我看到他们在“VBAK”时将这些语句放在
中,而不是在“VBEP”时放在

此外,我的代码中不存在增强功能1 ZZ_SD_VBAK_VA05



我可能错过了什么。正如我上面所说,我没有做这些更改,因此我无法确切地告诉我的同事做了什么。

自定义文件也必须包含在结构中VBMTVZ


关于

自定义文件也必须包含在结构中VBMTVZ

问候

终于解决了

以下是我们为解决问题而遵循的步骤:

创建一个
附加结构
  • 转到TCode
    SE11
    并打开数据库表
    VBMTVZ
  • 单击
    Append Structure…
    (在程序的工具栏中)-或
    Goto>Append Structure
  • 创建一个新的
    附加结构
    (有一个按钮)
  • 输入结构的名称(在本例中为
    ZZVBMTVZ_MECC
  • 然后创建一个新结构。输入所需的组件/字段
  • 保存并激活结构
  • 注意:若要检查是否确实附加了结构,请返回并再次打开表
    VBMTVZ
    。在字段列表的末尾必须有一个名为
    。APPEND
    的字段,其类型设置为您创建的结构的名称。在该字段之后,还有您在该结构上创建的所有字段。请参见下图w作为参考

更改
V05T
程序 现在,您需要对链接到TCode
VA05
的程序进行一些更改

为此:

  • 转到TCode
    SE80
  • 选择
    功能组
    并插入
    V05T
    作为组名
  • 打开名为
    Includes
    的子文件夹并查找
    V05TZMO
  • change
    模式下打开此包含文件
  • 该文件应如下所示:
当“VBEP”时,将以下代码行添加到
代码块。
代码块

MOVE LVBEP-name_of_your_field TO LVBMTV-name_of_your_field
您需要为附加的每个字段添加该行

就我而言,最终结果如下:

***INCLUDE V05TZZMO .
* This form is called in the include LV05TFMO.
FORM MOVE_USERFIELDS USING ZP.
  CASE ZP.
    WHEN 'VBAK'.
*     header
*     MOVE LVBAK-XXXXX TO LVBMTV-ZZXXXXX.

    WHEN 'VBAP'.
*     item
*     MOVE LVBAP-XXXXX TO LVBMTV-ZZXXXXX.

    WHEN 'VBEP'.
*     schedule line
*     MOVE LVBEP-XXXXX TO LVBMTV-ZZXXXXX.

  move LVBEP-zzdeliverydate to lvbmtv-zzdeliverydate.
  move LVBEP-zzreqdeliverydate to lvbmtv-zzreqdeliverydate.

  ENDCASE.
ENDFORM.

保存文件并激活程序

此时,您应该能够在TCode
VA05
的输出中看到您的字段


笔记 为了能够更改包含程序
V05TZMO
,您需要一个访问密钥。否则,您无法更改程序

如果您添加的字段在激活后仍不显示,请尝试:

  • 注销并重新登录,或
  • 使用此TCode重置缓冲区
    /$SYNC
    • 终于解决了

      以下是我们为解决问题而遵循的步骤:

      创建一个
      附加结构
      • 转到TCode
        SE11
        并打开数据库表
        VBMTVZ
      • 单击
        Append Structure…
        (在程序的工具栏中)-或
        Goto>Append Structure
      • 创建一个新的
        附加结构
        (有一个按钮)
      • 输入结构的名称(在本例中为
        ZZVBMTVZ_MECC
      • 然后创建一个新结构。输入所需的组件/字段
      • 保存并激活结构
      • 注意:若要检查是否确实附加了结构,请返回并再次打开表
        VBMTVZ
        。在字段列表的末尾必须有一个名为
        。APPEND
        的字段,其类型设置为您创建的结构的名称。在该字段之后,还有您在该结构上创建的所有字段。请参见下图w作为参考

      更改
      V05T
      程序 现在,您需要对链接到TCode
      VA05
      的程序进行一些更改

      为此:

      • 转到TCode
        SE80
      • 选择
        功能组
        并插入
        V05T
        作为组名
      • 打开名为
        Includes
        的子文件夹并查找
        V05TZMO
      • change
        模式下打开此包含文件
      • 该文件应如下所示:
      当“VBEP”时,将以下代码行添加到
      中。
      code-bl
      ***INCLUDE V05TZZMO .
      * This form is called in the include LV05TFMO.
      FORM MOVE_USERFIELDS USING ZP.
        CASE ZP.
          WHEN 'VBAK'.
      *     header
      *     MOVE LVBAK-XXXXX TO LVBMTV-ZZXXXXX.
      
          WHEN 'VBAP'.
      *     item
      *     MOVE LVBAP-XXXXX TO LVBMTV-ZZXXXXX.
      
          WHEN 'VBEP'.
      *     schedule line
      *     MOVE LVBEP-XXXXX TO LVBMTV-ZZXXXXX.
      
        move LVBEP-zzdeliverydate to lvbmtv-zzdeliverydate.
        move LVBEP-zzreqdeliverydate to lvbmtv-zzreqdeliverydate.
      
        ENDCASE.
      ENDFORM.