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

Hi: Uploading data for CN22 tcode

Former Member
0 Likes
1,147

Hi,

Iam uploading data from flat file to sap, for CN22 transaction.

If i execute in foreground , it's working fine.

when iam trying to execute in background it is not updating.

i also used WAIT.

still it is not updating.

points will be rewarded,

thanks in advance,

ravi shankar reddy

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
991

Hi Ravi ,

Did you check the error messages that are returned after the call transaction statement?

data: it_messages type standard table of BDCMSGCOLL with header line.

call transaction 'CN22' using it_bdcdata options from x_ctuparams messages into it_messages.

loop at it_messages.

call function 'FORMAT_MESSAGE'

.

.

.

exporting

message = v_message

.

.

write:/ v_message.

endloop.

Regards,

Ravi Kanth Talagana

7 REPLIES 7
Read only

Former Member
0 Likes
992

Hi Ravi ,

Did you check the error messages that are returned after the call transaction statement?

data: it_messages type standard table of BDCMSGCOLL with header line.

call transaction 'CN22' using it_bdcdata options from x_ctuparams messages into it_messages.

loop at it_messages.

call function 'FORMAT_MESSAGE'

.

.

.

exporting

message = v_message

.

.

write:/ v_message.

endloop.

Regards,

Ravi Kanth Talagana

Read only

0 Likes
991

Hi Ravi,

Iam using the same thing , but it is not working.

pls check the code.

REPORT zcn22networkid

NO STANDARD PAGE HEADING LINE-SIZE 255.

*include bdcrecx1.

&----


  • DATA DECLARATIONS *

&----


TYPES : BEGIN OF ty_rectab,

aufnr TYPE caufvd-aufnr,

vornr TYPE afvgd-vornr,

ltxa1 TYPE afvgd-ltxa1,

dauno(7), " TYPE afvgd-dauno,

arbei(9), " TYPE afvgd-arbei,

arbpl TYPE afvgd-arbpl,

mat_prkst(14), " TYPE afvgd-mat_prkst,

prkst(14), " TYPE afvgd-prkst,

waers TYPE afvgd-waers,

sakto TYPE afvgd-sakto,

END OF ty_rectab.

TYPES: BEGIN OF ty_msg,

msgnr(24), " TYPE bdcmsgcoll-msgnr,

msgtyp(10), "TYPE bdcmsgcoll-msgtyp,

message(500),

END OF ty_msg.

DATA : l_string(500).

DATA : fname TYPE string.

DATA : fname1 TYPE string.

DATA : l_indx(6) TYPE n.

DATA : l_indx1(6) TYPE n.

DATA : l_tab(1) TYPE c VALUE cl_abap_char_utilities=>horizontal_tab.

DATA : g_fieldname TYPE string.

DATA : opt TYPE ctu_params.

&----


  • INTERNAL TABLES *

&----


DATA : it_upload TYPE string OCCURS 0 WITH HEADER LINE.

DATA : bdcdata TYPE STANDARD TABLE OF bdcdata WITH HEADER LINE.

DATA : messtab TYPE STANDARD TABLE OF bdcmsgcoll WITH HEADER LINE.

DATA : it_rec TYPE STANDARD TABLE OF ty_rectab WITH HEADER LINE.

DATA : it_rec1 TYPE STANDARD TABLE OF ty_rectab WITH HEADER LINE.

DATA : it_msg TYPE STANDARD TABLE OF ty_msg WITH HEADER LINE.

DATA : it_rec2 TYPE STANDARD TABLE OF ty_rectab WITH HEADER LINE.

DATA : it_rec3 TYPE STANDARD TABLE OF ty_rectab WITH HEADER LINE.

&----


  • SELECTION SCREEN *

&----


SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME.

PARAMETERS : p_file TYPE rlgrap-filename OBLIGATORY.

PARAMETERS : r_fgrd RADIOBUTTON GROUP g1.

PARAMETERS : r_bgrd RADIOBUTTON GROUP g1.

SELECTION-SCREEN END OF BLOCK block1.

SELECTION-SCREEN BEGIN OF BLOCK block2 WITH FRAME.

PARAMETERS : p_efile TYPE rlgrap-filename. " OBLIGATORY.

SELECTION-SCREEN END OF BLOCK block2.

