【ABAP】VA21创建报价单

*&---------------------------------------------------------------------*
*& Report YTEST7
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ytest7.

DATA:ls_order_header_in   TYPE bapisdhd1,
     lt_order_partners    TYPE TABLE OF bapiparnr,
     lt_order_items_in    TYPE TABLE OF bapisditm,
     lt_order_items_sched TYPE TABLE OF bapischdl,
     lt_return            TYPE TABLE OF bapiret2,
     ls_return            TYPE bapiret2.
DATA:lv_vbeln TYPE bapivbeln-vbeln.

CLEAR:ls_order_header_in.
ls_order_header_in = VALUE #( doc_type   = 'TA'                   "订单类型
                              sales_org  = '1100'                 "销售组织
                              distr_chan = '10'                   "分销渠道
                              division   = '00'                   "产品组
                             ).

REFRESH:lt_order_partners.
lt_order_partners = VALUE #( ( partn_role = 'AG'                  "合作伙伴职能
                               partn_numb = '0000100010'          "合作伙伴编号
                              )
                             ( partn_role = 'WE'
                               partn_numb = '0000100010'
                              ) ).

REFRESH:lt_order_items_in.
lt_order_items_in = VALUE #( ( itm_number = '000010'              "行项目
                               material = '000000021901000010'    "物料编号
                              ) ).

REFRESH:lt_order_items_sched.
lt_order_items_sched = VALUE #( ( itm_number = '000010'           "行项目
                                  req_qty = '1'                   "数量
                              ) ).


CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
  EXPORTING
    order_header_in    = ls_order_header_in
    testrun            = ''
  IMPORTING
    salesdocument      = lv_vbeln
  TABLES
    return             = lt_return
    lt_order_items_in  = lt_order_items_in
    lt_order_partners  = lt_order_partners
    order_schedules_in = lt_order_items_sched.

LOOP AT lt_return ASSIGNING FIELD-SYMBOL(<fs_return>) WHERE type CA 'EAX'.
  EXIT.
ENDLOOP.
IF sy-subrc = 0.
  CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ELSE.
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      wait = 'X'.
ENDIF.

 

posted @ 2021-09-06 15:40  littlefoam  阅读(324)  评论(0)    收藏  举报