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

CL01Tcode uploading classes

Former Member
0 Likes
543

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

1 REPLY 1
Read only

Former Member
0 Likes
414

Plz guys help me on this... till now i didn't get any replay....