I get this code from someone in the SAP answer forum. Maybe this code will be useful for someone else.
PROGRAM zsdi_salesdoc_upload.
*&---------------------------------------------------------------------*
*& TABLES DECLARATIONS
*&---------------------------------------------------------------------*
TABLES : vbak,vbap.
*&---------------------------------------------------------------------*
*& TYPES POOLS DECLARATIONS
*&---------------------------------------------------------------------*
TYPE-POOLS: slis.
*&---------------------------------------------------------------------*
*& TYPES DECLARATIONS
*&---------------------------------------------------------------------*
TYPES : BEGIN OF ty_salesdoc,
**********Header
ref_no TYPE txz01_dcm, "Reference Doc No
doc_type TYPE auart, "Document Type
sales_org TYPE vkorg, "Sales Organization
distr_chan TYPE vtweg, "Distribution Channel
division TYPE spart, "Division
sales_off TYPE vkbur, "Sales Office
ref_doc TYPE vgbel, "Reference Document Number
sold TYPE kunnr, "Sold to Party
ship TYPE kunnr, "Ship to Party
purch_no_c TYPE bstkd, "PO Number
purch_date TYPE bstdk, "PO Date
qt_valid_f TYPE angdt_v, "Valid From
qt_valid_t TYPE bnddt, "Valid To
pmnttrms TYPE dzterm, "Terms Of Payment
dlvschduse TYPE abrvw, "Usage
version TYPE vsnmr_v, "Version
cust_group TYPE kdgrp, "Customer Group
ord_reason TYPE augru, "Order Reason
**********Long Texts
terms_cond TYPE string, "Terms & Conditions
addn_text TYPE string, "Additional Text
head_text TYPE string, "Header Text
footer TYPE string, "Footer details
mix_design TYPE string, "Mix Design Created
quote_progress TYPE string, "Quote In Progress
sent_cust TYPE string, "Sent To Customer
create_mix TYPE string, "Create Mix Design
technical_change TYPE string, "Technical Changes
commercial_change TYPE string, "Commercial Changes
mix_approve TYPE string, "Mix Design Approve
quote_rejected TYPE string, "Quote Rejected
quote_accepted TYPE string, "Quote Accepted
**********Partner Function
partn_numb TYPE kunnr, "Partner Function Employee Responsible
**********Line Item
itm_number TYPE posnr_va, "Item Number
material TYPE matnr, "Material
req_qty TYPE wmeng, "Order Quantity
plant TYPE werks_d, "Plant
ship_point TYPE vstel, "Shipping Point
**********Customer Data
zsdclient TYPE zsd_del_cleint, "Client
zsdconsultant TYPE zsd_del_consultant, "Consultant
projspec TYPE zsd_del_projspec, "Project Specification
contractor TYPE zsd_del_addtab_contrct, "Contractor
subcontractor TYPE zsd_del_addtab_subcnt, "Sub Contractor
plant_addtab TYPE name1, "Plant
date_addtab TYPE ersda, "Date
aircontent TYPE zsd_del_aircontent, "Air Content (assumed) %
placeslump TYPE zsd_del_placeslump, "Target Slump at Site(+/- mm)
targetcontemp TYPE zsd_del_targetcontemp, "Target Concrete Temperature (0 C)
minwetmix TYPE zsd_del_minwetmix, "Minimum wet mixing time (sec.)
chemdosage TYPE zsd_del_chemdosage, "Chemical admixture dosage
agg_cement_ratio TYPE zsd_del_addtab_chbox, "Aggregate-Cementitious Ratio(volume)
hydrated_paste TYPE zsd_del_addtab_chbox, "Hydrated paste (% by volume)
agg_cement_ratio_mass TYPE zsd_del_addtab_chbox, "Aggregate-Cementitious Ratio(mass)
fineness_modulus_sand TYPE zsd_del_addtab_chbox, "Fineness Modulus of combined sand
fineness_modulus_agg TYPE zsd_del_addtab_chbox, "Fineness Modulus of combined agg.
total_sand TYPE zsd_del_addtab_chbox, "Total Sand(by mass of total agg.)
**********Customer Data Table
code TYPE zsd_del_code, "Code
spec TYPE zsd_del_spec, "Specification
tar_design TYPE zsd_del_targdesign, "Target Design
**********Characteristics
charc TYPE cu_charc, "Characteristics Name
value TYPE cux_value, "Value From
**********Condition Types
cond_type TYPE kscha, "Condition Type
cond_value TYPE bapikbetr1, "Condition Value
END OF ty_salesdoc.
TYPES : BEGIN OF ty_add_data,
itm_number TYPE posnr_va, "Item Number
zsdclient TYPE zsd_del_cleint, "Client
zsdconsultant TYPE zsd_del_consultant, "Consultant
projspec TYPE zsd_del_projspec, "Project Specification
contractor TYPE zsd_del_addtab_contrct, "Contractor
subcontractor TYPE zsd_del_addtab_subcnt, "Sub Contractor
plant_addtab TYPE name1, "Plant
date_addtab TYPE ersda, "Date
aircontent TYPE zsd_del_aircontent, "Air Content (assumed) %
placeslump TYPE zsd_del_placeslump, "Target Slump at Site(+/- mm)
targetcontemp TYPE zsd_del_targetcontemp, "Target Concrete Temperature (0 C)
minwetmix TYPE zsd_del_minwetmix, "Minimum wet mixing time (sec.)
chemdosage TYPE zsd_del_chemdosage, "Chemical admixture dosage
agg_cement_ratio TYPE zsd_del_addtab_chbox, "Aggregate-Cementitious Ratio(volume)
hydrated_paste TYPE zsd_del_addtab_chbox, "Hydrated paste (% by volume)
agg_cement_ratio_mass TYPE zsd_del_addtab_chbox, "Aggregate-Cementitious Ratio(mass)
fineness_modulus_sand TYPE zsd_del_addtab_chbox, "Fineness Modulus of combined sand
fineness_modulus_agg TYPE zsd_del_addtab_chbox, "Fineness Modulus of combined agg.
total_sand TYPE zsd_del_addtab_chbox, "Total Sand(by mass of total agg.)
END OF ty_add_data.
TYPES : BEGIN OF ty_final,
ref_no TYPE string,
vbeln TYPE vbak-vbeln,
type TYPE string,
error TYPE string,
END OF ty_final.
*&---------------------------------------------------------------------*
*& INTERNAL TABLE DECLARATIONS
*&---------------------------------------------------------------------*
DATA : it_salesdoc TYPE TABLE OF ty_salesdoc, "Sales Document Data from Excel
it_salesdoc_h TYPE TABLE OF ty_salesdoc, "Sales Document Data from Excel
it_salesdoc_l TYPE TABLE OF ty_salesdoc, "Sales Document Data from Excel
it_zsdt_add_tab TYPE TABLE OF zsdt_add_tab,
it_add TYPE TABLE OF ty_add_data.
DATA : it_final TYPE TABLE OF ty_final. "Sales Document Uploaded in system
*****************************BAPI Parameters**************************
DATA : sales_header_in TYPE bapisdhd1,
sales_header_inx TYPE bapisdhd1x,
salesdocument_ex TYPE bapivbeln-vbeln,
it_sales_items_in TYPE TABLE OF bapisditmbos,
it_sales_items_inx TYPE TABLE OF bapisditmxbos,
it_sales_partners TYPE TABLE OF bapiparnr,
it_sales_schedules_in TYPE TABLE OF bapischdl,
it_sales_schedules_inx TYPE TABLE OF bapischdlx,
it_sales_conditions_in TYPE TABLE OF bapicond,
it_sales_cfgs_ref TYPE TABLE OF bapicucfg,
it_sales_cfgs_inst TYPE TABLE OF bapicuins,
it_sales_cfgs_value TYPE TABLE OF bapicuval,
it_sales_cfgs_refinst TYPE TABLE OF bapicuref,
it_sales_text TYPE TABLE OF bapisdtext.
DATA : it_return TYPE TABLE OF bapiret2, "Return Parameter
it_return_commit TYPE bapiret2.
*********************************************************************
*&---------------------------------------------------------------------*
*& WORK AREA DECLARATIONS
*&---------------------------------------------------------------------*
DATA : wa_salesdoc TYPE ty_salesdoc, "Sales Document Data from Excel
wa_salesdoc_h TYPE ty_salesdoc, "Sales Document Data from Excel
wa_salesdoc_l TYPE ty_salesdoc, "Sales Document Data from Excel
wa_zsdt_add_tab TYPE zsdt_add_tab,
wa_add TYPE ty_add_data.
DATA : wa_final TYPE ty_final. "Sales Document Uploaded in system
*****************************BAPI Parameters**************************
DATA : wa_sales_items_in TYPE bapisditmbos,
wa_sales_items_inx TYPE bapisditmxbos,
wa_sales_partners TYPE bapiparnr,
wa_sales_schedules_in TYPE bapischdl,
wa_sales_schedules_inx TYPE bapischdlx,
wa_sales_conditions_in TYPE bapicond,
wa_sales_cfgs_ref TYPE bapicucfg,
wa_sales_cfgs_inst TYPE bapicuins,
wa_sales_cfgs_value TYPE bapicuval,
wa_sales_cfgs_refinst TYPE bapicuref,
wa_sales_text TYPE bapisdtext.
DATA : wa_return TYPE bapiret2. "Return Parameter
**********************************************************************
*&---------------------------------------------------------------------*
*& VARIABLE DECLARATIONS
*&---------------------------------------------------------------------*
DATA : lv_subrc TYPE sy-subrc,
business_object TYPE bapiusw01-objtype,
lv_posnr TYPE posnr,
lv_line TYPE etenr,
lv_config TYPE posnr,
lv_instance TYPE co_rmzhl,
lv_waerk TYPE waerk,
lv_srno TYPE i.
DATA : it_line TYPE TABLE OF tline,
wa_line TYPE tline,
lv_text(1024) TYPE c,
lv_land1 TYPE land1_gp,
lv_waers TYPE waers_005.
*&---------------------------------------------------------------------*
*& ALV DECLRATIONS *
*&---------------------------------------------------------------------*
* FIELDCATALOG DECLARATION
DATA: wa_fieldcat TYPE slis_fieldcat_alv,
it_fieldcat TYPE slis_t_fieldcat_alv,
layout TYPE TABLE OF slis_layout_alv WITH HEADER LINE ,
wa_sort TYPE slis_sortinfo_alv,
it_sort TYPE slis_t_sortinfo_alv,
wa_header TYPE slis_listheader,
it_header TYPE slis_t_listheader.
*&---------------------------------------------------------------------*
*& SELECTION SCREEN
*&---------------------------------------------------------------------*
SELECTION-SCREEN : BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS : p_file TYPE rlgrap-filename.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN COMMENT /1(79) tscomm.
SELECTION-SCREEN COMMENT /1(79) tnote.
SELECTION-SCREEN COMMENT /1(79) tecomm.
PARAMETERS : r1 TYPE c RADIOBUTTON GROUP rg1 DEFAULT 'X' USER-COMMAND app,
r2 TYPE c RADIOBUTTON GROUP rg1.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN COMMENT /1(79) t1.
SELECTION-SCREEN COMMENT /1(79) t2.
SELECTION-SCREEN COMMENT /1(79) t3.
SELECTION-SCREEN COMMENT /1(79) t4.
SELECTION-SCREEN COMMENT /1(79) t5.
SELECTION-SCREEN COMMENT /1(79) t6.
SELECTION-SCREEN COMMENT /1(79) t7.
SELECTION-SCREEN COMMENT /1(79) t8.
SELECTION-SCREEN COMMENT /1(79) t9.
SELECTION-SCREEN COMMENT /1(79) t10.
SELECTION-SCREEN COMMENT /1(79) t11.
SELECTION-SCREEN COMMENT /1(79) t12.
SELECTION-SCREEN COMMENT /1(79) t13.
SELECTION-SCREEN COMMENT /1(79) t14.
SELECTION-SCREEN : END OF BLOCK b1.
*&---------------------------------------------------------------------*
*& INITIALIZATION
*&---------------------------------------------------------------------*
INITIALIZATION.
tscomm = '************************************************************************'.
tecomm = '************************************************************************'.
tnote = 'Note :- Program is used to Upload Sales Document with Variant Configuration'.
t1 = 'Open Doc No|Doc Type|Sales Org|Dist Channel|Division|Sales Office|Ref Doc No.|'.
t2 = 'Sold To Party|Ship To Party|PO No.|PO Date|Valid From|Valid To|Terms Of Payment|'.
t3 = 'Usage|Version|Customer Group|Order Reason|Terms & Cond|Add Text|Header Text|'.
t4 = 'Footer Details|Mix Details Created|Quote in progress|Sent To customer|'.
t5 = 'Create Mix Details|Technical Changes|Commercial Changes|Mix Design Approved|'.
t6 = 'Quote Rejected|Quote accepted|Partner function ZM|Item No.|Material|'.
t7 = 'Order Qty|Plant|Shipping Point|Client|Consultant|Project Specification|'.
t8 = 'Contractor|Sub-Contractor|Plant|Date|Air Content (assumed) %|'.
t9 = 'Target Slump at Site(+/- mm)|Target Concrete Temperature (0 C)|'.
t10 = 'Minimum wet mixing time (sec.)|Chemical admixture dosage|'.
t11 = 'Aggregate-Cementitious Ratio(volume)|Hydrated paste (% by volume)|'.
t12 = 'Aggregate-Cementitious Ratio(mass)|Fineness Modulus of combined sand|'.
t13 = 'Fineness Modulus of combined agg|Total Sand(by mass of total agg.)|'.
t14 = 'Code|Specification|Target Design|Characteristics|Value|Cond Type|Value|'.
*&---------------------------------------------------------------------*
*& AT SELECTION_SCREEN ON VALUE REQUEST
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
PERFORM f4_file.
*&---------------------------------------------------------------------*
*& AT SELECTION SCREEN
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN .
IF sy-ucomm EQ 'ONLI'.
PERFORM get_data.
ENDIF.
*&---------------------------------------------------------------------*
*& START OF SELECTION
*&---------------------------------------------------------------------*
START-OF-SELECTION.
*&---------------------------------------------------------------------*
*& END OF SELECTION
*&---------------------------------------------------------------------*
END-OF-SELECTION.
PERFORM final_data.
PERFORM disp_output.
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_data .
FIELD-SYMBOLS : <l_fs> TYPE any.
DATA : p_filename TYPE ibipparms-path,
it_type TYPE truxs_t_text_data.
CLEAR : it_salesdoc[].
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
* I_FIELD_SEPERATOR =
i_line_header = 'X'
i_tab_raw_data = it_type
i_filename = p_file
TABLES
i_tab_converted_data = it_salesdoc
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
IF it_salesdoc[] IS INITIAL.
MESSAGE 'File Conversion Error' TYPE 'E'.
ENDIF.
ENDFORM. " GET_DATA
*&---------------------------------------------------------------------*
*& Form FINAL_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM final_data .
break abap1.
it_salesdoc_h[] = it_salesdoc[].
it_salesdoc_l[] = it_salesdoc[].
DELETE ADJACENT DUPLICATES FROM it_salesdoc_h COMPARING ref_no.
DELETE ADJACENT DUPLICATES FROM it_salesdoc_l COMPARING ref_no itm_number.
PERFORM create_salesdocument.
ENDFORM. " FINAL_DATA
*&---------------------------------------------------------------------*
*& Form DISP_OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM disp_output .
******* Important : Only 9 values can Pass to macro *******
PERFORM sub_create_fcat USING : '1' 'Reference Document' 'REF_NO' '' '' .
PERFORM sub_create_fcat USING : '2' 'Sales Document No Generated' 'VBELN' '' '' .
PERFORM sub_create_fcat USING : '3' 'Type' 'TYPE' '' '' .
PERFORM sub_create_fcat USING : '4' 'Error' 'ERROR' '' '' .
** **FOR LAYOUT
layout-zebra = 'X'.
layout-info_fieldname = 'COLOR'.
layout-colwidth_optimize = 'X'.
APPEND layout .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
* I_CALLBACK_USER_COMMAND = ' '
i_callback_top_of_page = 'SUB_TOP_OF_PAGE'
* I_GRID_TITLE =
is_layout = layout
it_fieldcat = it_fieldcat
i_default = 'X'
i_save = 'A'
it_sort = it_sort
TABLES
t_outtab = it_final
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
* IMPLEMENT SUITABLE ERROR HANDLING HERE
ENDIF.
ENDFORM. " DISP_OUTPUT
*&---------------------------------------------------------------------*
*& FORM SUB_CREATE_FCAT
*&---------------------------------------------------------------------*
* TEXT
*----------------------------------------------------------------------*
* -->P_0126 TEXT
* -->P_0127 TEXT
* -->P_0128 TEXT
* -->P_0129 TEXT
* -->P_0130 TEXT
*----------------------------------------------------------------------*
FORM sub_create_fcat USING p_col TYPE char2
p_text TYPE char40
p_fnam TYPE slis_fieldcat_alv-fieldname "char10
p_sum TYPE char1
p_out TYPE char1.
wa_fieldcat-col_pos = p_col.
wa_fieldcat-seltext_l = p_text.
wa_fieldcat-fieldname = p_fnam.
wa_fieldcat-do_sum = p_sum.
wa_fieldcat-no_out = p_out.
wa_fieldcat-no_zero = 'X'.
* wa_fieldcat-outputlen = 10.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
ENDFORM. " SUB_CREATE_FCAT
*&---------------------------------------------------------------------*
*& Form SUB_TOP_OF_PAGE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM sub_top_of_page .
DATA : lv_char(60) TYPE c .
REFRESH it_header.
CLEAR wa_header.
wa_header-typ = 'H'.
wa_header-info = 'Uploading of Open Quotation Result'.
APPEND wa_header TO it_header.
CLEAR wa_header.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_header
* I_LOGO =
* I_END_OF_LIST_GRID =
* I_ALV_FORM =
.
ENDFORM. " SUB_TOP_OF_PAGE
*&---------------------------------------------------------------------*
*& Form F4_FILE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f4_file .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = sy-repid
dynpro_number = sy-dynnr
field_name = 'FILENAME'
IMPORTING
file_name = p_file.
ENDFORM. " F4_FILE
*&---------------------------------------------------------------------*
*& Form CALL_CREATE_BAPI
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_LV_SUBRC text
*----------------------------------------------------------------------*
FORM call_create_bapi CHANGING p_lv_subrc.
*****For Quotation
business_object = 'BUS2031'.
*****Sales Order
* business_object = 'BUS2032'.
CALL FUNCTION 'BS01_SALESDOCUMENT_CREATE'
EXPORTING
* SALESDOCUMENT =
sales_header_in = sales_header_in
sales_header_inx = sales_header_inx
* SENDER =
* BINARY_RELATIONSHIPTYPE = ' '
* INT_NUMBER_ASSIGNMENT = ' '
* BEHAVE_WHEN_ERROR = ' '
* LOGIC_SWITCH = ' '
* business_object = business_object
* TESTRUN =
* COSTINGVARIANT =
IMPORTING
salesdocument_ex = salesdocument_ex
TABLES
return = it_return
sales_items_in = it_sales_items_in
sales_items_inx = it_sales_items_inx
sales_partners = it_sales_partners
sales_schedules_in = it_sales_schedules_in
sales_schedules_inx = it_sales_schedules_inx
sales_conditions_in = it_sales_conditions_in
sales_cfgs_ref = it_sales_cfgs_ref
sales_cfgs_inst = it_sales_cfgs_inst
* SALES_CFGS_PART_OF =
sales_cfgs_value = it_sales_cfgs_value
* SALES_CFGS_BLOB =
* SALES_CFGS_VK =
sales_cfgs_refinst = it_sales_cfgs_refinst
* SALES_CCARD =
sales_text = it_sales_text
* SALES_KEYS =
* SALES_CONTRACT_IN =
* SALES_CONTRACT_INX =
* EXTENSIONIN =
* SALES_SERVICES =
* SALES_SERVICES_TEXT =
* SALES_SERVICES_COND =
* SALES_SERVICES_COST_ITEMS =
* SALES_SERVICES_COST_MODEL =
* SALES_SERVICES_MODEL_VAL =
* PARTNERADDRESSES =
.
SORT it_return BY type.
READ TABLE it_return INTO wa_return WITH KEY type = 'A'.
IF sy-subrc NE 0.
READ TABLE it_return INTO wa_return WITH KEY type = 'E'.
IF sy-subrc NE 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'
IMPORTING
return = it_return_commit.
p_lv_subrc = 0.
ELSE.
p_lv_subrc = 4.
wa_final-ref_no = wa_salesdoc_h-ref_no.
LOOP AT it_return INTO wa_return WHERE type EQ 'E'
OR type EQ 'A'.
wa_final-error = wa_return-message.
APPEND wa_final TO it_final.
CLEAR wa_final.
ENDLOOP.
ENDIF.
ELSE.
p_lv_subrc = 4.
wa_final-ref_no = wa_salesdoc_h-ref_no.
LOOP AT it_return INTO wa_return WHERE type EQ 'E'
OR type EQ 'A'.
wa_final-error = wa_return-message.
APPEND wa_final TO it_final.
CLEAR wa_final.
ENDLOOP.
ENDIF.
ENDFORM. " CALL_CREATE_BAPI
*&---------------------------------------------------------------------*
*& Form CREATE_SALESDOCUMENT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM create_salesdocument .
LOOP AT it_salesdoc_h INTO wa_salesdoc_h.
*--------------------------------------------------------------------*
*Header Data
*--------------------------------------------------------------------*
***************************
*Document Type
***************************
IF wa_salesdoc_h-doc_type IS NOT INITIAL.
sales_header_in-doc_type = wa_salesdoc_h-doc_type.
sales_header_inx-doc_type = 'X'.
ENDIF.
***************************
*Sales Organization
***************************
IF wa_salesdoc_h-sales_org IS NOT INITIAL.
sales_header_in-sales_org = wa_salesdoc_h-sales_org.
sales_header_inx-sales_org = 'X'.
ENDIF.
***************************
*Distribution Channel
***************************
IF wa_salesdoc_h-distr_chan IS NOT INITIAL.
sales_header_in-distr_chan = wa_salesdoc_h-distr_chan.
sales_header_inx-distr_chan = 'X'.
ENDIF.
***************************
*Division
***************************
IF wa_salesdoc_h-division IS NOT INITIAL.
sales_header_in-division = wa_salesdoc_h-division.
sales_header_inx-division = 'X'.
ENDIF.
***************************
*sales_off
***************************
IF wa_salesdoc_h-sales_off IS NOT INITIAL.
sales_header_in-sales_off = wa_salesdoc_h-sales_off.
sales_header_inx-sales_off = 'X'.
ENDIF.
IF r2 = 'X'.
***************************
*Reference Document
***************************
IF wa_salesdoc_h-ref_doc IS NOT INITIAL.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = wa_salesdoc_h-ref_doc
IMPORTING
output = wa_salesdoc_h-ref_doc.
sales_header_in-ref_doc = wa_salesdoc_h-ref_doc.
sales_header_inx-ref_doc = 'X'.
sales_header_in-refdoc_cat = 'A'.
sales_header_inx-refdoc_cat = 'X'.
ENDIF.
ENDIF.
***************************
*Valid From
***************************
IF wa_salesdoc_h-qt_valid_f IS NOT INITIAL.
sales_header_in-qt_valid_f = wa_salesdoc_h-qt_valid_f.
sales_header_inx-qt_valid_f = 'X'.
ENDIF.
***************************
*Valid To
***************************
IF wa_salesdoc_h-qt_valid_t IS NOT INITIAL.
sales_header_in-qt_valid_t = wa_salesdoc_h-qt_valid_t.
sales_header_inx-qt_valid_t = 'X'.
ENDIF.
***************************
*Terms Of Payment
***************************
IF wa_salesdoc_h-pmnttrms IS NOT INITIAL.
sales_header_in-pmnttrms = wa_salesdoc_h-pmnttrms.
sales_header_inx-pmnttrms = 'X'.
ENDIF.
***************************
*Usage
***************************
IF wa_salesdoc_h-dlvschduse IS NOT INITIAL.
sales_header_in-dlvschduse = wa_salesdoc_h-dlvschduse.
sales_header_inx-dlvschduse = 'X'.
ENDIF.
***************************
*Version
***************************
IF wa_salesdoc_h-version IS NOT INITIAL.
sales_header_in-version = wa_salesdoc_h-version.
sales_header_inx-version = 'X'.
ENDIF.
***************************
*Customer Group
***************************
IF wa_salesdoc_h-cust_group IS NOT INITIAL.
sales_header_in-cust_group = wa_salesdoc_h-cust_group.
sales_header_inx-cust_group = 'X'.
ENDIF.
***************************
*Order Reason
***************************
IF wa_salesdoc_h-ord_reason IS NOT INITIAL.
sales_header_in-ord_reason = wa_salesdoc_h-ord_reason.
sales_header_inx-ord_reason = 'X'.
ENDIF.
*--------------------------------------------------------------------*
*Partner Function
*--------------------------------------------------------------------*
IF wa_salesdoc_h-partn_numb IS NOT INITIAL.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = wa_salesdoc_h-partn_numb
IMPORTING
output = wa_salesdoc_h-partn_numb.
wa_sales_partners-partn_role = 'ER'.
wa_sales_partners-partn_numb = wa_salesdoc_h-partn_numb.
APPEND wa_sales_partners TO it_sales_partners.
CLEAR wa_sales_partners.
ENDIF.
IF r1 = 'X'.
IF wa_salesdoc_h-ship IS NOT INITIAL.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = wa_salesdoc_h-ship
IMPORTING
output = wa_salesdoc_h-ship.
wa_sales_partners-partn_role = 'WE'.
wa_sales_partners-partn_numb = wa_salesdoc_h-ship.
APPEND wa_sales_partners TO it_sales_partners.
CLEAR wa_sales_partners.
ENDIF.
IF wa_salesdoc_h-sold IS NOT INITIAL.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = wa_salesdoc_h-sold
IMPORTING
output = wa_salesdoc_h-sold.
wa_sales_partners-partn_role = 'AG'.
wa_sales_partners-partn_numb = wa_salesdoc_h-sold.
APPEND wa_sales_partners TO it_sales_partners.
CLEAR wa_sales_partners.
ENDIF.
ENDIF.
IF r2 = 'X'.
wa_sales_partners-partn_role = 'WE'.
SELECT SINGLE kunnr
FROM vbpa
INTO wa_sales_partners-partn_numb
WHERE vbeln EQ wa_salesdoc_h-ref_doc
AND parvw EQ 'WE'.
APPEND wa_sales_partners TO it_sales_partners.
CLEAR wa_sales_partners.
wa_sales_partners-partn_role = 'AG'.
SELECT SINGLE kunnr
FROM vbpa
INTO wa_sales_partners-partn_numb
WHERE vbeln EQ wa_salesdoc_h-ref_doc
AND parvw EQ 'AG'.
APPEND wa_sales_partners TO it_sales_partners.
CLEAR wa_sales_partners.
ENDIF.
***************************
*Currency
***************************
IF r2 = 'X'.
SELECT SINGLE waerk
FROM vbak
INTO lv_waerk
WHERE vbeln EQ wa_salesdoc_h-ref_doc.
ENDIF.
*--------------------------------------------------------------------*
*Long Texts
*--------------------------------------------------------------------*
***************************
*Terms & Conditions
***************************
IF wa_salesdoc_h-terms_cond IS NOT INITIAL.
CLEAR: lv_text,it_line[].
lv_text = wa_salesdoc_h-terms_cond.
CALL FUNCTION 'C14W_STRING_TO_TLINE'
EXPORTING
i_string = lv_text
TABLES
e_tline_tab = it_line.
LOOP AT it_line INTO wa_line.
wa_sales_text-text_id = 'Z001'.
wa_sales_text-text_line = wa_line-tdline.
APPEND wa_sales_text TO it_sales_text.
CLEAR : wa_sales_text,wa_line.
ENDLOOP.
ENDIF.
***************************
*Additional Text
***************************
IF wa_salesdoc_h-addn_text IS NOT INITIAL.
CLEAR: lv_text,it_line[].
lv_text = wa_salesdoc_h-addn_text.
CALL FUNCTION 'C14W_STRING_TO_TLINE'
EXPORTING
i_string = lv_text
TABLES
e_tline_tab = it_line.
LOOP AT it_line INTO wa_line.
wa_sales_text-text_id = 'Z046'.
wa_sales_text-text_line = wa_line-tdline.
APPEND wa_sales_text TO it_sales_text.
CLEAR : wa_sales_text,wa_line.
ENDLOOP.
ENDIF.
***************************
*Header Text
***************************
IF wa_salesdoc_h-head_text IS NOT INITIAL.
CLEAR: lv_text,it_line[].
lv_text = wa_salesdoc_h-head_text.
CALL FUNCTION 'C14W_STRING_TO_TLINE'
EXPORTING
i_string = lv_text
TABLES
e_tline_tab = it_line.
LOOP AT it_line INTO wa_line.
wa_sales_text-text_id = 'Z048'.
wa_sales_text-text_line = wa_line-tdline.
APPEND wa_sales_text TO it_sales_text.
CLEAR : wa_sales_text,wa_line.
ENDLOOP.
ENDIF.
***************************
*Footer Details
***************************
IF wa_salesdoc_h-footer IS NOT INITIAL.
CLEAR: lv_text,it_line[].
lv_text = wa_salesdoc_h-footer.
CALL FUNCTION 'C14W_STRING_TO_TLINE'
EXPORTING
i_string = lv_text
TABLES
e_tline_tab = it_line.
LOOP AT it_line INTO wa_line.
wa_sales_text-text_id = 'Z060'.
wa_sales_text-text_line = wa_line-tdline.
APPEND wa_sales_text TO it_sales_text.
CLEAR : wa_sales_text,wa_line.
ENDLOOP.
ENDIF.
***************************
*Mix Design Created
***************************
IF wa_salesdoc_h-mix_design IS NOT INITIAL.
CLEAR: lv_text,it_line[].
lv_text = wa_salesdoc_h-mix_design.
CALL FUNCTION 'C14W_STRING_TO_TLINE'
EXPORTING
i_string = lv_text
TABLES
e_tline_tab = it_line.
LOOP AT it_line INTO wa_line.
wa_sales_text-text_id = 'Z006'.
wa_sales_text-text_line = wa_line-tdline.
APPEND wa_sales_text TO it_sales_text.
CLEAR : wa_sales_text,wa_line.
ENDLOOP.
ENDIF.
***************************
*Quote In Progress
***************************
IF wa_salesdoc_h-quote_progress IS NOT INITIAL.
CLEAR: lv_text,it_line[].
lv_text = wa_salesdoc_h-quote_progress.
CALL FUNCTION 'C14W_STRING_TO_TLINE'
EXPORTING
i_string = lv_text
TABLES
e_tline_tab = it_line.
LOOP AT it_line INTO wa_line.
wa_sales_text-text_id = 'Z007'.
wa_sales_text-text_line = wa_line-tdline.
APPEND wa_sales_text TO it_sales_text.
CLEAR : wa_sales_text,wa_line.
ENDLOOP.
ENDIF.
***************************
*Sent To Customer
***************************
IF wa_salesdoc_h-sent_cust IS NOT INITIAL.
CLEAR: lv_text,it_line[].
lv_text = wa_salesdoc_h-sent_cust.
CALL FUNCTION 'C14W_STRING_TO_TLINE'
EXPORTING
i_string = lv_text
TABLES
e_tline_tab = it_line.
LOOP AT it_line INTO wa_line.
IF wa_salesdoc_h-doc_type = 'ZQ04'.
wa_sales_text-text_id = 'Z008'.
ELSEIF wa_salesdoc_h-doc_type = 'ZQ05'.
wa_sales_text-text_id = 'Z011'.
ENDIF.
wa_sales_text-text_line = wa_line-tdline.
APPEND wa_sales_text TO it_sales_text.
CLEAR : wa_sales_text,wa_line.
ENDLOOP.
ENDIF.
***************************
*Create Mix Design
***************************
IF wa_salesdoc_h-create_mix IS NOT INITIAL.
CLEAR: lv_text,it_line[].
lv_text = wa_salesdoc_h-create_mix.
CALL FUNCTION 'C14W_STRING_TO_TLINE'
EXPORTING
i_string = lv_text
TABLES
e_tline_tab = it_line.
LOOP AT it_line INTO wa_line.
wa_sales_text-text_id = 'Z009'.
wa_sales_text-text_line = wa_line-tdline.
APPEND wa_sales_text TO it_sales_text.
CLEAR : wa_sales_text,wa_line.
ENDLOOP.
ENDIF.
***************************
*Technical Changes
***************************
IF wa_salesdoc_h-technical_change IS NOT INITIAL.
CLEAR: lv_text,it_line[].
lv_text = wa_salesdoc_h-technical_change.
CALL FUNCTION 'C14W_STRING_TO_TLINE'
EXPORTING
i_string = lv_text
TABLES
e_tline_tab = it_line.
LOOP AT it_line INTO wa_line.
wa_sales_text-text_id = 'Z042'.
wa_sales_text-text_line = wa_line-tdline.
APPEND wa_sales_text TO it_sales_text.
CLEAR : wa_sales_text,wa_line.
ENDLOOP.
ENDIF.
***************************
*Commercial Changes
***************************
IF wa_salesdoc_h-commercial_change IS NOT INITIAL.
CLEAR: lv_text,it_line[].
lv_text = wa_salesdoc_h-commercial_change.
CALL FUNCTION 'C14W_STRING_TO_TLINE'
EXPORTING
i_string = lv_text
TABLES
e_tline_tab = it_line.
LOOP AT it_line INTO wa_line.
wa_sales_text-text_id = 'Z041'.
wa_sales_text-text_line = wa_line-tdline.
APPEND wa_sales_text TO it_sales_text.
CLEAR : wa_sales_text,wa_line.
ENDLOOP.
ENDIF.
***************************
*Mix Design Approve
***************************
IF wa_salesdoc_h-mix_approve IS NOT INITIAL.
CLEAR: lv_text,it_line[].
lv_text = wa_salesdoc_h-mix_approve.
CALL FUNCTION 'C14W_STRING_TO_TLINE'
EXPORTING
i_string = lv_text
TABLES
e_tline_tab = it_line.
LOOP AT it_line INTO wa_line.
wa_sales_text-text_id = 'Z043'.
wa_sales_text-text_line = wa_line-tdline.
APPEND wa_sales_text TO it_sales_text.
CLEAR : wa_sales_text,wa_line.
ENDLOOP.
ENDIF.
***************************
*Quote Rejected
***************************
IF wa_salesdoc_h-quote_rejected IS NOT INITIAL.
CLEAR: lv_text,it_line[].
lv_text = wa_salesdoc_h-quote_rejected.
CALL FUNCTION 'C14W_STRING_TO_TLINE'
EXPORTING
i_string = lv_text
TABLES
e_tline_tab = it_line.
LOOP AT it_line INTO wa_line.
wa_sales_text-text_id = 'Z016'.
wa_sales_text-text_line = wa_line-tdline.
APPEND wa_sales_text TO it_sales_text.
CLEAR : wa_sales_text,wa_line.
ENDLOOP.
ENDIF.
***************************
*Quote Accepted
***************************
IF wa_salesdoc_h-quote_accepted IS NOT INITIAL.
CLEAR: lv_text,it_line[].
lv_text = wa_salesdoc_h-quote_accepted.
CALL FUNCTION 'C14W_STRING_TO_TLINE'
EXPORTING
i_string = lv_text
TABLES
e_tline_tab = it_line.
LOOP AT it_line INTO wa_line.
wa_sales_text-text_id = 'Z040'.
wa_sales_text-text_line = wa_line-tdline.
APPEND wa_sales_text TO it_sales_text.
CLEAR : wa_sales_text,wa_line.
ENDLOOP.
ENDIF.
*--------------------------------------------------------------------*
*Item Data
*--------------------------------------------------------------------*
LOOP AT it_salesdoc_l INTO wa_salesdoc_l WHERE ref_no EQ wa_salesdoc_h-ref_no.
lv_posnr = lv_posnr + 10.
***************************
*Item Number
***************************
wa_sales_items_in-itm_number = lv_posnr.
wa_sales_items_in-po_itm_no = lv_posnr.
wa_sales_items_inx-itm_number = lv_posnr.
wa_sales_items_inx-po_itm_no = 'X'.
***************************
*Material
***************************
IF wa_salesdoc_l-material IS NOT INITIAL.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
input = wa_salesdoc_l-material
IMPORTING
output = wa_salesdoc_l-material
EXCEPTIONS
length_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
wa_sales_items_in-material = wa_salesdoc_l-material.
wa_sales_items_inx-material = 'X'.
ENDIF.
***************************
*Order Quantity
***************************
IF wa_salesdoc_l-req_qty IS NOT INITIAL.
wa_sales_items_in-target_qty = wa_salesdoc_l-req_qty.
wa_sales_items_inx-target_qty = 'X'.
ENDIF.
***************************
*Plant
***************************
IF wa_salesdoc_l-plant IS NOT INITIAL.
wa_sales_items_in-plant = wa_salesdoc_l-plant.
wa_sales_items_inx-plant = 'X'.
ENDIF.
***************************
*Shipping Point
***************************
IF wa_salesdoc_l-ship_point IS NOT INITIAL.
wa_sales_items_in-ship_point = wa_salesdoc_l-ship_point.
wa_sales_items_inx-ship_point = 'X'.
ENDIF.
*--------------------------------------------------------------------*
*Schedule Lines
*--------------------------------------------------------------------*
lv_line = lv_line + 1.
wa_sales_schedules_in-itm_number = lv_posnr.
wa_sales_schedules_inx-itm_number = lv_posnr.
wa_sales_schedules_in-sched_line = lv_line.
wa_sales_schedules_inx-sched_line = lv_line.
wa_sales_schedules_in-req_qty = wa_salesdoc_l-req_qty.
wa_sales_schedules_inx-req_qty = 'X'.
APPEND : wa_sales_items_in TO it_sales_items_in,
wa_sales_items_inx TO it_sales_items_inx,
wa_sales_schedules_in TO it_sales_schedules_in,
wa_sales_schedules_inx TO it_sales_schedules_inx.
CLEAR : wa_sales_items_in,wa_sales_items_inx,
wa_sales_schedules_in,wa_sales_schedules_inx .
*--------------------------------------------------------------------*
*Characteristics & Conditions Data
*--------------------------------------------------------------------*
IF wa_salesdoc_l-charc IS NOT INITIAL.
lv_config = lv_config + 1.
lv_instance = lv_instance + 1.
wa_sales_cfgs_ref-posex = lv_posnr.
wa_sales_cfgs_ref-config_id = lv_config.
wa_sales_cfgs_ref-root_id = lv_instance.
wa_sales_cfgs_inst-config_id = lv_config.
wa_sales_cfgs_inst-inst_id = lv_instance.
wa_sales_cfgs_inst-obj_type = 'MARA'.
wa_sales_cfgs_inst-class_type = '300'.
wa_sales_cfgs_inst-obj_key = wa_salesdoc_l-material.
wa_sales_cfgs_inst-quantity = wa_salesdoc_l-req_qty.
CONDENSE wa_sales_cfgs_inst-quantity.
wa_sales_cfgs_inst-author = '8'.
wa_sales_cfgs_refinst-posex = lv_posnr.
wa_sales_cfgs_refinst-config_id = lv_config.
wa_sales_cfgs_refinst-inst_id = lv_instance.
APPEND : wa_sales_cfgs_ref TO it_sales_cfgs_ref,
wa_sales_cfgs_inst TO it_sales_cfgs_inst,
wa_sales_cfgs_refinst TO it_sales_cfgs_refinst.
CLEAR : wa_sales_cfgs_ref,wa_sales_cfgs_inst,wa_sales_cfgs_refinst.
ENDIF.
***************************
*Additional Data
***************************
IF wa_salesdoc_l-zsdclient IS NOT INITIAL OR wa_salesdoc_l-zsdconsultant IS NOT INITIAL OR
wa_salesdoc_l-projspec IS NOT INITIAL OR wa_salesdoc_l-contractor IS NOT INITIAL OR
wa_salesdoc_l-subcontractor IS NOT INITIAL OR wa_salesdoc_l-plant_addtab IS NOT INITIAL OR
wa_salesdoc_l-date_addtab IS NOT INITIAL OR wa_salesdoc_l-aircontent IS NOT INITIAL OR
wa_salesdoc_l-placeslump IS NOT INITIAL OR wa_salesdoc_l-targetcontemp IS NOT INITIAL OR
wa_salesdoc_l-minwetmix IS NOT INITIAL OR wa_salesdoc_l-chemdosage IS NOT INITIAL OR
wa_salesdoc_l-agg_cement_ratio IS NOT INITIAL OR wa_salesdoc_l-hydrated_paste IS NOT INITIAL OR
wa_salesdoc_l-agg_cement_ratio_mass IS NOT INITIAL OR wa_salesdoc_l-fineness_modulus_sand IS NOT INITIAL OR
wa_salesdoc_l-fineness_modulus_agg IS NOT INITIAL OR wa_salesdoc_l-total_sand IS NOT INITIAL.
wa_add-itm_number = lv_posnr.
wa_add-zsdclient = wa_salesdoc_l-zsdclient.
wa_add-zsdconsultant = wa_salesdoc_l-zsdconsultant.
wa_add-projspec = wa_salesdoc_l-projspec.
wa_add-contractor = wa_salesdoc_l-contractor.
wa_add-subcontractor = wa_salesdoc_l-subcontractor.
wa_add-plant_addtab = wa_salesdoc_l-plant_addtab.
wa_add-date_addtab = wa_salesdoc_l-date_addtab.
wa_add-aircontent = wa_salesdoc_l-aircontent.
wa_add-placeslump = wa_salesdoc_l-placeslump.
wa_add-targetcontemp = wa_salesdoc_l-targetcontemp.
wa_add-minwetmix = wa_salesdoc_l-minwetmix.
wa_add-chemdosage = wa_salesdoc_l-chemdosage.
wa_add-agg_cement_ratio = wa_salesdoc_l-agg_cement_ratio.
wa_add-hydrated_paste = wa_salesdoc_l-hydrated_paste.
wa_add-agg_cement_ratio_mass = wa_salesdoc_l-agg_cement_ratio_mass.
wa_add-fineness_modulus_sand = wa_salesdoc_l-fineness_modulus_sand.
wa_add-fineness_modulus_agg = wa_salesdoc_l-fineness_modulus_agg.
wa_add-total_sand = wa_salesdoc_l-total_sand.
APPEND wa_add TO it_add.
CLEAR wa_add.
ENDIF.
LOOP AT it_salesdoc INTO wa_salesdoc WHERE ref_no EQ wa_salesdoc_l-ref_no
AND itm_number EQ wa_salesdoc_l-itm_number.
IF wa_salesdoc-charc IS NOT INITIAL.
wa_sales_cfgs_value-config_id = lv_config.
wa_sales_cfgs_value-inst_id = lv_instance.
wa_sales_cfgs_value-charc = wa_salesdoc-charc.
wa_sales_cfgs_value-value = wa_salesdoc-value.
wa_sales_cfgs_value-valcode = 1.
APPEND wa_sales_cfgs_value TO it_sales_cfgs_value.
CLEAR wa_sales_cfgs_value.
ENDIF.
IF wa_salesdoc-cond_type IS NOT INITIAL.
wa_sales_conditions_in-itm_number = lv_posnr.
wa_sales_conditions_in-cond_type = wa_salesdoc-cond_type.
wa_sales_conditions_in-cond_value = wa_salesdoc-cond_value.
* wa_sales_conditions_in-currency = lv_waerk.
APPEND wa_sales_conditions_in TO it_sales_conditions_in.
CLEAR wa_sales_conditions_in.
ENDIF.
IF wa_salesdoc-code IS NOT INITIAL.
wa_zsdt_add_tab-srnum = lv_srno = lv_srno + 1.
wa_zsdt_add_tab-posnr = lv_posnr.
wa_zsdt_add_tab-code = wa_salesdoc-code.
wa_zsdt_add_tab-spec = wa_salesdoc-spec.
wa_zsdt_add_tab-tar_design = wa_salesdoc-tar_design.
APPEND wa_zsdt_add_tab TO it_zsdt_add_tab.
CLEAR wa_zsdt_add_tab.
ENDIF.
CLEAR : wa_salesdoc.
ENDLOOP.
CLEAR : wa_salesdoc_l.
ENDLOOP.
PERFORM call_create_bapi CHANGING lv_subrc.
IF lv_subrc EQ 0.
wa_final-ref_no = wa_salesdoc_h-ref_no.
wa_final-vbeln = salesdocument_ex.
wa_final-type = 'Quotation Created'.
APPEND wa_final TO it_final.
CLEAR : wa_final,lv_subrc.
LOOP AT it_zsdt_add_tab INTO wa_zsdt_add_tab.
wa_zsdt_add_tab-vbeln = salesdocument_ex.
MODIFY it_zsdt_add_tab FROM wa_zsdt_add_tab INDEX sy-tabix TRANSPORTING vbeln.
ENDLOOP.
IF it_zsdt_add_tab[] IS NOT INITIAL.
MODIFY zsdt_add_tab FROM TABLE it_zsdt_add_tab.
IF sy-subrc EQ 0.
COMMIT WORK.
ENDIF.
ENDIF.
WAIT UP TO 1 SECONDS.
IF it_add[] IS NOT INITIAL.
LOOP AT it_add INTO wa_add.
UPDATE vbap SET zsdclient = wa_add-zsdclient
zsdconsultant = wa_add-zsdconsultant
projspec = wa_add-projspec
contractor = wa_add-contractor
subcontractor = wa_add-subcontractor
plant_addtab = wa_add-plant_addtab
date_addtab = wa_add-date_addtab
aircontent = wa_add-aircontent
placeslump = wa_add-placeslump
targetcontemp = wa_add-targetcontemp
minwetmix = wa_add-minwetmix
chemdosage = wa_add-chemdosage
agg_cement_ratio = wa_add-agg_cement_ratio
hydrated_paste = wa_add-hydrated_paste
agg_cement_ratio_mass = wa_add-agg_cement_ratio_mass
fineness_modulus_sand = wa_add-fineness_modulus_sand
fineness_modulus_agg = wa_add-fineness_modulus_agg
total_sand = wa_add-total_sand
WHERE vbeln EQ salesdocument_ex
AND posnr EQ wa_add-itm_number.
IF sy-subrc EQ 0.
COMMIT WORK .
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
REFRESH : it_return,it_sales_items_in,it_sales_items_inx,it_sales_partners,it_sales_schedules_in,
it_sales_schedules_inx,it_sales_conditions_in,it_sales_cfgs_ref,it_sales_cfgs_inst,
it_sales_cfgs_value,it_sales_cfgs_refinst,it_sales_text,it_add,it_zsdt_add_tab.
CLEAR : wa_salesdoc_h,wa_return,wa_sales_items_in,wa_sales_items_inx,wa_sales_partners,wa_sales_schedules_in,
wa_sales_schedules_inx,wa_sales_conditions_in,wa_sales_cfgs_ref,wa_sales_cfgs_inst,
wa_sales_cfgs_value,wa_sales_cfgs_refinst,wa_sales_text,wa_add,wa_zsdt_add_tab,
lv_waerk,lv_posnr,lv_config,lv_instance,lv_srno.
ENDLOOP.
ENDFORM. " CREATE_SALESDOCUMENT
* P_FILE File Path
* R1 Sales Document Upload
* R2 Open Quotation Upload