‎2008 Feb 04 3:02 PM
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
‎2008 Feb 04 3:06 PM
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
‎2008 Feb 04 3:06 PM
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
‎2008 Feb 04 3:09 PM
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'.
--
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
‎2008 Feb 04 3:14 PM
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
‎2008 Feb 04 3:32 PM
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
‎2008 Feb 04 3:45 PM
Hi all,
ThanX for ur valuable replies.
i solved it my own just i delete some code its workng fine.
regards,
ravi shankar reddy
‎2008 Apr 15 6:44 AM
Hi,
Pls help me with an issue during data transfer .I am able to do recording .
But getting error while executing the o/p.
‎2009 May 08 8:13 PM
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