BAPI_QUOTATION_CREATEFROMDATA2 + 创建quotation + change quotation

通过bapi创建报价单,细节就不说明了,根据自己需要的字段来绑定内表数据。

说明一:item数量设定必须要同时使用schedule line 内表。
说明二:condition value更新,必须要设定logic_switch-cond_handl 'X'.

附上源代码:

点击(此处)折叠或打开

  1. REPORT zaiolos_bapi_quotation.

  2. DATA : quotation_header_in LIKE bapisdhd1,
  3.        logic_switch LIKE bapisdls,
  4.        quotation_header_inx LIKE bapisdhd1x.

  5. DATA : quotation_partners LIKE TABLE OF bapiparnr WITH HEADER LINE.
  6. DATA : quotation_items_in     LIKE TABLE OF    bapisditm WITH HEADER LINE,
  7.        quotation_items_inx LIKE TABLE OF bapisditmx WITH HEADER LINE,
  8.        quotation_conditions_in LIKE TABLE OF bapicond WITH HEADER LINE,
  9.        quotation_conditions_inx    LIKE TABLE OF    bapicondx WITH HEADER LINE.
  10. DATA : quotation_schedules_in     LIKE TABLE OF    bapischdl WITH HEADER LINE,
  11.        quotation_schedules_inx LIKE TABLE OF bapischdlx WITH HEADER LINE.

  12. logic_switch-cond_handl = \'X\'.
  13. quotation_header_in-purch_no_c = \'julei test po\'. \"Customer Ref No. 用户询价号
  14. quotation_header_in-purch_date = \'20150417\'.\"EnquiryDate-询价日期
  15. quotation_header_in-dun_date = \'20150415\'.\"PreDate-报价准备日期
  16. quotation_header_in-doc_date = \'20150416\'.\"Document date报价日期
  17. quotation_header_in-currency = \'CNY\'. \"Currency-报价币制
  18. quotation_header_in-incoterms1 = \'CN\'. \"Inco Term-国贸条款1
  19. quotation_header_in-incoterms2 = \'julei test\'. \"Inco Term-国贸条款2
  20. quotation_header_in-qt_valid_f = \'20150417\'. \"Quotation Valid from-报价有效期起
  21. quotation_header_in-qt_valid_t = \'20150430\'. \"Quotation Valid to-报价有效期止
  22. quotation_header_in-created_by = sy-uname. \"ABB contact
  23. quotation_header_in-ref_1 = \'REF \'. \"ABB Sales
  24. quotation_header_in-sales_org = \'1000\'. \"Sales Organization
  25. quotation_header_in-distr_chan = \'10\'. \"Distribution Channel
  26. quotation_header_in-division = \'A1\'. \"Division
  27. quotation_header_in-doc_type = \'ZQT\'. \"Sales Document Type
  28. quotation_header_in-pmnttrms = \'0001\'. \"Payment Terms付款条款

  29. CLEAR quotation_partners.
  30. quotation_partners-partn_role = \'AG\'.
  31. quotation_partners-partn_numb = \'0003000051\'.
  32. APPEND quotation_partners.

  33. quotation_partners-partn_role = \'YN\'.
  34. quotation_partners-partn_numb = \'0003000051\'.
  35. APPEND quotation_partners.


  36. quotation_items_in-itm_number = \'000010\'.
  37. quotation_items_in-material = \'3VCN-1861\'.
  38. quotation_items_in-plant = \'1015\'.
  39. quotation_items_in-short_text = \'金属软管(光纤)(1500,1英寸)\'.
  40. quotation_items_in-target_qty = 1.
  41. APPEND quotation_items_in.


  42. quotation_items_inx-itm_number = \'000010\'.
  43. quotation_items_inx-material = \'X\'.
  44. quotation_items_inx-updateflag = \'I\'.
  45. quotation_items_inx-plant = \'X\'.
  46. quotation_items_inx-short_text = \'X\'.
  47. quotation_items_inx-target_qty = \'X\'.
  48. APPEND quotation_items_inx.


  49. quotation_conditions_in-itm_number = \'000010\'.
  50. quotation_conditions_in-cond_type = \'PR00\'.
  51. quotation_conditions_in-cond_value = 10.
  52. quotation_conditions_in-currency = \'CNY\'.
  53. APPEND quotation_conditions_in.

  54. quotation_conditions_inx-itm_number = \'000010\'.
  55. quotation_conditions_inx-cond_type = \'PR00\'.
  56. quotation_conditions_inx-updateflag = \'I\'.
  57. quotation_conditions_inx-cond_value = \'X\'.
  58. APPEND quotation_conditions_inx.


  59. quotation_schedules_in-itm_number = \'000010\'.
  60. quotation_schedules_in-req_qty = 1.
  61. quotation_schedules_in-sched_line = 1.

  62. APPEND quotation_schedules_in.

  63. quotation_schedules_inx-itm_number = \'000010\'.
  64. quotation_schedules_inx-req_qty = \'X\'.
  65. quotation_schedules_inx-updateflag = \'I\'.
  66. quotation_schedules_inx-sched_line = 1.



  67. DATA : salesdocument LIKE bapivbeln-vbeln.
  68. DATA : return    LIKE TABLE OF    bapiret2 WITH HEADER LINE.


  69. CALL FUNCTION \'BAPI_QUOTATION_CREATEFROMDATA2\'
  70.   EXPORTING
  71. * SALESDOCUMENTIN =
  72.     quotation_header_in = quotation_header_in
  73. * QUOTATION_HEADER_INX =
  74. * SENDER =
  75. * BINARY_RELATIONSHIPTYPE = \' \'
  76. * INT_NUMBER_ASSIGNMENT = \' \'
  77. * BEHAVE_WHEN_ERROR = \' \'
  78.     logic_switch = logic_switch
  79. * TESTRUN =
  80. * CONVERT = \' \'
  81.   IMPORTING
  82.     salesdocument = salesdocument
  83.   TABLES
  84.     return = return[]
  85.     quotation_items_in = quotation_items_in[]
  86.     quotation_items_inx = quotation_items_inx[]
  87.     quotation_partners = quotation_partners[]
  88.     quotation_schedules_in = quotation_schedules_in[]
  89.     quotation_schedules_inx = quotation_schedules_inx[]
  90.     quotation_conditions_in = quotation_conditions_in[]
  91.     quotation_conditions_inx = quotation_conditions_inx[]
  92. * QUOTATION_CFGS_REF =
  93. * QUOTATION_CFGS_INST =
  94. * QUOTATION_CFGS_PART_OF =
  95. * QUOTATION_CFGS_VALUE =
  96. * QUOTATION_CFGS_BLOB =
  97. * QUOTATION_CFGS_VK =
  98. * QUOTATION_CFGS_REFINST =
  99. * QUOTATION_KEYS =
  100. * QUOTATION_TEXT =
  101. * EXTENSIONIN =
  102. * PARTNERADDRESSES =
  103.   .

  104. CALL FUNCTION \'BAPI_TRANSACTION_COMMIT\'
  105. * EXPORTING
  106. * WAIT =
  107. * IMPORTING
  108. * RETURN =
  109.           .

  110. WRITE salesdocument.
仅供参考使用
---------------------------------2015.05.28 更新 -----------------------------
在使用bapi更新quotation的condition时,发现没有更新成功,反而同一condition type又被添加了一次。
后发现,更新时不能像新建时如下操作。。
  1. quotation_items_inx-itm_number = \'000010\'.
  2. quotation_items_inx-material = \'X\'.
  3. quotation_items_inx-updateflag = \'I\'.
  4. quotation_items_inx-plant = \'X\'.
  5. quotation_items_inx-short_text = \'X\'.
  6. quotation_items_inx-target_qty = \'X\'.
  7. APPEND quotation_items_inx.


  8. quotation_conditions_in-itm_number = \'000010\'.
  9. quotation_conditions_in-cond_type = \'PR00\'.
  10. quotation_conditions_in-cond_value = 10.
  11. quotation_conditions_in-currency = \'CNY\'.
  12. APPEND quotation_conditions_in.

需要从konv表中找出该condition对应的counter和step,填入上述的2个内表中,才能正确更新condition.
请使用浏览器的分享功能分享到微信等