VL31N创建内向交货函数GN_DELIVERY_CREATE及增强字段

3 篇文章 0 订阅
1 篇文章 0 订阅

VL31N创建内向交货函数及增强字段

LIPS字段增强

结构KOMDLGN新增字段

在下面结构中新增字段,则两个都有了。

 

创建BADI: LE_SHP_GN_DLV_CREATE

  METHOD if_ex_le_shp_gn_dlv_create~move_komdlgn_to_lips.

    cs_lips-yhjdh is_xkomdlgn-yhjdh.

    cs_lips-yhjrs is_xkomdlgn-yhjrs.

  ENDMETHOD.

 

简单创建内向交货单函数:

BBP_INB_DELIVERY_CREATE

BAPI_DELIVERYPROCESSING_EXEC

 

调用函数创建内向交货单

  DATAl_vbeln         TYPE likp-vbeln,

        l_msgtext       TYPE string.

 

  DATAls_vbsk     LIKE  vbsk,

        lt_spe_vbfs  TYPE TABLE OF  /spe/vbfs WITH HEADER LINE,

        lt_komdlgn  TYPE TABLE OF komdlgn WITH HEADER LINE,

        lt_vbfs    TYPE TABLE OF vbfs WITH HEADER LINE,

        lt_vbls    TYPE TABLE OF vbls WITH HEADER LINE.

  DATAlt_prop LIKE wuebs OCCURS 100 WITH HEADER LINE.

  DATAls_tvsa TYPE tvsa.

  DATAl_nrnr LIKE inri-nrrangenr.

  IF is_data-item[] IS NOT INITIAL.

    SELECT ebeln,ebelp,matnr,werks,meins

      INTO TABLE @DATA(lt_ekpo)

      FROM ekpo

      FOR ALL ENTRIES IN @is_data-item

      WHERE ebeln @is_data-item-ebeln

      AND   ebelp @is_data-item-ebelp.

    SORT lt_ekpo BY ebeln ebelp.

  ENDIF.

*工厂、销售单位不能为空

  LOOP AT is_data-item INTO DATA(ls_item).

    lt_komdlgn-lfart 'EL'.

    lt_komdlgn-vgtyp 'V'.

    lt_komdlgn-kzazu 'X'.

 

    lt_komdlgn-lifex is_data-lifex.

    lt_komdlgn-lifexpos ls_item-lifexpos.

    lt_komdlgn-lfdat is_data-lfdat.

    lt_komdlgn-lfuhr is_data-lfuhr"交货时间

    lt_komdlgn-traty is_data-traty"运输方式类型

    lt_komdlgn-vgbel ls_item-ebeln.

    lt_komdlgn-vgpos ls_item-ebelp.

    lt_komdlgn-lfimg ls_item-lfimg.

    lt_komdlgn-lichn ls_item-lichn.

    lt_komdlgn-yhjdh = ls_item-yhjdh.

    lt_komdlgn-yhjrs = ls_item-yhjrs.

    READ TABLE lt_ekpo INTO DATA(ls_ekpoBINARY SEARCH

      WITH KEY ebeln ls_item-ebeln ebelp ls_item-ebelp.

    IF sy-subrc 0.

      lt_komdlgn-matnr ls_ekpo-matnr.

      lt_komdlgn-werks ls_ekpo-werks.

      lt_komdlgn-vrkme ls_ekpo-meins.

    ENDIF.

    APPEND lt_komdlgn.

    CLEAR lt_komdlgn.

  ENDLOOP.

 

*** Not Available in 3.1

  CALL FUNCTION 'ME_CONFIRMATION_VIA_EDI'

    TABLES

      t_kom  lt_komdlgn

      errors lt_prop

    EXCEPTIONS

      OTHERS 1.

 

  ls_vbsk-mandt sy-mandt.

  ls_vbsk-ernam sy-uname.

  ls_vbsk-erdat sy-datum.

  ls_vbsk-uzeit sy-uzeit.

  ls_vbsk-smart 'L'.

 

  SELECT SINGLE INTO ls_tvsa

    FROM tvsa WHERE smart ls_vbsk-smart.

 

  l_nrnr ls_tvsa-numki.

  CALL FUNCTION 'NUMBER_GET_NEXT'

    EXPORTING

      nr_range_nr l_nrnr

      object      'RV_SAMMG'

    IMPORTING

      number      ls_vbsk-sammg

    EXCEPTIONS

      OTHERS      1.

 

  CALL FUNCTION 'GN_DELIVERY_CREATE'

    EXPORTING

      vbsk_i      ls_vbsk

    IMPORTING

      vbsk_e      ls_vbsk

    TABLES

      xkomdlgn    lt_komdlgn

      xvbfs       lt_vbfs

      xvbls       lt_vbls

      et_spe_vbfs lt_spe_vbfs.

 

  READ TABLE lt_spe_vbfs WITH KEY msgty 'E'.

  IF sy-subrc 0.

    ROLLBACK WORK.

 

    ev_type 'E'.

    CLEAR ev_msgtx.

    LOOP AT lt_spe_vbfs WHERE msgty CA  'EAX'.

      MESSAGE ID lt_spe_vbfs-msgid TYPE lt_spe_vbfs-msgty

          NUMBER lt_spe_vbfs-msgno

          INTO l_msgtext

          WITH lt_spe_vbfs-msgv1 lt_spe_vbfs-msgv2

               lt_spe_vbfs-msgv3 lt_spe_vbfs-msgv4.

      IF ev_msgtx IS INITIAL.

        ev_msgtx l_msgtext.

      ELSE.

        CONCATENATE ev_msgtx l_msgtext INTO ev_msgtx SEPARATED BY ';'.

      ENDIF.

    ENDLOOP.

 

    et_output-zitem 1.

    et_output-ztype ev_type.

    et_output-zmessage ev_msgtx.

    APPEND et_output.

 

  ELSE.

    READ TABLE lt_vbls INDEX 1.

    IF lt_vbls-vbeln_lif IS NOT INITIAL.

      l_vbeln lt_vbls-vbeln_lif.

      ev_type 'S'.

      ev_msgtx '创建成功'.

      et_output-zitem 1.

      et_output-ztype ev_type.

      et_output-zmessage l_vbeln.

      APPEND et_output.

    ENDIF.

  ENDIF.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值