‎2010 Feb 19 6:51 AM
Dear all,
Hi, Here our materials are configurable . Once the quotation is created with minimum fields by default all the characteristics will come . We have a chance to change the characteristics .I tried to create a variant configuration using bapi. By using this code i am able to create quotation . But the characteristics are not created from this . Please share you r ideas on this .
DATA: tab_items_inx TYPE TABLE OF bapisditmx,
wa_items_inx TYPE bapisditmx.
DATA: tab_schedules_inx TYPE TABLE OF bapischdlx,
wa_schedules_inx TYPE bapischdlx.
DATA: t_quote_header_in TYPE bapisdhd1. "ORDER_HEADER_IN
DATA: tab_items TYPE TABLE OF bapisditm, "ORDER_ITEMS_IN
wa_item TYPE bapisditm.
DATA: tab_items_sched TYPE TABLE OF bapischdl, "ORDER_SCHEDULES_IN
wa_items_sched TYPE bapischdl.
DATA: tab_quote_ref TYPE TABLE OF bapicucfg, "ORDER_CFGS_REF
wa_quote_ref LIKE LINE OF tab_quote_ref.
DATA: tab_quote_refinst TYPE TABLE OF bapicuref, "ORDER_CFGS_REFINST
wa_quote_refinst TYPE bapicuref.
DATA: tab_quote_inst TYPE TABLE OF bapicuins, "ORDER_CFGS_INST
wa_quote_inst LIKE LINE OF tab_quote_inst.
DATA: tab_quote_partof TYPE TABLE OF bapicuprt, "ORDER_CFGS_PART_OF
wa_quote_partof LIKE LINE OF tab_quote_partof.
DATA: tab_quote_value TYPE TABLE OF bapicuval, "ORDER_CFGS_VALUE
wa_quote_value LIKE LINE OF tab_quote_value.
DATA: wa_quote_partnr TYPE bapiparnr,
tab_quote_partnr TYPE TABLE OF bapiparnr. "ORDER_PARTNERS
DATA return TYPE bapiret2 OCCURS 1 WITH HEADER LINE . "RETURN PARAMETERS
DATA: conf_id TYPE char6 VALUE '000010',
inst_id TYPE char8 VALUE '00000001',
salesordernumber TYPE vbeln.
**************************************************************************************************
**************************************************************************************************
t_quote_header_in-sales_org = '1000'.
t_quote_header_in-division = '10'.
t_quote_header_in-distr_chan = '10'.
t_quote_header_in-purch_date = sy-datum.
t_quote_header_in-doc_type = 'YMEA'.
t_quote_header_in-req_date_h = '20102004'.
*t_quote_header_in-po_method = 'ES'.
t_quote_header_in-purch_no_c = '3456'.
**********************************************************************
*Fill partner
wa_quote_partnr-partn_role = 'AG'.
wa_quote_partnr-partn_numb = '0000100001'.
INSERT wa_quote_partnr INTO TABLE tab_quote_partnr.
wa_quote_partnr-partn_role = 'WE'.
wa_quote_partnr-partn_numb = '0000100001'.
INSERT wa_quote_partnr INTO TABLE tab_quote_partnr.
*************************************************************************
*Fill items
wa_item-itm_number = '000010'.
wa_item-material = 'C100000'.
wa_item-sales_unit = 'EA'.
*wa_item-inst_id = inst_id.
*wa_item-config_id = conf_id.
*wa_item-po_itm_no = '000010'.
*wa_item-target_qty = 1.
*wa_item-PLANT = '1000'.
INSERT wa_item INTO TABLE tab_items.
**********************************************************************
*********************************************************************
wa_items_sched-itm_number = '000010'.
wa_items_sched-req_qty = 1.
wa_items_sched-sched_line = 1.
INSERT wa_items_sched INTO TABLE tab_items_sched.
*************************************************************************
**************************************************************************
configuration
wa_quote_ref-posex = '000010'.
wa_quote_ref-root_id = inst_id.
wa_quote_ref-config_id = conf_id.
INSERT wa_quote_ref INTO TABLE tab_quote_ref.
***********************************************************************************************************
*Refinst
wa_quote_refinst-posex = '000010'.
wa_quote_refinst-config_id = conf_id.
wa_quote_refinst-inst_id = inst_id.
INSERT wa_quote_refinst INTO TABLE tab_quote_refinst.
*********************************************************************
***********************************************************************
wa_quote_inst-inst_id = inst_id.
wa_quote_inst-config_id = conf_id.
wa_quote_inst-obj_type = 'MARA'.
wa_quote_inst-class_type = 300.
*wa_quote_inst-obj_key = '000000000000006582'. "KSSK-OBJEK
wa_quote_inst-obj_key = 'c100000'. "KSSK-OBJEK
wa_quote_inst-quantity = 1.
INSERT wa_quote_inst INTO TABLE tab_quote_inst.
************************************************************************************
************************************************************************************
*Attribute values
wa_quote_value-config_id = conf_id.
wa_quote_value-inst_id = inst_id.
wa_quote_value-charc = 'COOLANT_CHIP_DX200'. "cawn-atwrt
wa_quote_value-value = '1'. "cawn-atinn
INSERT wa_quote_value INTO TABLE tab_quote_value.
********************************************************************
********************************************************************
wa_quote_value-config_id = conf_id.
wa_quote_value-inst_id = inst_id.
wa_quote_value-charc = 'CONTROLLER_DX200'.
wa_quote_value-value = '1'.
INSERT wa_quote_value INTO TABLE tab_quote_value.
******************************************************************
*****************************************************************
wa_quote_value-config_id = conf_id.
wa_quote_value-inst_id = inst_id.
wa_quote_value-charc = 'QUILL_DX200'.
wa_quote_value-value = '1'.
INSERT wa_quote_value INTO TABLE tab_quote_value.
wa_quote_value-config_id = conf_id.
wa_quote_value-inst_id = inst_id.
wa_quote_value-charc = 'CALMPING_DX200'.
wa_quote_value-value = '1'.
******************************************************************************
*********************************************************************************
INSERT wa_quote_value INTO TABLE tab_quote_value.
wa_quote_value-config_id = conf_id.
wa_quote_value-inst_id = inst_id.
wa_quote_value-charc = 'HYDRAULIC_DX200'.
wa_quote_value-value = '1'.
***********************************************************************
***********************************************************************
INSERT wa_quote_value INTO TABLE tab_quote_value.
wa_quote_value-config_id = conf_id.
wa_quote_value-inst_id = inst_id.
wa_quote_value-charc = 'TURRET_DX200'.
wa_quote_value-value = '1'.
*****************************************************************
INSERT wa_quote_value INTO TABLE tab_quote_value.
wa_quote_value-config_id = conf_id.
wa_quote_value-inst_id = inst_id.
wa_quote_value-charc = 'FEEDMOTOR_DX200'.
wa_quote_value-value = '1'.
INSERT wa_quote_value INTO TABLE tab_quote_value.
*****************************************************************
*****************************************************************
wa_quote_value-config_id = conf_id.
wa_quote_value-inst_id = inst_id.
wa_quote_value-charc = 'PACKING'.
wa_quote_value-value = '1'.
INSERT wa_quote_value INTO TABLE tab_quote_value.
*****************************************************************
*****************************************************************
wa_quote_value-config_id = conf_id.
wa_quote_value-inst_id = inst_id.
wa_quote_value-charc = 'SPINDLEMOTOR_DX200'.
wa_quote_value-value = '1'.
INSERT wa_quote_value INTO TABLE tab_quote_value.
*****************************************************************
*****************************************************************
wa_quote_value-config_id = conf_id.
wa_quote_value-inst_id = inst_id.
wa_quote_value-charc = 'DOOR_DX200'.
wa_quote_value-value = '1'.
INSERT wa_quote_value INTO TABLE tab_quote_value.
*****************************************************************
*****************************************************************
wa_items_inx-itm_number = 'X'.
wa_items_inx-material = 'X'.
wa_items_inx-SALES_UNIT = 'X'.
wa_items_inx-inst_id = 'X'.
wa_items_inx-config_id = 'X'.
wa_items_inx-PO_ITM_NO = 'X'.
insert wa_items_inx into table tab_items_inx.
* wa_schedules_inx-itm_number = 'X'.
wa_schedules_inx-sched_line = 'X'.
wa_schedules_inx-req_qty = 'X'.
insert wa_schedules_inx into table tab_schedules_inx
*****************************************************************
*****************************************************************
*CALL bapi
CALL FUNCTION 'BAPI_QUOTATION_CREATEFROMDATA2'
EXPORTING quotation_header_in = t_quote_header_in
behave_when_error = 'P'
IMPORTING
salesdocument = salesordernumber
TABLES
quotation_items_in = tab_items
quotation_schedules_in = tab_items_sched
quotation_items_inx = tab_items_inx
quotation_schedules_inx = tab_schedules_inx
quotation_partners = tab_quote_partnr
quotation_cfgs_ref = tab_quote_ref
quotation_cfgs_refinst = tab_quote_refinst
quotation_cfgs_inst = tab_quote_inst
quotation_cfgs_part_of = tab_quote_partof
quotation_cfgs_value = tab_quote_value
return = return.
*commit
*****************************************************************]
*****************************************************************
IF salesordernumber NE ''.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
*****************************************************************************************
This is the code written by me . Bu this is not giving me proper result. Please share your ideas if any body work on this.
Regards,
Madhu.
ENDIF.
LOOP AT return.
WRITE:/ return-message COLOR 1,
return-number COLOR 2,
return-message_v1 COLOR 3,
return-message_v2 COLOR 4,
return-message_v3 COLOR 5,
return-message_v4 COLOR 6,
return-parameter COLOR 7,
return-id COLOR 1,
return-log_no COLOR 2,
return-field COLOR 3.
ENDLOOP.
WRITE : salesordernumber COLOR 5.
‎2010 Feb 23 9:00 AM
‎2021 Jul 19 9:25 PM
Por favor cual es el campo de vigencia de la cotización: VBAK-ANGDT y VBAK-BNDDT.
Gracias