说明一:item数量设定必须要同时使用schedule line 内表。
说明二:condition value更新,必须要设定logic_switch-cond_handl = 'X'.
附上源代码:
点击(此处)折叠或打开
-
REPORT zaiolos_bapi_quotation.
-
-
DATA : quotation_header_in LIKE bapisdhd1,
-
logic_switch LIKE bapisdls,
-
quotation_header_inx LIKE bapisdhd1x.
-
-
DATA : quotation_partners LIKE TABLE OF bapiparnr WITH HEADER LINE.
-
DATA : quotation_items_in LIKE TABLE OF bapisditm WITH HEADER LINE,
-
quotation_items_inx LIKE TABLE OF bapisditmx WITH HEADER LINE,
-
quotation_conditions_in LIKE TABLE OF bapicond WITH HEADER LINE,
-
quotation_conditions_inx LIKE TABLE OF bapicondx WITH HEADER LINE.
-
DATA : quotation_schedules_in LIKE TABLE OF bapischdl WITH HEADER LINE,
-
quotation_schedules_inx LIKE TABLE OF bapischdlx WITH HEADER LINE.
-
-
logic_switch-cond_handl = \'X\'.
-
quotation_header_in-purch_no_c = \'julei test po\'. \"Customer Ref No. 用户询价号
-
quotation_header_in-purch_date = \'20150417\'.\"EnquiryDate-询价日期
-
quotation_header_in-dun_date = \'20150415\'.\"PreDate-报价准备日期
-
quotation_header_in-doc_date = \'20150416\'.\"Document date报价日期
-
quotation_header_in-currency = \'CNY\'. \"Currency-报价币制
-
quotation_header_in-incoterms1 = \'CN\'. \"Inco Term-国贸条款1
-
quotation_header_in-incoterms2 = \'julei test\'. \"Inco Term-国贸条款2
-
quotation_header_in-qt_valid_f = \'20150417\'. \"Quotation Valid from-报价有效期起
-
quotation_header_in-qt_valid_t = \'20150430\'. \"Quotation Valid to-报价有效期止
-
quotation_header_in-created_by = sy-uname. \"ABB contact
-
quotation_header_in-ref_1 = \'REF \'. \"ABB Sales
-
quotation_header_in-sales_org = \'1000\'. \"Sales Organization
-
quotation_header_in-distr_chan = \'10\'. \"Distribution Channel
-
quotation_header_in-division = \'A1\'. \"Division
-
quotation_header_in-doc_type = \'ZQT\'. \"Sales Document Type
-
quotation_header_in-pmnttrms = \'0001\'. \"Payment Terms付款条款
-
-
CLEAR quotation_partners.
-
quotation_partners-partn_role = \'AG\'.
-
quotation_partners-partn_numb = \'0003000051\'.
-
APPEND quotation_partners.
-
-
quotation_partners-partn_role = \'YN\'.
-
quotation_partners-partn_numb = \'0003000051\'.
-
APPEND quotation_partners.
-
-
-
quotation_items_in-itm_number = \'000010\'.
-
quotation_items_in-material = \'3VCN-1861\'.
-
quotation_items_in-plant = \'1015\'.
-
quotation_items_in-short_text = \'金属软管(光纤)(1500,1英寸)\'.
-
quotation_items_in-target_qty = 1.
-
APPEND quotation_items_in.
-
-
-
quotation_items_inx-itm_number = \'000010\'.
-
quotation_items_inx-material = \'X\'.
-
quotation_items_inx-updateflag = \'I\'.
-
quotation_items_inx-plant = \'X\'.
-
quotation_items_inx-short_text = \'X\'.
-
quotation_items_inx-target_qty = \'X\'.
-
APPEND quotation_items_inx.
-
-
-
quotation_conditions_in-itm_number = \'000010\'.
-
quotation_conditions_in-cond_type = \'PR00\'.
-
quotation_conditions_in-cond_value = 10.
-
quotation_conditions_in-currency = \'CNY\'.
-
APPEND quotation_conditions_in.
-
-
quotation_conditions_inx-itm_number = \'000010\'.
-
quotation_conditions_inx-cond_type = \'PR00\'.
-
quotation_conditions_inx-updateflag = \'I\'.
-
quotation_conditions_inx-cond_value = \'X\'.
-
APPEND quotation_conditions_inx.
-
-
-
quotation_schedules_in-itm_number = \'000010\'.
-
quotation_schedules_in-req_qty = 1.
-
quotation_schedules_in-sched_line = 1.
-
-
APPEND quotation_schedules_in.
-
-
quotation_schedules_inx-itm_number = \'000010\'.
-
quotation_schedules_inx-req_qty = \'X\'.
-
quotation_schedules_inx-updateflag = \'I\'.
-
quotation_schedules_inx-sched_line = 1.
-
-
-
-
DATA : salesdocument LIKE bapivbeln-vbeln.
-
DATA : return LIKE TABLE OF bapiret2 WITH HEADER LINE.
-
-
-
CALL FUNCTION \'BAPI_QUOTATION_CREATEFROMDATA2\'
-
EXPORTING
-
* SALESDOCUMENTIN =
-
quotation_header_in = quotation_header_in
-
* QUOTATION_HEADER_INX =
-
* SENDER =
-
* BINARY_RELATIONSHIPTYPE = \' \'
-
* INT_NUMBER_ASSIGNMENT = \' \'
-
* BEHAVE_WHEN_ERROR = \' \'
-
logic_switch = logic_switch
-
* TESTRUN =
-
* CONVERT = \' \'
-
IMPORTING
-
salesdocument = salesdocument
-
TABLES
-
return = return[]
-
quotation_items_in = quotation_items_in[]
-
quotation_items_inx = quotation_items_inx[]
-
quotation_partners = quotation_partners[]
-
quotation_schedules_in = quotation_schedules_in[]
-
quotation_schedules_inx = quotation_schedules_inx[]
-
quotation_conditions_in = quotation_conditions_in[]
-
quotation_conditions_inx = quotation_conditions_inx[]
-
* QUOTATION_CFGS_REF =
-
* QUOTATION_CFGS_INST =
-
* QUOTATION_CFGS_PART_OF =
-
* QUOTATION_CFGS_VALUE =
-
* QUOTATION_CFGS_BLOB =
-
* QUOTATION_CFGS_VK =
-
* QUOTATION_CFGS_REFINST =
-
* QUOTATION_KEYS =
-
* QUOTATION_TEXT =
-
* EXTENSIONIN =
-
* PARTNERADDRESSES =
-
.
-
-
CALL FUNCTION \'BAPI_TRANSACTION_COMMIT\'
-
* EXPORTING
-
* WAIT =
-
* IMPORTING
-
* RETURN =
-
.
-
- WRITE salesdocument.
---------------------------------2015.05.28 更新 -----------------------------
在使用bapi更新quotation的condition时,发现没有更新成功,反而同一condition type又被添加了一次。
后发现,更新时不能像新建时如下操作。。
-
quotation_items_inx-itm_number = \'000010\'.
-
quotation_items_inx-material = \'X\'.
-
quotation_items_inx-updateflag = \'I\'.
-
quotation_items_inx-plant = \'X\'.
-
quotation_items_inx-short_text = \'X\'.
-
quotation_items_inx-target_qty = \'X\'.
-
APPEND quotation_items_inx.
-
-
-
quotation_conditions_in-itm_number = \'000010\'.
-
quotation_conditions_in-cond_type = \'PR00\'.
-
quotation_conditions_in-cond_value = 10.
-
quotation_conditions_in-currency = \'CNY\'.
- APPEND quotation_conditions_in.
需要从konv表中找出该condition对应的counter和step,填入上述的2个内表中,才能正确更新condition.