销售订单创建-
DATA:gs_extensionin TYPE bapiparex,
gt_extensionin TYPE TABLE OF bapiparex,
gs_bape_vbap TYPE bape_vbap,
gt_bape_vbap TYPE TABLE OF bape_vbap,
gs_bape_vbapx TYPE bape_vbapx,
gt_bape_vbapx TYPE TABLE OF bape_vbapx,
gs_bape_vbap-posnr = gv_posnr.
gs_bape_vbap-zlifnr = <fs_item>-lifnr. "供应商
gs_bape_vbap-zhtno = <fs_item>-htno. "合同号
gs_bape_vbap-zsjfh_date = <fs_item>-zsjfh_date. "实际发货日期
gs_bape_vbap-zebeln = <fs_item>-zebeln. "采购订单
gs_bape_vbap-zebelp = <fs_item>-zebelp. "采购订单项目
MOVE 'BAPE_VBAP' TO gs_extensionin-structure.
CALL METHOD cl_abap_container_utilities=>fill_container_c
EXPORTING
im_value = gs_bape_vbap
IMPORTING
ex_container = gs_extensionin-valuepart1.
APPEND gs_extensionin TO gt_extensionin.
CLEAR: gs_extensionin.
gs_bape_vbapx-posnr = gv_posnr.
gs_bape_vbapx-zlifnr = 'X'.
gs_bape_vbapx-zhtno = 'X'.
gs_bape_vbapx-zsjfh_date = 'X'.
gs_bape_vbapx-zebeln = 'X'.
gs_bape_vbapx-zebelp = 'X'.
MOVE 'BAPE_VBAPX' TO gs_extensionin-structure.
MOVE gs_bape_vbapx TO gs_extensionin-valuepart1.
APPEND gs_extensionin TO gt_extensionin.
CLEAR: gs_extensionin.
会计凭证创建
" EXTENSION2 扩展字段
ls_extension-posnr = '0000000020'. " 凭证行项目
ls_extension-bschl = '40'. " 记账码
ls_extension2-structure = 'ZXXXXV0001'. " 自定义结构
ls_extension2-valuepart1 = ls_extension.
APPEND ls_extension2 TO lt_extension2.
MIGO过账
MATDOC表新增收货行号
MSEG表新增收货行号
创建DDL视图用于扩展NSDM_E_MSEG
IMSEG新增增强字段
BADI:MB_BAPI_GOODSMVT_CREATE
调用方法IF_EX_MB_BAPI_GOODSMVT_CREATE~EXTENSIONIN_TO_MATDOC
METHOD IF_EX_MB_BAPI_GOODSMVT_CREATE~EXTENSIONIN_TO_MATDOC.
DATA:
c_lenstruc TYPE i VALUE 30,
wa_bapi_mb_header TYPE bapi_te_xmkpf,
wa_bapi_mb_item TYPE bapi_te_xmseg,
wa_extension_in TYPE bapiparex.
FIELD-SYMBOLS:
<fs_imseg> TYPE imseg.
CHECK NOT extension_in[] IS INITIAL.
* Analyze IMSEG for document structure and assign LINE_IDs if necessary
CALL METHOD cl_mmim_line_id_manager=>analyze_mb_create
CHANGING
ct_imseg = ct_imseg[]
EXCEPTIONS
duplicate_line_id = 1
OTHERS = 2.
LOOP AT extension_in INTO wa_extension_in.
CASE wa_extension_in-structure.
* extension of MKPF
WHEN 'BAPI_TE_XMKPF'.
MOVE wa_extension_in+c_lenstruc TO wa_bapi_mb_header.
MOVE-CORRESPONDING wa_bapi_mb_header TO cs_imkpf.
* extension of MSEG
WHEN 'BAPI_TE_XMSEG'.
MOVE wa_extension_in+c_lenstruc TO wa_bapi_mb_item.
READ TABLE ct_imseg
WITH KEY line_id = wa_bapi_mb_item-matdoc_itm
ASSIGNING <fs_imseg>.
IF sy-subrc EQ 0.
MOVE-CORRESPONDING wa_bapi_mb_item TO <fs_imseg>.
ENDIF.
ENDCASE.
ENDLOOP.
ENDMETHOD.
BAPI传值
DATA:ls_imseg TYPE bapi_te_xmseg.
DATA: ls_header TYPE bapi2017_gm_head_01,
ls_mode TYPE bapi2017_gm_code,
ls_goodsmvt_headret TYPE bapi2017_gm_head_ret,
lt_goodsmvt_item TYPE STANDARD TABLE OF bapi2017_gm_item_create WITH HEADER LINE,
*lt_goodsmvt_serialnumber TYPE STANDARD TABLE OF bapi2017_gm_serialnumber WITH HEADER LINE,
lt_return TYPE STANDARD TABLE OF bapiret2 WITH HEADER LINE.
CLEAR:ls_imseg.
ls_imseg-matdoc_itm = l_line_id.
ls_imseg-zline = lwa_pcsx-zline.
CLEAR:ls_exte.
ls_exte-structure = 'BAPI_TE_XMSEG'.
ls_exte-valuepart1 = ls_imseg.
APPEND ls_exte TO lt_exte.
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
goodsmvt_header = ls_header
goodsmvt_code = ls_mode
IMPORTING
goodsmvt_headret = ls_goodsmvt_headret
TABLES
goodsmvt_item = lt_goodsmvt_item[]
extensionin = lt_exte
* goodsmvt_serialnumber = lt_goodsmvt_serialnumber[]
return = lt_return.