&----


  • F4 HELP FOR FILE *

&----


AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

PERFORM f4_filename.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_efile.

PERFORM get_errorfile.

START-OF-SELECTION.

PERFORM upload_data.

*****FOR FOREGROUND*****

IF r_fgrd = 'X'.

opt-dismode = 'A'.

opt-updmode = 'S'.

opt-defsize = 'X'.

****FOR BACKGROUND******

ELSEIF r_bgrd = 'X'.

opt-dismode = 'N'.

opt-updmode = 'S'.

opt-defsize = 'X'.

ENDIF.

****BDC Data************

PERFORM bdc_data.

IF it_msg[] IS NOT INITIAL.

it_msg-msgnr = 'NetworkID'.

it_msg-msgtyp = 'Msgtyp'.

it_msg-message = 'Message'.

PERFORM download_errorfile.

ENDIF.

&----


*& Form f4_filename *

&----


FORM f4_filename .

CALL FUNCTION 'F4_FILENAME'

EXPORTING

field_name = 'P_FILE'

IMPORTING

file_name = p_file.

ENDFORM. " f4_filename

&----


*& Form get_errorfile *

&----


FORM get_errorfile .

CALL FUNCTION 'F4_FILENAME'

EXPORTING

field_name = 'P_EFILE'

IMPORTING

file_name = p_efile.

ENDFORM. " get_errorfile

&----


*& FORM UPLOAD_DATA *

&----


FORM upload_data .

fname = p_file.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

filename = fname

filetype = 'ASC'

TABLES

data_tab = it_upload

EXCEPTIONS

file_open_error = 1

file_read_error = 2

no_batch = 3

gui_refuse_filetransfer = 4

invalid_type = 5

no_authority = 6

unknown_error = 7

bad_data_format = 8

header_not_allowed = 9

separator_not_allowed = 10

header_too_long = 11

unknown_dp_error = 12

access_denied = 13

dp_out_of_memory = 14

disk_full = 15

dp_timeout = 16

OTHERS = 17.

IF sy-subrc NE 0.

MESSAGE e001(00) WITH 'Error occurred while file reading'.

ELSE.

LOOP AT it_upload.

SPLIT it_upload AT l_tab INTO it_rec-aufnr

it_rec-vornr

it_rec-ltxa1

it_rec-dauno

it_rec-arbei

it_rec-arbpl

it_rec-mat_prkst

it_rec-prkst

it_rec-waers

it_rec-sakto IN CHARACTER MODE.

APPEND it_rec.

CLEAR it_rec.

ENDLOOP.

ENDIF.

ENDFORM. " upload_data

&----


  • FORM BDC DATA

&----


FORM bdc_data .

it_rec1[] = it_rec[].

SORT it_rec1 BY aufnr.

DELETE ADJACENT DUPLICATES FROM it_rec1 COMPARING aufnr.

**********************************************************

LOOP AT it_rec.

IF ( ( it_rec-dauno IS NOT INITIAL ) AND

( it_rec-arbei IS NOT INITIAL ) AND

( it_rec-arbpl IS NOT INITIAL ) AND

( it_rec-mat_prkst IS NOT INITIAL ) ).

MOVE it_rec-aufnr TO it_rec2-aufnr.

MOVE it_rec-vornr TO it_rec2-vornr.

MOVE it_rec-ltxa1 TO it_rec2-ltxa1.

MOVE it_rec-dauno TO it_rec2-dauno.

MOVE it_rec-arbei TO it_rec2-arbei.

MOVE it_rec-arbpl TO it_rec2-arbpl.

MOVE it_rec-mat_prkst TO it_rec2-mat_prkst.

APPEND it_rec2.

CLEAR it_rec2.

ELSEIF ( ( it_rec-dauno IS INITIAL ) AND

( it_rec-arbei IS INITIAL ) AND

( it_rec-arbpl IS INITIAL ) AND

( it_rec-mat_prkst IS INITIAL ) ).

MOVE it_rec-aufnr TO it_rec3-aufnr.

MOVE it_rec-vornr TO it_rec3-vornr.

MOVE it_rec-ltxa1 TO it_rec3-ltxa1.

MOVE it_rec-prkst TO it_rec3-prkst.

MOVE it_rec-waers TO it_rec3-waers.

MOVE it_rec-sakto TO it_rec3-sakto.

