使EKKO-ZTERM在ME21N中不可编辑

2020-08-18 14:44发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

是否可以根据条件在ME21N和ME22N中制作不可编辑的字段EKKO-ZTERM? 我正在尝试在IF_EX_ME_PROCESS_PO_CUST〜FIELDSELECTION_HEADER中进行此操作,但是我不知道如何做。

预先感谢

玛丽亚

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

是否可以根据条件在ME21N和ME22N中制作不可编辑的字段EKKO-ZTERM? 我正在尝试在IF_EX_ME_PROCESS_PO_CUST〜FIELDSELECTION_HEADER中进行此操作,但是我不知道如何做。

预先感谢

玛丽亚

付费偷看设置
发送
3条回答
悻福寶寶
1楼-- · 2020-08-18 15:30

嗨,

代替尝试方法PROCESS_HEADER

大道至简
2楼-- · 2020-08-18 15:11

另一种方法是动态选择预先准备的屏幕变体(使用该字段

这可以在ME_PROCESS_PO_CUST BADI的FIELDSELECTION_HEADER_REFKEYS方法中完成。

 IF条件= abap_true。
   ch_key0 ='SOME_SCREEN_VARIANT_NAME'。
 ENDIF。

Mateusz
Haoba3210
3楼-- · 2020-08-18 15:33

您好,玛丽亚美利奴

我阅读了BADI文档并进行了一些调试,这就是我所发现的。

在BADI的FIELDSELECTION_HEADER方法中,您需要分配字段ID和显示选项:

  • '-'字段被抑制
  • '*'字段纯粹是显示字段
  • '。' 输入字段
  • '+'必填字段

您可以在类型池MMMFD中找到字段ID。

在您的BADI代码中,方法应如下所示。

 TYPE- 池:
   mmmfd。

 数据:
   ls_field_selection TYPE mmpur_fs。

   ls_field_selection-metafield = mmmfd_pmnttrms。
   ls_field_selection-fieldstatus ='*'。  "显示
   INSERT ls_field_selection插入表ch_fieldselection 

但是,问题是,只有在标题屏幕的一个选项卡("定制字段"选项卡)上有一个定制字段时,才调用此方法。 您可以在MEPOBADI_FS_HEADER函数中看到这一点。

MMFMD_CUST_01的定义如下。

该方法被注释为防火墙,因为它可以防止更改 标准字段的属性,但是一旦您调用了BADI方法,我展示的逻辑就会起作用。 过滤部分不会阻止任何事情,只是调用了BADI方法。

要使用自定义字段添加此自定义屏幕,您需要实现BADI ME_GUI_PO_CUST,然后在BADI中向交易​​添加新屏幕。

您可以检查SAP为ME_GUI_PO_CUST和ME_PROCESS_PO_CUST BADI准备的示例:

-CL_EXM_IM_ME_GUI_PO_CUST

-CL_EXM_IM_ME_PROCESS_PO_CUST

希望有帮助。

问候,

Mateusz

一周热门 更多>