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

Multiple line items in BDC

Former Member
0 Likes
1,284

Hi,

My requirement is to create asales order with multiple line item (in bdc only). am able to create sales order with single item.kindly help me to proceed with creating sales order with  multiple line item . pls find below my program.

REPORT zmbsampbdc.
TYPE-POOLS: truxs.
PARAMETER : p_file TYPE rlgrap-filename,
p_dwnld
TYPE rlgrap-filename.                                               "type pools for convert fm
TYPES: ty_t_bdcdata TYPE STANDARD TABLE OF bdcdata.          "internal table of bdcdata
DATA :lv_file TYPE string.

TYPES : BEGIN OF ty_tab,
dtype 
TYPE vbak-auart,
sorg  
TYPE vbak-vkorg,
dchan 
TYPE vbak-vtweg,
div    TYPE vbak-spart,
po    
TYPE vbkd-bstkd,
stp   
TYPE vbak-kunnr,
matnr 
TYPE vbap-matnr,
item  
TYPE vbap-posnr,
qty   
TYPE vbap-kwmeng,
END OF ty_tab.

TYPES : BEGIN OF ty_dwld,
dtype
(15TYPE c,
sorg
(15)   TYPE c,
dchan
(15TYPE c,
div(15)    TYPE c,
po
(15)     TYPE c,
stp
(15)    TYPE c,
matnr
(15TYPE c,
item
(10)   TYPE c,
qty
(15)    TYPE c,
message(45) TYPE c,
END OF ty_dwld.

DATA :gt_tab1      TYPE STANDARD TABLE OF ty_tab,
gs_tab1     
TYPE ty_tab,
lt_type     
TYPE truxs_t_text_data,
lt_bdcdata  
TYPE TABLE OF bdcdata,
ls_opt      
TYPE ctu_params,
ls_messtab  
TYPE bdcmsgcoll,
lt_messtab  
TYPE TABLE OF bdcmsgcoll,
lv_msg
(45)   TYPE c.

DATA : lt_success     TYPE STANDARD TABLE OF ty_dwld,
ls_success    
TYPE ty_dwld,
lt_error      
TYPE STANDARD TABLE OF ty_dwld,
ls_error      
TYPE ty_dwld,
lt_msg        
TYPE STANDARD TABLE OF ty_dwld,
ls_msg        
TYPE ty_dwld.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
PERFORM onvaluerequest CHANGING p_file.

START-OF-SELECTION.
PERFORM convert_text.
PERFORM bdc.
PERFORM download.

END-OF-SELECTION.

*&---------------------------------------------------------------------*
*&      Form  bdc
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM bdc.

LOOP AT gt_tab1 INTO gs_tab1.
REFRESH :lt_bdcdata.
PERFORM append_bdc_data       USING 'SAPMV45A'      '0101'
CHANGING lt_bdcdata.

PERFORM append_field_values   USING 'BDC_CURSOR'    'VBAK-AUART'
CHANGING lt_bdcdata.

PERFORM append_field_values   USING 'BDC_OKCODE'    '/00'
CHANGING lt_bdcdata.

PERFORM append_field_values   USING 'VBAK-AUART'     gs_tab1-dtype
CHANGING lt_bdcdata.

PERFORM append_field_values   USING 'VBAK-VKORG'     gs_tab1-sorg
CHANGING lt_bdcdata.

PERFORM append_field_values   USING 'VBAK-VTWEG'     gs_tab1-dchan
CHANGING lt_bdcdata.

PERFORM append_field_values   USING 'VBAK-SPART'     gs_tab1-div
CHANGING lt_bdcdata.

PERFORM append_bdc_data       USING 'SAPMV45A'          '4001'
CHANGING lt_bdcdata.

PERFORM append_field_values   USING 'BDC_OKCODE'       '=SICH'
CHANGING lt_bdcdata.

PERFORM append_field_values   USING 'VBKD-BSTKD'      gs_tab1-po
CHANGING lt_bdcdata.

PERFORM append_field_values   USING 'KUAGV-KUNNR'     gs_tab1-stp
CHANGING lt_bdcdata.

PERFORM append_field_values   USING 'RV45A-KETDAT'    '26.09.2014'
CHANGING lt_bdcdata.

PERFORM append_field_values   USING 'RV45A-KPRGBZ'       'D'
CHANGING lt_bdcdata.

PERFORM append_field_values   USING 'VBKD-PRSDT'      '26.09.2014'
CHANGING lt_bdcdata.

PERFORM append_field_values   USING 'BDC_CURSOR'      'VBAP-VRKME(01)'
CHANGING lt_bdcdata.


PERFORM append_field_values   USING 'RV45A-MABNR(01)'      gs_tab1-matnr
CHANGING lt_bdcdata.

PERFORM append_field_values   USING 'VBAP-POSNR(01)'       gs_tab1-item
CHANGING lt_bdcdata.

PERFORM append_field_values   USING 'RV45A-KWMENG(01)'     gs_tab1-qty
CHANGING lt_bdcdata.


ls_opt
-dismode = 'N'.

ls_opt
-defsize = 'X'.


CALL TRANSACTION 'VA01' USING lt_bdcdata OPTIONS FROM ls_opt

MESSAGES
INTO lt_messtab.

READ TABLE lt_messtab INTO ls_messtab WITH KEY msgtyp = 'S'.
IF sy-subrc IS INITIAL AND ls_messtab-msgtyp = 'S'.
LOOP AT lt_messtab INTO ls_messtab.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
id        = ls_messtab-msgid
lang     
= '-E'
no        = ls_messtab-msgnr
v1       
= ls_messtab-msgv1
v2       
= ls_messtab-msgv2
v3       
= ls_messtab-msgv3
v4       
= ls_messtab-msgv4
IMPORTING
msg      
= lv_msg
EXCEPTIONS
not_found
= 1
OTHERS    = 2.
ENDLOOP.

ls_success
-dtype  gs_tab1-dtype.
ls_success
-sorg   gs_tab1-sorg.
ls_success
-dchan  gs_tab1-dchan.
ls_success
-div    gs_tab1-div.
ls_success
-po     gs_tab1-po.
ls_success
-stp    gs_tab1-stp.
ls_success
-matnr  gs_tab1-matnr.
ls_success
-item   gs_tab1-item.
ls_success
-qty    gs_tab1-qty.
ls_success
-message lv_msg.
APPEND ls_success TO lt_success.
CLEAR: ls_success, lv_msg.
ELSE.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
id        = ls_messtab-msgid
lang     
= '-E'
no        = ls_messtab-msgnr
v1       
= ls_messtab-msgv1
v2       
= ls_messtab-msgv2
v3       
= ls_messtab-msgv3
v4       
= ls_messtab-msgv4
IMPORTING
msg      
= lv_msg
EXCEPTIONS
not_found
= 1
OTHERS    = 2.


ls_error
-dtype  gs_tab1-dtype.
ls_error
-sorg   gs_tab1-sorg.
ls_error
-dchan  gs_tab1-dchan.
ls_error
-div    gs_tab1-div.
ls_error
-po     gs_tab1-po.
ls_error
-stp    gs_tab1-stp.
ls_error
-matnr  gs_tab1-matnr.
ls_error
-item   gs_tab1-item.
ls_error
-qty    gs_tab1-qty.
ls_error
-message lv_msg.
APPEND ls_error TO lt_error.
CLEAR: ls_error, lv_msg.
ENDIF.
ENDLOOP.

APPEND LINES OF lt_error TO lt_msg.
APPEND LINES OF lt_success TO lt_msg.


ls_msg
-dtype = 'Order Type'.
ls_msg
-sorg  = 'Sales Org'.
ls_msg
-dchan = 'Disgtribution channel'.
ls_msg
-div   = 'Division'.
ls_msg
-po    = 'purchase order'.
ls_msg
-stp   = 'Sold To Party'.
ls_msg
-matnr = 'Material'.
ls_msg
-qty   = 'Quantity'.
ls_msg
-item  = 'item'.
ls_msg
-message = 'Message'.

INSERT ls_msg INTO lt_msg INDEX 1.

ENDFORM.                    "bdc

*&---------------------------------------------------------------------*
*&      Form  convert_text
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM convert_text .

DATA: lt_type TYPE truxs_t_text_data.

CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
i_line_header       
= 'X'
i_tab_raw_data      
= lt_type
i_filename          
= p_file
TABLES
i_tab_converted_data
= gt_tab1
EXCEPTIONS
conversion_failed   
= 1
OTHERS               = 2.

IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

ENDFORM.                    "convert_text

*&---------------------------------------------------------------------*
*&      Form  append_bdc_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->IV_PROG    text
*      -->IV_DYNPRO  text
*      -->CT_BDCDATA text
*----------------------------------------------------------------------*
FORM append_bdc_data  USING     iv_prog          TYPE bdc_prog
iv_dynpro       
TYPE bdc_dynnr
CHANGING  ct_bdcdata       TYPE ty_t_bdcdata.
DATA: ls_bdcdata  TYPE bdcdata.

ls_bdcdata
-program  = iv_prog.

ls_bdcdata
-dynpro   = iv_dynpro.

ls_bdcdata
-dynbegin = 'X'.

APPEND ls_bdcdata TO ct_bdcdata.

ENDFORM.                    "append_bdc_data

*&---------------------------------------------------------------------*
*&      Form  append_field_values
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->IV_FNAM    text
*      -->IV_FVAL    text
*      -->CT_BDCDATA text
*----------------------------------------------------------------------*
FORM append_field_values  USING    iv_fnam  TYPE fnam_____4
iv_fval
"TYPE bdc_fval
CHANGING ct_bdcdata  TYPE ty_t_bdcdata.

DATA: ls_bdcdata  TYPE bdcdata.

ls_bdcdata
-fnam     = iv_fnam.
ls_bdcdata
-fval     = iv_fval.
SHIFT ls_bdcdata-fval LEFT DELETING LEADING space.
APPEND ls_bdcdata TO ct_bdcdata.
CLEAR:ls_bdcdata.

ENDFORM.                    "append_field_values

*&---------------------------------------------------------------------*
*&      Form  ONVALUEREQUEST
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->CP_FILE    text
*----------------------------------------------------------------------*
FORM onvaluerequest  CHANGING cp_file TYPE rlgrap-filename.

DATAlt_file TYPE filetable,
ls_file
TYPE file_table,
lv_rc
TYPE i.
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
default_filename       
= '*.XLSX'
file_filter            
= '(*.xls)|*.XLSX|'
CHANGING
file_table             
= lt_file
rc                     
= lv_rc
EXCEPTIONS
file_open_dialog_failed
= 1
cntl_error             
= 2
error_no_gui           
= 3
not_supported_by_gui   
= 4
OTHERS                  = 5.
IF sy-subrc <> 0.
*    MESSAGE e000.
ELSE.
READ TABLE lt_file INTO ls_file INDEX 1.
IF sy-subrc IS INITIAL.
cp_file
= ls_file-filename.
ENDIF.
ENDIF.
ENDFORM.                    "ONVALUEREQUEST
*&---------------------------------------------------------------------*
*&      Form  DOWNLOAD
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM download .

lv_file
= p_dwnld.
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
filename             
= lv_file
*      filetype              = 'ASC'
write_field_separator
= 'X'
CHANGING
data_tab             
= lt_msg.

ENDFORM.                    " DOWNLOAD



thanks ,

balaji.

Hi,

My requirement is to create asales order with multiple line item (in bdc only). am able to create sales order with single item.kindly help me to proceed with creating sales order with  multiple line item . pls find below my program.

REPORT zmbsampbdc.
TYPE-POOLS: truxs.
PARAMETER : p_file TYPE rlgrap-filename,
p_dwnld
TYPE rlgrap-filename.                                               "type pools for convert fm
TYPES: ty_t_bdcdata TYPE STANDARD TABLE OF bdcdata.          "internal table of bdcdata
DATA :lv_file TYPE string.

TYPES : BEGIN OF ty_tab,
dtype 
TYPE vbak-auart,
sorg  
TYPE vbak-vkorg,
dchan 
TYPE vbak-vtweg,
div    TYPE vbak-spart,
po    
TYPE vbkd-bstkd,
stp   
TYPE vbak-kunnr,
matnr 
TYPE vbap-matnr,
item  
TYPE vbap-posnr,
qty   
TYPE vbap-kwmeng,
END OF ty_tab.

TYPES : BEGIN OF ty_dwld,
dtype
(15TYPE c,
sorg
(15)   TYPE c,
dchan
(15TYPE c,
div(15)    TYPE c,
po
(15)     TYPE c,
stp
(15)    TYPE c,
matnr
(15TYPE c,
item
(10)   TYPE c,
qty
(15)    TYPE c,
message(45) TYPE c,
END OF ty_dwld.

DATA :gt_tab1      TYPE STANDARD TABLE OF ty_tab,
gs_tab1     
TYPE ty_tab,
lt_type     
TYPE truxs_t_text_data,
lt_bdcdata  
TYPE TABLE OF bdcdata,
ls_opt      
TYPE ctu_params,
ls_messtab  
TYPE bdcmsgcoll,
lt_messtab  
TYPE TABLE OF bdcmsgcoll,
lv_msg
(45)   TYPE c.

DATA : lt_success     TYPE STANDARD TABLE OF ty_dwld,
ls_success    
TYPE ty_dwld,
lt_error      
TYPE STANDARD TABLE OF ty_dwld,
ls_error      
TYPE ty_dwld,
lt_msg        
TYPE STANDARD TABLE OF ty_dwld,
ls_msg        
TYPE ty_dwld.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
PERFORM onvaluerequest CHANGING p_file.

START-OF-SELECTION.
PERFORM convert_text.
PERFORM bdc.
PERFORM download.

END-OF-SELECTION.

*&---------------------------------------------------------------------*
*&      Form  bdc
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM bdc.

LOOP AT gt_tab1 INTO gs_tab1.
REFRESH :lt_bdcdata.
PERFORM append_bdc_data       USING 'SAPMV45A'      '0101'
CHANGING lt_bdcdata.

PERFORM append_field_values   USING 'BDC_CURSOR'    'VBAK-AUART'
CHANGING lt_bdcdata.

PERFORM append_field_values   USING 'BDC_OKCODE'    '/00'
CHANGING lt_bdcdata.

PERFORM append_field_values   USING 'VBAK-AUART'     gs_tab1-dtype
CHANGING lt_bdcdata.

PERFORM append_field_values   USING 'VBAK-VKORG'     gs_tab1-sorg
CHANGING lt_bdcdata.

PERFORM append_field_values   USING 'VBAK-VTWEG'     gs_tab1-dchan
CHANGING lt_bdcdata.

PERFORM append_field_values   USING 'VBAK-SPART'     gs_tab1-div
CHANGING lt_bdcdata.

PERFORM append_bdc_data       USING 'SAPMV45A'          '4001'
CHANGING lt_bdcdata.

PERFORM append_field_values   USING 'BDC_OKCODE'       '=SICH'
CHANGING lt_bdcdata.

PERFORM append_field_values   USING 'VBKD-BSTKD'      gs_tab1-po
CHANGING lt_bdcdata.

PERFORM append_field_values   USING 'KUAGV-KUNNR'     gs_tab1-stp
CHANGING lt_bdcdata.

PERFORM append_field_values   USING 'RV45A-KETDAT'    '26.09.2014'
CHANGING lt_bdcdata.

PERFORM append_field_values   USING 'RV45A-KPRGBZ'       'D'
CHANGING lt_bdcdata.

PERFORM append_field_values   USING 'VBKD-PRSDT'      '26.09.2014'
CHANGING lt_bdcdata.

PERFORM append_field_values   USING 'BDC_CURSOR'      'VBAP-VRKME(01)'
CHANGING lt_bdcdata.


PERFORM append_field_values   USING 'RV45A-MABNR(01)'      gs_tab1-matnr
CHANGING lt_bdcdata.

PERFORM append_field_values   USING 'VBAP-POSNR(01)'       gs_tab1-item
CHANGING lt_bdcdata.

PERFORM append_field_values   USING 'RV45A-KWMENG(01)'     gs_tab1-qty
CHANGING lt_bdcdata.


ls_opt
-dismode = 'N'.

ls_opt
-defsize = 'X'.


CALL TRANSACTION 'VA01' USING lt_bdcdata OPTIONS FROM ls_opt

MESSAGES
INTO lt_messtab.

READ TABLE lt_messtab INTO ls_messtab WITH KEY msgtyp = 'S'.
IF sy-subrc IS INITIAL AND ls_messtab-msgtyp = 'S'.
LOOP AT lt_messtab INTO ls_messtab.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
id        = ls_messtab-msgid
lang     
= '-E'
no        = ls_messtab-msgnr
v1       
= ls_messtab-msgv1
v2       
= ls_messtab-msgv2
v3       
= ls_messtab-msgv3
v4       
= ls_messtab-msgv4
IMPORTING
msg      
= lv_msg
EXCEPTIONS
not_found
= 1
OTHERS    = 2.
ENDLOOP.

ls_success
-dtype  gs_tab1-dtype.
ls_success
-sorg   gs_tab1-sorg.
ls_success
-dchan  gs_tab1-dchan.
ls_success
-div    gs_tab1-div.
ls_success
-po     gs_tab1-po.
ls_success
-stp    gs_tab1-stp.
ls_success
-matnr  gs_tab1-matnr.
ls_success
-item   gs_tab1-item.
ls_success
-qty    gs_tab1-qty.
ls_success
-message lv_msg.
APPEND ls_success TO lt_success.
CLEAR: ls_success, lv_msg.
ELSE.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
id        = ls_messtab-msgid
lang     
= '-E'
no        = ls_messtab-msgnr
v1       
= ls_messtab-msgv1
v2       
= ls_messtab-msgv2
v3       
= ls_messtab-msgv3
v4       
= ls_messtab-msgv4
IMPORTING
msg      
= lv_msg
EXCEPTIONS
not_found
= 1
OTHERS    = 2.


ls_error
-dtype  gs_tab1-dtype.
ls_error
-sorg   gs_tab1-sorg.
ls_error
-dchan  gs_tab1-dchan.
ls_error
-div    gs_tab1-div.
ls_error
-po     gs_tab1-po.
ls_error
-stp    gs_tab1-stp.
ls_error
-matnr  gs_tab1-matnr.
ls_error
-item   gs_tab1-item.
ls_error
-qty    gs_tab1-qty.
ls_error
-message lv_msg.
APPEND ls_error TO lt_error.
CLEAR: ls_error, lv_msg.
ENDIF.
ENDLOOP.

APPEND LINES OF lt_error TO lt_msg.
APPEND LINES OF lt_success TO lt_msg.


ls_msg
-dtype = 'Order Type'.
ls_msg
-sorg  = 'Sales Org'.
ls_msg
-dchan = 'Disgtribution channel'.
ls_msg
-div   = 'Division'.
ls_msg
-po    = 'purchase order'.
ls_msg
-stp   = 'Sold To Party'.
ls_msg
-matnr = 'Material'.
ls_msg
-qty   = 'Quantity'.
ls_msg
-item  = 'item'.
ls_msg
-message = 'Message'.

INSERT ls_msg INTO lt_msg INDEX 1.

ENDFORM.                    "bdc

*&---------------------------------------------------------------------*
*&      Form  convert_text
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM convert_text .

DATA: lt_type TYPE truxs_t_text_data.

CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
i_line_header       
= 'X'
i_tab_raw_data      
= lt_type
i_filename          
= p_file
TABLES
i_tab_converted_data
= gt_tab1
EXCEPTIONS
conversion_failed   
= 1
OTHERS               = 2.

IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

ENDFORM.                    "convert_text

*&---------------------------------------------------------------------*
*&      Form  append_bdc_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->IV_PROG    text
*      -->IV_DYNPRO  text
*      -->CT_BDCDATA text
*----------------------------------------------------------------------*
FORM append_bdc_data  USING     iv_prog          TYPE bdc_prog
iv_dynpro       
TYPE bdc_dynnr
CHANGING  ct_bdcdata       TYPE ty_t_bdcdata.
DATA: ls_bdcdata  TYPE bdcdata.

ls_bdcdata
-program  = iv_prog.

ls_bdcdata
-dynpro   = iv_dynpro.

ls_bdcdata
-dynbegin = 'X'.

APPEND ls_bdcdata TO ct_bdcdata.

ENDFORM.                    "append_bdc_data

*&---------------------------------------------------------------------*
*&      Form  append_field_values
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->IV_FNAM    text
*      -->IV_FVAL    text
*      -->CT_BDCDATA text
*----------------------------------------------------------------------*
FORM append_field_values  USING    iv_fnam  TYPE fnam_____4
iv_fval
"TYPE bdc_fval
CHANGING ct_bdcdata  TYPE ty_t_bdcdata.

DATA: ls_bdcdata  TYPE bdcdata.

ls_bdcdata
-fnam     = iv_fnam.
ls_bdcdata
-fval     = iv_fval.
SHIFT ls_bdcdata-fval LEFT DELETING LEADING space.
APPEND ls_bdcdata TO ct_bdcdata.
CLEAR:ls_bdcdata.

ENDFORM.                    "append_field_values

*&---------------------------------------------------------------------*
*&      Form  ONVALUEREQUEST
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->CP_FILE    text
*----------------------------------------------------------------------*
FORM onvaluerequest  CHANGING cp_file TYPE rlgrap-filename.

DATAlt_file TYPE filetable,
ls_file
TYPE file_table,
lv_rc
TYPE i.
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
default_filename       
= '*.XLSX'
file_filter            
= '(*.xls)|*.XLSX|'
CHANGING
file_table             
= lt_file
rc                     
= lv_rc
EXCEPTIONS
file_open_dialog_failed
= 1
cntl_error             
= 2
error_no_gui           
= 3
not_supported_by_gui   
= 4
OTHERS                  = 5.
IF sy-subrc <> 0.
*    MESSAGE e000.
ELSE.
READ TABLE lt_file INTO ls_file INDEX 1.
IF sy-subrc IS INITIAL.
cp_file
= ls_file-filename.
ENDIF.
ENDIF.
ENDFORM.                    "ONVALUEREQUEST
*&---------------------------------------------------------------------*
*&      Form  DOWNLOAD
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM download .

lv_file
= p_dwnld.
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
filename             
= lv_file
*      filetype              = 'ASC'
write_field_separator
= 'X'
CHANGING
data_tab             
= lt_msg.

ENDFORM.                    " DOWNLOAD



thanks ,

balaji.

3 REPLIES 3
Read only

krishna_k19
Contributor
0 Likes
1,030

Hi Balaji,

    I guess you are getting table control error , why because whenever the line items are increasing ,

or

loop the below code.

PERFORM append_field_values   USING 'RV45A-MABNR(01)'      gs_tab1-matnr
CHANGING lt_bdcdata.

PERFORM append_field_values   USING 'VBAP-POSNR(01)'       gs_tab1-item
CHANGING lt_bdcdata.

PERFORM append_field_values   USING 'RV45A-KWMENG(01)'     gs_tab1-qty
CHANGING lt_bdcdata


append to lt_bdcdata..


endloop.



Regards,

Krishna

Read only

0 Likes
1,030

Hi Krishna,

I tried looping the above mention fields but the sales order is not created please elaborate on the steps to be done for creating a so with mulitple line items.

Thank you,

Regards,

balaji.

Read only

ArcherZhang
Product and Topic Expert
Product and Topic Expert
0 Likes
1,030

Hi Balaji,

Do as Krishna said,

data: gv_index type c.

Loop at it_tab1 into gs_tab1.

gv_index = sy-tabix.

CONCATENATE ''RV45A-MABNR(0' gv_index ')' INTO gv_filed1.

PERFORM append_field_values   USING gv_filed1 gs_tab1-matnr
CHANGING lt_bdcdata.
CONCATENATE 'VBAP-POSNR(0' gv_index ')' INTO gv_filed2. 
PERFORM append_field_values   USING   gv_filed2    gs_tab1-item
CHANGING lt_bdcdata.
CONCATENATE 'RV45A-KWMENG(0' gv_index ')' INTO gv_filed3.
PERFORM append_field_values   USING  gv_field3   gs_tab1-qty
CHANGING lt_bdcdata

append to lt_bdcdata..

endloop.

regards,

Archer