APPEND it_rec3.

CLEAR it_rec3.

ENDIF.

ENDLOOP.

SORT it_rec2 BY aufnr.

SORT it_rec3 BY aufnr.

**********************************************************

LOOP AT it_rec1.

CLEAR l_indx.

CLEAR l_indx1.

PERFORM bdc_dynpro USING 'SAPLCOKO' '2000'.

PERFORM bdc_field USING 'BDC_CURSOR'

'CAUFVD-AUFNR'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'CAUFVD-AUFNR'

it_rec1-aufnr.

PERFORM bdc_dynpro USING 'SAPLCOKO' '2100'.

PERFORM bdc_field USING 'BDC_CURSOR'

'CAUFVD-KTEXT'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=LIST'.

--


table control--

LOOP AT it_rec2 WHERE aufnr = it_rec1-aufnr.

l_indx = l_indx + 1.

IF l_indx EQ 14 .

l_indx = l_indx MOD 12.

PERFORM bdc_dynpro USING 'SAPLCOVG' '2000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=P+'.

ENDIF.

PERFORM bdc_dynpro USING 'SAPLCOVG' '2000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

CONCATENATE 'AFVGD-DAUNO(' l_indx ')' INTO g_fieldname.

PERFORM bdc_field USING g_fieldname

'AFVGD-DAUNO'.

PERFORM bdc_dynpro USING 'SAPLCOVG' '2000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

CONCATENATE 'AFVGD-ARBPL(' l_indx ')' INTO g_fieldname.

PERFORM bdc_field USING 'BDC_CURSOR'

g_fieldname.

CONCATENATE 'AFVGD-VORNR(' l_indx ')' INTO g_fieldname.

PERFORM bdc_field USING g_fieldname

it_rec2-vornr.

CONCATENATE 'AFVGD-LTXA1(' l_indx ')' INTO g_fieldname.

PERFORM bdc_field USING g_fieldname

it_rec2-ltxa1.

CONCATENATE 'AFVGD-DAUNO(' l_indx ')' INTO g_fieldname.

PERFORM bdc_field USING g_fieldname

it_rec2-dauno.

CONCATENATE 'AFVGD-ARBEI(' l_indx ')' INTO g_fieldname.

PERFORM bdc_field USING g_fieldname

it_rec2-arbei.

CONCATENATE 'AFVGD-ARBPL(' l_indx ')' INTO g_fieldname.

PERFORM bdc_field USING g_fieldname

it_rec2-arbpl.

PERFORM bdc_dynpro USING 'SAPLCONW' '1000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=BACK'.

PERFORM bdc_field USING 'BDC_CURSOR'

'AFVGD-VORNR'.

PERFORM bdc_field USING 'AFVGD-VORNR'

it_rec2-vornr.

PERFORM bdc_field USING 'AFVGM-LTXA1'

it_rec2-ltxa1.

PERFORM bdc_field USING 'AFVGD-ARBPL'

it_rec2-arbpl.

PERFORM bdc_field USING 'AFVGD-ARBEI'

it_rec2-arbei.

PERFORM bdc_field USING 'AFVGD-DAUNO'

it_rec2-dauno.

PERFORM bdc_dynpro USING 'SAPLCONW' '1000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=BACK'.

PERFORM bdc_field USING 'BDC_CURSOR'

'AFVGD-VORNR'.

PERFORM bdc_field USING 'AFVGD-VORNR'

it_rec2-vornr.

PERFORM bdc_field USING 'AFVGM-LTXA1'

it_rec2-ltxa1.

PERFORM bdc_dynpro USING 'SAPLCONW' '1000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=BACK'.

PERFORM bdc_field USING 'BDC_CURSOR'

'AFVGD-VORNR'.

PERFORM bdc_field USING 'AFVGD-VORNR'

it_rec2-vornr.

PERFORM bdc_field USING 'AFVGM-LTXA1'

it_rec2-ltxa1.

PERFORM bdc_dynpro USING 'SAPLCONW' '1000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=BACK'.

PERFORM bdc_field USING 'AFVGD-VORNR'

it_rec2-vornr.

PERFORM bdc_field USING 'AFVGM-LTXA1'

it_rec2-ltxa1.

PERFORM bdc_field USING 'BDC_CURSOR'

