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