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
程序
现在,您需要对链接到TCodeVA05
的程序进行一些更改
为此:
- 转到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.
保存文件并激活程序
此时,您应该能够在TCodeVA05
的输出中看到您的字段
笔记
为了能够更改包含程序V05TZMO
,您需要一个访问密钥。否则,您无法更改程序
如果您添加的字段在激活后仍不显示,请尝试:
- 注销并重新登录,或
- 使用此TCode重置缓冲区
/$SYNC
终于解决了
以下是我们为解决问题而遵循的步骤:
创建一个
附加结构
- 转到TCode
SE11
并打开数据库表VBMTVZ
- 单击
Append Structure…
(在程序的工具栏中)-或Goto>Append Structure
- 创建一个新的
附加结构
(有一个按钮)
- 输入结构的名称(在本例中为
ZZVBMTVZ_MECC
- 然后创建一个新结构。输入所需的组件/字段
- 保存并激活结构
- 注意:若要检查是否确实附加了结构,请返回并再次打开表
VBMTVZ
。在字段列表的末尾必须有一个名为。APPEND
的字段,其类型设置为您创建的结构的名称。在该字段之后,还有您在该结构上创建的所有字段。请参见下图w作为参考
更改V05T
程序
现在,您需要对链接到TCodeVA05
的程序进行一些更改
为此:
- 转到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.