1

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

我的设置:
- Transactions XD..(例如 XD02)的新子屏幕
- 使用 badi customer_add_data 和 customer_add_data_cs
- 向表中添加了一些自定义字段,例如 KNA1
- 使用 dynpros 为 Transactions 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 的哪些接口方法?我的 dynpro 的 PBO/PAI 中必须写什么?

例如,如果新字段是:knvv-zfoo 和 knvv-zbar,解决方案会如何。

我是自定义 SAP 的新手,需要一些关于如何使用 BADI 的一般指导。

4

1 回答 1

1

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

它的要点是:

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

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

于 2014-10-29T08:27:40.000 回答