• PO BAPI "BAPI_PO_CREATE1"


     DATA: poheader LIKE  bapimepoheader,
            poheaderx LIKE  bapimepoheaderx,
            poitem  LIKE  bapimepoitem OCCURS WITH HEADER LINE,
            poitemx LIKE  bapimepoitemx OCCURS WITH HEADER LINE,
            poschedule  LIKE bapimeposchedule OCCURS WITH HEADER LINE,
            poschedulex LIKE bapimeposchedulx OCCURS WITH HEADER LINE,
            pomepocond  LIKE bapimepocond OCCURS WITH HEADER LINE,
            pomepocondx LIKE bapimepocondx OCCURS WITH HEADER LINE,
            potextitem  LIKE bapiekpotx OCCURS WITH HEADER LINE.

      CLEAR: poheader, poheaderx, poitem, poitemx,
             poschedule, poschedulex, pomepocond, pomepocondx, potextitem,
             return.
      REFRESH: poitem, poitemx, poschedule ,poschedulex, pomepocond, pomepocondx, potextitem, return.

      DATA: t_ebelp LIKE ekpo-ebelp.

    *****PO HEAD

          poheader-comp_code po_head-comp_code.
          poheader-doc_type  'Z3'.
          poheader-vendor    po_head-lifnr.
          poheader-purch_org po_head-purch_org.
          poheader-pur_group po_head-pur_group.
          poheader-doc_date  po_head-bedat.      "凭证日期

          poheaderx-comp_code 'X'.
          poheaderx-doc_type  'X'.
          poheaderx-vendor    'X'.
          poheaderx-purch_org 'X'.
          poheaderx-pur_group 'X'.
          poheaderx-doc_date  'X'.


    *-----PO item
          CLEAR: t_ebelp.
          LOOP AT po_item.
            poitem-po_item    t_ebelp + '10'.
            t_ebelp           poitem-po_item.
            poitem-material   po_item-matnr.
            poitem-plant      po_item-werks.
            poitem-stge_loc   po_item-lgort.
            poitem-quantity   po_item-menge.
            poitem-po_unit    po_item-meins.
            poitem-net_price  po_item-price.
            poitem-price_unit po_item-price_unit.
            poitem-po_price   '1'.
            poitem-info_rec   po_item-info_rec.
            poitem-bras_nbm   po_item-sb_no.
            poitem-val_type   po_item-lgort.
            poitem-preq_name  po_item-afnam.      "申请者
            poitem-trackingno po_item-trackingno.
            poitem-plan_del   po_item-plan_del.
            poitem-tax_code   po_item-tax_code.   "税码
            APPEND poitem.
            CLEAR: poitem.

            poitemx-po_item    t_ebelp.
            poitemx-delete_ind 'X'.
            poitemx-material   'X'.
            poitemx-plant      'X'.
            poitemx-stge_loc   'X'.
            poitemx-quantity   'X'.
            poitemx-po_unit    'X'.
            poitemx-net_price  'X'.
            poitemx-price_unit 'X'.
            poitemx-po_price   'X'.
            poitemx-info_rec   'X'.
            poitemx-bras_nbm   'X'.
            poitemx-val_type   'X'.
            poitemx-preq_name  'X'.               "申请者
            poitemx-trackingno 'X'.
            poitemx-plan_del   'X'.
            poitemx-tax_code   'X'.               "税码
            APPEND poitemx.
            CLEAR: poitemx.


            poschedule-po_item       t_ebelp.
            poschedule-sched_line    1.
            poschedule-quantity      po_item-menge.
            poschedule-delivery_date po_item-delivery_date.
            APPEND poschedule.
            CLEAR: poschedule.

            poschedulex-po_item       t_ebelp.
            poschedulex-sched_line    1.
            poschedulex-quantity      'X'.
            poschedulex-delivery_date 'X'.
            APPEND poschedulex.
            CLEAR: poschedulex.


            potextitem-po_item   t_ebelp.
            potextitem-text_id   'F01'.
            potextitem-text_line po_item-text_line.
            APPEND potextitem.
            CLEAR: potextitem.

    *-------加税
            pomepocond-itm_number   t_ebelp.
            pomepocond-condition_no '00001'.
            pomepocond-cond_type    'PBXX'.
            pomepocond-cond_value   =  po_item-price.
            pomepocond-cond_p_unt   =  po_item-price_unit.
            pomepocond-currency     'RMB'.
            pomepocond-change_id    'U'.
            APPEND pomepocond.
            CLEAR: pomepocond.

            pomepocondx-itm_number   t_ebelp.
            pomepocondx-condition_no '00001'.
            pomepocondx-cond_type    'X'.
            pomepocondx-cond_value   'X'.
            pomepocondx-cond_p_unt   'X'.
            pomepocondx-currency     'X'.
            pomepocondx-change_id    'X'.
            APPEND pomepocondx.
            CLEAR: pomepocondx.

            pomepocond-itm_number   t_ebelp.
            pomepocond-condition_no '00001'.
            pomepocond-cond_type    'ZVAT'.
            pomepocond-cond_value   po_item-cond_value.
            pomepocond-currency     '%'.
            pomepocond-change_id    'U'.
            APPEND pomepocond.
            CLEAR: pomepocond.

            pomepocondx-itm_number   t_ebelp.
            pomepocondx-condition_no '00001'.
            pomepocondx-cond_type    'X'.
            pomepocondx-cond_value   'X'.
            pomepocondx-currency     'X'.
            pomepocondx-change_id    'X'.
            APPEND pomepocondx.
            CLEAR: pomepocondx.
          ENDLOOP.

          CALL FUNCTION 'BAPI_PO_CREATE1'
            EXPORTING
              poheader         poheader
              poheaderx        poheaderx
              memory_complete  flag_temp
            IMPORTING
              exppurchaseorder ebeln
            TABLES
              return           return
              poitem           poitem
              poitemx          poitemx
              poschedule       poschedule
              poschedulex      poschedulex
              pocond           pomepocond
              pocondx          pomepocondx
              potextitem       potextitem.

          READ TABLE return WITH KEY type 'E'.
          IF sy-subrc 0. "有出错信息
            LOOP AT return WHERE type 'E'.
              CONCATENATE e_message ',' return-message INTO e_message.
              CONDENSE e_message.
            ENDLOOP.
          ELSE.
           

            CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
            EXPORTING
              wait 'X'.

            WAIT UP TO SECONDS.

          ENDIF.

  • 相关阅读:
    如何阅读大型项目的代码?
    常用法律常识链接
    ubuntu 常用参数设置
    访问内存过程小结
    Netfilter深度解剖
    linux中的namespace
    style="display:none"隐藏html的标签
    xshell用ssh连接VMware中的ubuntu
    rails rake和示例
    rails中render 和 redirect_to的区别, each只能用在数组中,如果只有一个或者零个项,用each方法会报错undefined method `each' for #...
  • 原文地址:https://www.cnblogs.com/rockyzjut/p/3170909.html
Copyright © 2020-2023  润新知