关于BAPI扩展字段赋值

实例一:
t_extensionin-structure = 'BAPI_TE_MARA'.
wa_temara-material = gw_data-matnr.
wa_temara-bismt = gw_data-bismt.

CALL METHOD cl_abap_container_utilities=>fill_container_c
  EXPORTING
    im_value     = wa_temara+0(36)
  IMPORTING
    ex_container = t_extensionin-valuepart1.
APPEND  t_extensionin.


t_extensioninx-structure = 'BAPI_TE_MARAX'.
wa_temarax-material = gw_data-matnr.
wa_temarax-bismt = 'X'.

CALL METHOD cl_abap_container_utilities=>fill_container_c
  EXPORTING
    im_value     = wa_temarax+0(19)
  IMPORTING
    ex_container = t_extensionin-valuepart1.
APPEND  t_extensioninx.
CLEAR:
  wa_temara,
  wa_temarax,
  t_extensioninx,
  t_extensionin.
  实例二:
        CLEAR lw_exten.
  lw_exten-vsart  = gw_data-vsart.    "装运类型
  lw_exten-zcchm  = gw_data-zcchm .   "车(船)号
  lw_exten-zsjxm  = gw_data-zsjxm .   "司机姓名
  lw_exten-zshfzh = gw_data-zshfzh .  "身份证号
  lw_exten-zdhhm  = gw_data-zdhhm .   "电话
  lw_exten-zbz    = gw_data-zbz .     "备注

  IF lw_exten IS NOT INITIAL.
    PERFORM frm_extension TABLES lt_extension_in  USING 'ZSSD003_EXTENSION' lw_exten .
  ENDIF.
  *&---------------------------------------------------------------------*

*& Form FRM_EXTENSION
&---------------------------------------------------------------------

  •   text
    

----------------------------------------------------------------------

  •  -->PT_EXTENSION_IN  text
    
  •  -->PV_STRUCTURE  text
    
  •  -->PW_EXTENSION  text
    

----------------------------------------------------------------------
FORM frm_extension TABLES pt_extension_in
USING pv_structure
pw_extension
.
DATA: lw_extension_in TYPE bapiparex,
lv_len TYPE i,
lv_begin TYPE i.

"通过测试长度,自动填加四个附加结构字段,
"字段增加多少,都不能再对字段长度,
"但不能超960
CLEAR: lv_len.
CLEAR lw_extension_in.

lv_len = strlen( pw_extension ).
lw_extension_in-structure = pv_structure.

CALL METHOD cl_abap_container_utilities=>fill_container_c
EXPORTING
im_value = pw_extension
IMPORTING
ex_container = lw_extension_in-valuepart1.

IF lv_len > 240.
lv_begin = 240.
CALL METHOD cl_abap_container_utilities=>fill_container_c
EXPORTING
im_value = pw_extension+lv_begin
IMPORTING
ex_container = lw_extension_in-valuepart2.
ENDIF.

IF lv_len > 480.
lv_begin = 480.
CALL METHOD cl_abap_container_utilities=>fill_container_c
EXPORTING
im_value = pw_extension+lv_begin
IMPORTING
ex_container = lw_extension_in-valuepart3.
ENDIF.

IF lv_len > 720.
lv_begin = 720.
CALL METHOD cl_abap_container_utilities=>fill_container_c
EXPORTING
im_value = pw_extension+lv_begin
IMPORTING
ex_container = lw_extension_in-valuepart4.
ENDIF.

APPEND lw_extension_in TO pt_extension_in.
ENDFORM.

猜你喜欢

转载自blog.csdn.net/weixin_42921800/article/details/85052522
今日推荐