'AFVGD-MAT_PRKST'.

PERFORM bdc_field USING 'AFVGD-MAT_PRKST'

it_rec2-mat_prkst.

PERFORM bdc_dynpro USING 'SAPLCOVG' '2000'.

PERFORM bdc_field USING 'BDC_CURSOR'

'VSNETEXT-NPLNR'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ARBL'.

ENDLOOP.

LOOP AT it_rec3 WHERE aufnr = it_rec1-aufnr.

l_indx1 = l_indx1 + 1.

IF l_indx1 EQ 14 .

l_indx1 = l_indx1 MOD 12.

PERFORM bdc_dynpro USING 'SAPLCOVG' '2000'..

PERFORM bdc_field USING 'BDC_OKCODE'

'=P+'.

ENDIF.

PERFORM bdc_dynpro USING 'SAPLCOVG' '2000'.

CONCATENATE 'AFVGD-SAKTO(' l_indx1 ')' INTO g_fieldname.

PERFORM bdc_field USING g_fieldname

'AFVGD-SAKTO'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=KOSL'.

PERFORM bdc_dynpro USING 'SAPLCOVG' '2000'.

PERFORM bdc_field USING 'BDC_CURSOR'

'VSNETEXT-NPLNR'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=KOSL'.

PERFORM bdc_dynpro USING 'SAPLCOVG' '2000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

CONCATENATE 'AFVGD-SAKTO(' l_indx1 ')' INTO g_fieldname.

PERFORM bdc_field USING 'BDC_CURSOR'

g_fieldname.

CONCATENATE 'AFVGD-VORNR(' l_indx1 ')' INTO g_fieldname.

PERFORM bdc_field USING g_fieldname

it_rec3-vornr.

CONCATENATE 'AFVGD-LTXA1(' l_indx1 ')' INTO g_fieldname.

PERFORM bdc_field USING g_fieldname

it_rec3-ltxa1.

CONCATENATE 'AFVGD-PRKST(' l_indx1 ')' INTO g_fieldname.

PERFORM bdc_field USING g_fieldname

it_rec3-prkst.

.

CONCATENATE 'AFVGD-WAERS(' l_indx1')' INTO g_fieldname.

PERFORM bdc_field USING g_fieldname

it_rec3-waers.

CONCATENATE 'AFVGD-SAKTO(' l_indx1 ')' INTO g_fieldname.

PERFORM bdc_field USING g_fieldname

it_rec3-sakto.

PERFORM bdc_dynpro USING 'SAPLCONW' '1000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=BACK'.

PERFORM bdc_field USING 'AFVGD-VORNR'

it_rec3-vornr.

PERFORM bdc_field USING 'AFVGM-LTXA1'

it_rec3-ltxa1.

PERFORM bdc_field USING 'BDC_CURSOR'

'AFVGD-PRKST'.

PERFORM bdc_field USING 'AFVGD-PRKST'

it_rec3-prkst.

PERFORM bdc_field USING 'AFVGD-WAERS'

it_rec3-waers.

PERFORM bdc_field USING 'AFVGD-SAKTO'

it_rec3-sakto.

PERFORM bdc_dynpro USING 'SAPLCONW' '1000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=BACK'.

PERFORM bdc_field USING 'BDC_CURSOR'

'AFVGD-VORNR'.

PERFORM bdc_field USING 'AFVGD-VORNR'

it_rec3-vornr.

PERFORM bdc_field USING 'AFVGM-LTXA1'

it_rec3-ltxa1.

PERFORM bdc_dynpro USING 'SAPLCONW' '1000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=BACK'.

PERFORM bdc_field USING 'BDC_CURSOR'

'AFVGD-VORNR'.

PERFORM bdc_field USING 'AFVGD-VORNR'

it_rec3-vornr.

PERFORM bdc_field USING 'AFVGM-LTXA1'

it_rec3-ltxa1.

PERFORM bdc_dynpro USING 'SAPLCONW' '1000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=BACK'.

PERFORM bdc_field USING 'BDC_CURSOR'

'AFVGD-VORNR'.

PERFORM bdc_field USING 'AFVGD-VORNR'

it_rec3-vornr.

PERFORM bdc_field USING 'AFVGM-LTXA1'

it_rec3-ltxa1.

PERFORM bdc_dynpro USING 'SAPLCOVG' '2000'.

