SAP: VL02N Enhancement FV50XF0B_BELEG_SICHERN / LIPW1F59 / MV50AF0S

FV50XF0B_BELEG_SICHERN:

ENHANCEMENT 1  ZPOSTGOODS.    "active version
*
  DATA: wa_lips LIKE LINE OF xlips.
  DATA: wa_mkpf TYPE bapi2017_gm_head_01,
        gt_fg   TYPE TABLE OF bapi2017_gm_item_create WITH HEADER LINE,
        gt_sp   TYPE TABLE OF bapi2017_gm_item_create WITH HEADER LINE,
        wa_mseg LIKE LINE OF gt_fg,
        l_vendor LIKE gt_sp-vendor,
        l_plant LIKE lips-werks,
        l_mblnr TYPE BAPI2017_GM_HEAD_RET-MAT_DOC.
  DATA: goodsmvt_code TYPE bapi2017_gm_code.
  DATA: gt_msg TYPE TABLE OF bapiret2,
        wa_msg LIKE LINE OF gt_msg,
        gs_zsd003 TYPE zsd003.
  DATA: wbs TYPE LENGTH 24,
        l_kunno LIKE likp-kunnr,                     "sold-to party
        l_kunni LIKE likp-kunnr,                     "ship-to party.
        l_lifnr LIKE zsd002-lifnr,
        l_tabix LIKE sy-tabix,
        regiogroup LIKE adrc-regiogroup,
        l_flag,
        l_skip.
  DATA: BEGIN OF gt_serial OCCURS 0,
        vbeln LIKE lips-vbeln,
        posnr LIKE lips-posnr,
        SERNR LIKE objk-SERNR,
        END OF gt_serial.
  DATA: gt_material TYPE ZMATERIAL WITH HEADER LINE.

  DATA: gt_serno TYPE TABLE OF BAPI2017_GM_SERIALNUMBER WITH HEADER LINE.

  DATA: BEGIN OF it_kunnr OCCURS 0,
        kunnr LIKE vbpa-kunnr,
        parvw LIKE vbpa-kunnr,
        END OF it_kunnr.
  CLEAR l_skip.
  IF gs_vbak-auart eq 'TA'.
    READ TABLE xvbpa WITH KEY parvw 'WE'.
    IF sy-subrc EQ 0.
      SELECT SINGLE regiogroup INTO regiogroup
        FROM kna1 AS JOIN adrc AS b
          ON a~adrnr b~addrnumber
        WHERE a~kunnr xvbpa-kunnr.
    ELSE.
      l_skip 'X'.
    ENDIF.
   IF regiogroup eq 'VTECH'.
   ELSE.
     l_skip 'X'.
   ENDIF.
   IF l_skip IS INITIAL.
    wa_mkpf-pstng_date xlikp-WADAT_IST.
    wa_mkpf-doc_date xlikp-WADAT_IST.
    wa_mkpf-PR_UNAME sy-uname.
    wa_mkpf-HEADER_TXT xlikp-vbeln.
    goodsmvt_code-gm_code '05'.

    IF gs_vbak-auart eq 'ZSP'.
      READ TABLE xvbpa WITH KEY parvw 'WE'.
      IF sy-subrc eq 0.
        l_kunni xvbpa-kunnr.
      ENDIF.
      READ TABLE xvbpa WITH KEY parvw 'AG'.
      IF sy-subrc eq 0.
        l_kunno xvbpa-kunnr.
      ENDIF.
      SELECT SINGLE lifnr flag FROM zsd002
        INTO (l_vendor,l_flag)
        WHERE kunno l_kunno
          AND kunni l_kunni
          AND VKORG gs_vbak-vkorg.
    ELSEIF gs_vbak-auart eq 'TA'.
*      SELECT SINGLE * FROM vbpa
*        WHERE vbeln = gs_lips-VGBEL
*          AND PARVW = 'WE'.
      READ TABLE xvbpa WITH KEY parvw 'WE'.
      SELECT SINGLE werks FROM zsd001
        INTO l_plant
        WHERE KUNNR xvbpa-kunnr
          AND VKORG gs_vbak-vkorg.
    ENDIF.

    SELECT SERNR LIEF_NR AS vbeln posnr
      INTO CORRESPONDING FIELDS OF TABLE gt_serial
      FROM ser01 AS JOIN objk AS b
        ON a~obknr b~obknr
      WHERE b~TASER 'SER01'
        AND a~LIEF_NR xlikp-vbeln.

    CLEAR l_tabix.
    LOOP AT xlips INTO wa_lips.
      IF wa_lips-lfimg eq 0.
        CONTINUE.
      ENDIF.
      l_tabix l_tabix + 1.
      gt_material-vbeln wa_lips-vgbel.
      gt_material-posnr wa_lips-vgpos.
      gt_material-matnr wa_lips-matnr.
      APPEND gt_material.
      wa_mseg-material wa_lips-matnr.
      wa_mseg-stge_loc wa_lips-lgort.
      wa_mseg-batch wa_lips-charg.
      wa_mseg-entry_qnt wa_lips-lfimg.
      wa_mseg-entry_uom wa_lips-meins.
      LOOP AT gt_serial WHERE posnr wa_lips-posnr.
        gt_serno-MATDOC_ITM l_tabix.
        gt_serno-SERIALNO gt_serial-SERNR.
        APPEND gt_serno.
        CLEAR gt_serno.
      ENDLOOP.

      CALL FUNCTION 'CONVERSION_EXIT_ABPSP_OUTPUT'
        EXPORTING
          input         wa_lips-PS_PSP_PNR
        IMPORTING
          OUTPUT        wbs.

      wa_mseg-val_wbs_elem wbs.
      wa_mseg-wbs_elem wbs.
      IF gs_vbak-AUART eq 'TA'.
        MOVE-CORRESPONDING wa_mseg to gt_fg.
        gt_fg-spec_stock 'Q'.
        gt_fg-plant l_plant.
        gt_fg-move_type '901'.
        APPEND gt_fg.
      ELSEIF gs_vbak-AUART eq 'ZSP'.
        MOVE-CORRESPONDING wa_mseg to gt_sp.
        gt_sp-vendor l_vendor.
        gt_sp-move_type '901'.
        gt_sp-spec_stock 'K'.
        gt_sp-plant 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值