BAPI增强

销售订单创建-
 

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.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值