‎2007 Sep 21 5:58 AM
Hi guys,
I am uploading Classes using Tcode CL01,
My problem is one Class has number of charecteristics means multiple charecteristics... and one Charecteristic has multiple Values.....
when i am uploading only one record is creating it doesn't going to another one means multiple records...
Here iam sending my code... check where i am doing woring...plz help me about this any quires plz replay me...
report ZCLASS_CHAR1
no standard page heading line-size 255.
*include bdcrecx1.
Data: begin of it_upload occurs 0,
CLASS like RMCLM-CLASS,
klart like RMCLM-KLART,
KLBEZ like RMCLM-KLBEZ,
MERKMA like RMCLM-MERKMA,
ATBEZ like CABNT-ATBEZ,
FORMAT like RCTMV-FORMAT,
ANZST like CABN-ANZST,
ATWRT like CAWN-ATWRT,
ATWTB like CAWNT-ATWTB,
end of it_upload.
Data: begin of it_header occurs 0,
CLASS like RMCLM-CLASS,
klart like RMCLM-KLART,
KLBEZ like RMCLM-KLBEZ,
IND(2) TYPE N,
end of it_header.
Data: begin of it_item1 occurs 0,
MERKMA like RMCLM-MERKMA,
ATBEZ like CABNT-ATBEZ,
FORMAT like RCTMV-FORMAT,
ANZST like CABN-ANZST,
IND1(2) TYPE N,
end of it_item1.
Data: begin of it_item2 occurs 0,
ATWRT like CAWN-ATWRT,
ATWTB like CAWNT-ATWTB,
IND2(2) TYPE N,
end of it_item2.
data: begin of it_upload_err occurs 0,
CLASS like RMCLM-CLASS,
klart like RMCLM-KLART,
KLBEZ like RMCLM-KLBEZ,
MERKMA like RMCLM-MERKMA,
ATBEZ like CABNT-ATBEZ,
FORMAT like RCTMV-FORMAT,
ANZST like CABN-ANZST,
ATWRT like CAWN-ATWRT,
ATWTB like CAWNT-ATWTB,
end of it_upload_err.
DATA : it_data(100) OCCURS 0 WITH HEADER LINE,
it_bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE,
it_field(100) OCCURS 0 WITH HEADER LINE,
it_bdcmsg LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.
DATA : v_path TYPE string.
FIELD-SYMBOLS : <fs> TYPE ANY.
----
Selection Screen *
----
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN ULINE.
PARAMETERS : p_path LIKE rlgrap-filename OBLIGATORY
DEFAULT 'D:\Documents and Settings\277512\Desktop\.txt'.
*PARAMETERS p_sel TYPE zmode DEFAULT 'A'.
SELECTION-SCREEN ULINE.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN END OF BLOCK b1.
----
At Selection Screen *
----
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = ' '
IMPORTING
file_name = p_path.
----
Start of Selection *
----
START-OF-SELECTION.
v_path = p_path.
PERFORM upload_internal_table.
Perform process_data.
PERFORM fill_bdcdata.
&----
*& Form upload_internal_table
&----
text
----
--> p1 text
<-- p2 text
----
FORM upload_internal_table .
UPLOADING THE FILE.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = v_path
TABLES
data_tab = it_data.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
PERFORM format_file_read.
ENDFORM. " upload_internal_table
&----
*& Form format_file_read
&----
text
----
--> p1 text
<-- p2 text
----
FORM format_file_read .
LOOP AT it_data.
SPLIT it_data AT cl_abap_char_utilities=>horizontal_tab INTO
TABLE it_field.
LOOP AT it_field.
IF NOT it_field IS INITIAL.
ASSIGN COMPONENT sy-tabix OF STRUCTURE it_upload TO <fs>.
<fs> = it_field.
ENDIF.
ENDLOOP.
APPEND it_upload.
CLEAR: it_field ,it_upload .
REFRESH : it_field.
ENDLOOP.
ENDFORM. " format_file_read
&----
*& Form process_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM process_data .
Loop at it_upload.
If it_upload is not initial.
MOVE-CORRESPONDING it_upload TO it_header.
ADD 1 TO it_header-ind.
APPEND it_header.
Endif.
READ TABLE it_header INDEX it_header-ind.
If sy-subrc = 0.
MOVE-CORRESPONDING it_upload TO it_item1.
ADD 1 TO it_item1-ind1.
APPEND it_item1.
Endif.
READ TABLE it_item1 INDEX it_item1-ind1.
If sy-subrc = 0.
MOVE-CORRESPONDING it_upload TO it_item2.
ADD 1 TO it_item2-ind2.
APPEND it_item2.
Endif.
Endloop.
ENDFORM. " process_data
&----
*& Form fill_bdcdata
&----
text
----
--> p1 text
<-- p2 text
----
FORM fill_bdcdata .
loop at it_header.
refresh it_bdcdata.
*perform open_group.
perform bdc_dynpro using 'SAPLCLMO' '0100'.
perform bdc_field using 'BDC_CURSOR'
'RMCLM-KLART'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RMCLM-CLASS'
it_header-class. " 'CL_kM'.
perform bdc_field using 'RMCLM-KLART'
it_header-KLART. " '017'.
perform bdc_dynpro using 'SAPLCLMO' '0100'.
perform bdc_field using 'BDC_CURSOR'
'RMCLM-CLASS'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RMCLM-CLASS'
it_header-class. " 'CL_KM'.
perform bdc_field using 'RMCLM-KLART'
it_header-klart. " '017'.
perform bdc_dynpro using 'SAPLCLMO' '7777'.
perform bdc_field using 'BDC_OKCODE'
'=MERK'.
perform bdc_field using 'BDC_CURSOR'
'RMCLM-KLBEZ'.
perform bdc_field using 'RMCLM-KLBEZ'
it_header-KLBEZ. " 'kmmclass'.
perform bdc_field using 'RMCLM-STATU'
'1'.
perform bdc_field using 'RMCLM-VONDT'
'20.09.2007'.
perform bdc_field using 'RMCLM-BISDT'
'31.12.9999'.
perform bdc_field using 'RMCLM-PRAUS'
'X'.
loop at it_item1 where ind1 = it_header-ind.
add 1 to it_item1-ind1.
perform bdc_dynpro using 'SAPLCLMO' '7777'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BDC_CURSOR'
'RMCLM-MERKMA(01)'.
perform bdc_field using 'RMCLM-MERKMA(01)'
it_item1-MERKMA. " 'ch_kmm'.
perform bdc_dynpro using 'SAPLSPO1' '0100'.
perform bdc_field using 'BDC_OKCODE'
'=YES'.
perform bdc_dynpro using 'SAPLCTMV' '0110'.
perform bdc_field using 'BDC_OKCODE'
'=FORMAT'.
perform bdc_field using 'CABNT-ATBEZ'
it_item1-ATBEZ. " 'charkmm'.
perform bdc_field using 'CABN-ATMST'
'1'.
perform bdc_field using 'BDC_CURSOR'
'RCTMV-FORMAT'.
perform bdc_field using 'RCTMV-FORMAT'
'CHAR'.
perform bdc_field using 'RCTMV-ATEIN'
'X'.
perform bdc_dynpro using 'SAPLCTMV' '0110'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'CABNT-ATBEZ'
it_item1-ATBEZ. " 'charkmm'.
perform bdc_field using 'CABN-ATMST'
'1'.
perform bdc_field using 'BDC_CURSOR'
'CABN-ANZST'.
perform bdc_field using 'RCTMV-FORMAT'
'CHAR'.
perform bdc_field using 'RCTMV-ATEIN'
'X'.
perform bdc_field using 'CABN-ANZST'
it_item1-anzst. " '5'.
perform bdc_dynpro using 'SAPLCTMV' '0110'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'CABNT-ATBEZ'
it_item1-ATBEZ. " 'charkmm'.
perform bdc_field using 'CABN-ATMST'
'1'.
perform bdc_field using 'BDC_CURSOR'
'CABN-ANZST'.
perform bdc_field using 'RCTMV-FORMAT'
'CHAR'.
perform bdc_field using 'RCTMV-ATEIN'
'X'.
perform bdc_field using 'CABN-ANZST'
it_item1-anzst. " '5'.
perform bdc_dynpro using 'SAPLCTMV' '0110'.
perform bdc_field using 'BDC_OKCODE'
'=SICH'.
perform bdc_field using 'CABNT-ATBEZ'
it_item1-ATBEZ. " 'charkmm'.
perform bdc_field using 'CABN-ATMST'
'1'.
perform bdc_field using 'BDC_CURSOR'
'CABN-ANZST'.
perform bdc_field using 'RCTMV-FORMAT'
'CHAR'.
perform bdc_field using 'RCTMV-ATEIN'
'X'.
perform bdc_field using 'CABN-ANZST'
'5'.
loop at it_item2 where ind2 = it_ITEM1-ind1.
add 1 to it_item2-ind2.
perform bdc_dynpro using 'SAPLCTMV' '0200'.
perform bdc_field using 'BDC_CURSOR'
'CAWNT-ATWTB(01)'.
perform bdc_field using 'BDC_OKCODE'
'=SICH'.
perform bdc_field using 'CAWNT-ATWTB(01)'
'ckdes'.
perform bdc_field using 'CAWN-ATWRT(01)'
'ck'.
endloop.
endloop.
perform bdc_transaction using 'CL01'.
*
perform close_group.
CALL TRANSACTION 'CL01' USING it_bdcdata MODE 'A' MESSAGES INTO it_bdcmsg.
p_sel MESSAGES INTO it_bdcmsg.
IF sy-subrc <> 0.
MOVE-CORRESPONDING it_UPLOAD TO it_upload_err.
APPEND it_upload_err.
WRITE 😕 'Data is not uploaded for the CLASS :', it_upload-CLASS.
ENDIF.
ENDIF.
ENDLOOP.
IF it_upload_err[] IS NOT INITIAL.
CALL FUNCTION 'DOWNLOAD'
EXPORTING
filename = ' '
filetype = 'DAT'
TABLES
data_tab = it_upload_err.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ELSE.
WRITE 😕 'Data is uploaded sucessfully for all materials.'.
ENDIF.
ENDFORM. " fill_bdcdata
----
Start new screen *
----
FORM bdc_dynpro USING program dynpro.
CLEAR it_bdcdata.
it_bdcdata-program = program.
it_bdcdata-dynpro = dynpro.
it_bdcdata-dynbegin = 'X'.
APPEND it_bdcdata.
ENDFORM. "BDC_DYNPRO
----
Insert field *
----
FORM bdc_field USING fnam fval.
IF fval <> space.
CLEAR it_bdcdata.
it_bdcdata-fnam = fnam.
it_bdcdata-fval = fval.
IF it_bdcdata-fval = 'D'.
CLEAR it_bdcdata-fval.
ENDIF.
APPEND it_bdcdata.
ENDIF.
ENDFORM. "BDC_FIELD
‎2007 Sep 21 10:35 AM
Plz guys help me on this... till now i didn't get any replay....