‎2007 Apr 18 8:34 AM
hi all,
i have developed a bdc program, wen i run this program its going into dump,showing that a function module guiupload was called incorrectly, it is not accepting the file type, iam attaching the bdc program please help me in this regard.
thanks in advance
siva
REPORT Z_DISPLAY_SERVICE line-size 80
line-count 65
message-id zz.
TABLES: ASMD,ASMDT.
DATA : BEGIN OF INT_BDC OCCURS 100.
INCLUDE STRUCTURE BDCDATA.
DATA : END OF INT_BDC.
DATA :BEGIN OF INT_SERVICE OCCURS 0,
ASNUM LIKE ASMD-ASNUM, "ACTIVITY NUMBER
ASKTX LIKE ASMDT-ASKTX, "DESCRIPTION FOR ACTIVITY
ASTYP LIKE ASMD-ASTYP, "SERVICE CATEGORY
MEINS LIKE ASMD-MEINS, "BASIC UNIT OF MEASURE
MATKL LIKE ASMD-MATKL, "MAT/SERVICE GROUP
TAXIM LIKE ASMD-TAXIM, "TAX INDICATOR
BKLAS LIKE ASMD-BKLAS, "VALUATION CLASS
END OF INT_SERVICE.
DATA :BEGIN OF INT_ERROR OCCURS 50,
MSG LIKE SY-MSGV1,
ASNUM LIKE ASMD-ASNUM,
END OF INT_ERROR.
PARAMETER : P_INFILE like rlgrap-filename.
*DATA : p_INFILE(128) VALUE
'C:\Documents and Settings\scdadm\Desktop\testbdc.txt'.
*
START-OF-SELECTION.
PERFORM UPLOAD.
PERFORM BUILD_BDC.
perform submit_bdc.
END-OF-SELECTION.
PERFORM ERROR_REPORT.
FORM UPLOAD.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = P_INFILE
FILETYPE = 'DAT'
HAS_FIELD_SEPARATOR = ' '
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
VIRUS_SCAN_PROFILE =
NO_AUTH_CHECK = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
DATA_TAB = INT_SERVICE.
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 <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM.
FORM BUILD_BDC.
PERFORM BDC_SCREEN TABLES INT_BDC
USING 'SAPLBAS0' '0300'.
PERFORM BDC_FIELDS TABLES INT_BDC:
USING 'ASMD-ASNUM' INT_SERVICE-ASNUM, "ACTIVITY NUMBER
PERFORM BDC_FIELDS TABLES INT_BDC
USING 'ASMDT-ASKTX' INT_SERVICE-ASKTX, "DESCRIPTION TEXT
PERFORM BDC_FIELDS TABLES INT_BDC
USING 'ASMD-ASTYP' INT_SERVICE-ASTYP, "SERVICE CATEGORY
PERFORM BDC_FIELDS TABLES INT_BDC
USING 'ASMD-MEINS' INT_SERVICE-MEINS, "BASIC UNIT OF MEASURE
PERFORM BDC_FIELDS TABLES INT_BDC
USING 'ASMD-TAXIM' INT_SERVICE-TAXIM, "TAX INDICATOR
PERFORM BDC_FIELDS TABLES INT_BDC
USING 'ASMD-BKLAS' INT_SERVICE-BKLAS, "VALUATION CLASS
PERFORM BDC_FIELDS TABLES INT_BDC
USING 'BDC_OKCODE' '/11'. "SAVE AND END
ENDFORM.
FORM SUBMIT_BDC.
CALL TRANSACTION 'AC03' USING INT_BDC MODE 'N'.
IF SY-SUBRC <> 0.
MOVE SY-MSGV1 TO INT_ERROR-MSG.
MOVE INT_SERVICE-ASNUM TO INT_ERROR-ASNUM.
APPEND INT_ERROR.
ENDIF.
ENDFORM.
FORM ERROR_REPORT.
WRITE: 'ACTIVITY RECORDS WITH ERRORS'.
WRITE:1, 'VENDOR', 11 'ERROR MESSAGE'.
LOOP AT INT_ERROR.
WRITE:1,INT_ERROR-ASNUM,11 INT_ERROR-MSG.
ENDLOOP.
ENDFORM.
FORM BDC_SCREEN TABLES P_BDC STRUCTURE BDCDATA
USING P_PROGRAM P_SCREEN.
CLEAR P_BDC.
P_BDC-PROGRAM = P_PROGRAM.
P_BDC-DYNPRO = P_SCREEN.
P_BDC-DYNBEGIN = 'X'.
APPEND P_BDC.
ENDFORM.
FORM BDC_FIELDS TABLES P_BDC STRUCTURE BDCDATA
USING P_NAME P_VALUE.
CASE P_VALUE.
WHEN ' '.
WHEN OTHERS.
MOVE P_NAME TO P_BDC-FNAM.
MOVE P_VALUE TO P_BDC-FVAL.
APPEND P_BDC.
ENDCASE.
‎2007 Apr 18 8:39 AM
Hi,
Comment the line FILE TYPE and execute the program
Regards
Sudheer
‎2007 Apr 18 8:48 AM
hi sudeer,
tanks for ur reply, i did like that wat u said,but it is showing the error message p_infile specified is has different field type.
can u help me in this regard
regards
siva
‎2007 Apr 18 10:53 AM
Hi,
Go thru this FM.
Change file type to ASC
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = P_INFILE
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = ' '
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
VIRUS_SCAN_PROFILE =
NO_AUTH_CHECK = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
DATA_TAB = INT_SERVICE.
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 <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Thanks
Sunil
‎2007 Apr 18 11:01 AM
Hi siva,
uncomment the parameter has_field_separator and pass ' ' in gui_upload.
Regards,
venkat
‎2007 Apr 18 11:05 AM
Declare a variable type string.
ex: g_str type string.
Pass the file name to this variable in start-of-selection event.
START-OF-SELECTION.
g_str = P_INFILE.
now pass this g_str to gui_upload fm instead of p_infile.