Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Bapi_quotation_createfromdata2

madhu_vadlamani
Active Contributor
0 Likes
3,460

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.

2 REPLIES 2
Read only

madhu_vadlamani
Active Contributor
0 Likes
2,403

BY trial and error method i got the solution.

Thank you.

Read only

0 Likes
2,403

Por favor cual es el campo de vigencia de la cotización: VBAK-ANGDT y VBAK-BNDDT.

Gracias