在CUSTOMER_ADD_DATA BAdI中未处理Z字段中的用户输入

问题描述 投票:1回答:1

我需要知道在自定义字段中使用用户输入来处理(保存和显示)什么。

我的设置:-交易XD ..(例如XD02)的新子屏幕-使用badi customer_add_data和customer_add_data_cs-在表格中添加了一些自定义字段,例如KNA1-使用dynpros为交易XD创建功能组。-新客户字段显示在XD中。]

但是,我输入到新字段中的任何内容似乎都没有得到处理。我不知道如何继续执行。

我在BADI中所做的尝试:

" wokrs, saves data input 
method IF_EX_CUSTOMER_ADD_DATA_CS~GET_DATA.

  "SAPLZSD_FOO_CUSTOMER = my function group
  CONSTANTS: c_foo(50)  VALUE '(SAPLZSD_FOO_CUSTOMER)KNA1-ZZFOO'. 

  FIELD-symbols: <fs> TYPE ANY.
  ASSIGN (c_foo) TO <fs>.
  IF sy-subrc = 0.
    s_kna1-ZZFOO = <fs>.
  ENDIF.
endmethod.

我在PBO中尝试显示自定义字段值的内容

 " does not work, stored values are not display in dynpro
 MODULE status_2001 OUTPUT.

  DATA: gf_eori TYPE kna1-zzeori.

  CONSTANTS: c_foo(34)  VALUE '(SAPMF02D)KNA1-ZZfoo'.

  FIELD-SYMBOLS: <fs>.

  ASSIGN (c_foo) TO <fs>.
  IF sy-subrc = 0.
    kna1-zzfoo = <fs>.
  ENDIF.
ENDMODULE. 

必须使用customer_add_data和customer_add_data_cs的哪些接口方法? dynpros的PBO / PAI必须写什么?

如果新字段例如是knvv-zfoo和knvv-zbar,解决方案将如何显示。

我是定制SAP的新手,通常需要一些技巧来使用BADI。

sap abap badi
1个回答
1
投票

以上示例基于我在互联网上找到的帖子。为了解决我的问题,我在一本书中找到了一个可行且更好的解决方案。

要点是:

  • 使用接口方法IF_EX_CUSTOMER_ADD_DATA_CS的get_data()和set_data()
  • 向导入和导出自定义表的功能池添加两个功能(getter和setter)
  • 在这些函数中分配或返回自定义字段的值

现在,我的自定义字段已正确保存和加载。

© www.soinside.com 2019 - 2024. All rights reserved.