PERFORM bdc_field USING 'BDC_CURSOR'

'VSNETEXT-NPLNR'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ARBL'.

ENDLOOP.

CLEAR it_rec.

WAIT UP TO 10 SECONDS.

PERFORM bdc_dynpro USING 'SAPLCOVG' '2000'.

PERFORM bdc_field USING 'BDC_CURSOR'

'VSNETEXT-NPLNR'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=BU'.

REFRESH messtab.

CLEAR messtab.

CALL TRANSACTION 'CN22' USING bdcdata

OPTIONS FROM opt MESSAGES INTO messtab.

**********************************************************************

********ERROR MESSAGES TABLE************

LOOP AT messtab WHERE ( msgtyp = 'E' ).

CALL FUNCTION 'FORMAT_MESSAGE'

EXPORTING

id = messtab-msgid

lang = '-D'

no = messtab-msgnr

v1 = messtab-msgv1

v2 = messtab-msgv2

v3 = messtab-msgv3

v4 = messtab-msgv4

IMPORTING

msg = l_string

EXCEPTIONS

not_found = 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.

ELSE.

it_msg-msgnr = it_rec-aufnr.

it_msg-msgtyp = messtab-msgtyp.

it_msg-message = l_string.

APPEND it_msg.

CLEAR it_msg.

CLEAR l_string.

CLEAR messtab.

ENDIF.

ENDLOOP. "IT_REC

REFRESH bdcdata.

CLEAR bdcdata.

ENDLOOP. "IT_REC1

ENDFORM. " bdc_data

----


  • Start new screen *

----


FORM bdc_dynpro USING program dynpro.

CLEAR bdcdata.

bdcdata-program = program.

bdcdata-dynpro = dynpro.

bdcdata-dynbegin = 'X'.

APPEND bdcdata.

ENDFORM. "BDC_DYNPRO

----


  • Insert field *

----


FORM bdc_field USING fnam fval.

CLEAR bdcdata.

bdcdata-fnam = fnam.

bdcdata-fval = fval.

APPEND bdcdata.

ENDFORM. "BDC_FIELD

&----


*& Form download_errorfile *

&----


FORM download_errorfile .

fname1 = p_efile.

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

filename = fname1

filetype = 'ASC'

write_field_separator = 'X'

TABLES

data_tab = it_msg[]

EXCEPTIONS

file_write_error = 1

no_batch = 2

gui_refuse_filetransfer = 3

invalid_type = 4

no_authority = 5

unknown_error = 6

header_not_allowed = 7

separator_not_allowed = 8

filesize_not_allowed = 9

header_too_long = 10

dp_error_create = 11

dp_error_send = 12

dp_error_write = 13

unknown_dp_error = 14

access_denied = 15

dp_out_of_memory = 16

disk_full = 17

dp_timeout = 18

file_not_found = 19

dataprovider_exception = 20

control_flush_error = 21

OTHERS = 22.

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. " download_errorfile

Read only

Former Member
0 Likes
991

Hello Ravi ,

The problem is u haven't coded to upload the file when the report is executed in BAckground.

If the report is executed in BG then the file should be from Application server.

Make the changes like this.


START-OF-SELECTION.

IF SY-BATCH is initial
perform upload.
else.
perform upload_APP.
endif.

form upload_APP.
" Here use
OPEN DATASET
READ DATASET
CLOSÈ DATASET
endform upload_APP.

Hope u understood the problem.

Regards,

Vasanth

Read only

0 Likes
991

Hi vasanth,

ThanQ for Ur reply.

Iam uploading from presentaion server, so i think no need to call open dataset and all.

prevoiusly i did for WBS elements also there it is working fine.

pls tell me if any solution u know.

regards,

ravi shankar reddy

Read only

0 Likes
991

Hi all,

ThanX for ur valuable replies.

i solved it my own just i delete some code its workng fine.

regards,

ravi shankar reddy

Read only

0 Likes
991

Hi,

Pls help me with an issue during data transfer .I am able to do recording .

But getting error while executing the o/p.

Read only

0 Likes
991

Hi Ravi

In February 2008, you sent a e-mail, actually I have the same problem, please you would to help me with this error and say me. How did you resolve this problem?

You indicated which deleted some code, What code?

Thank you very much.

Melania