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

Problem while uploading data from excel sheet

Former Member
0 Likes
791

Hi friends, I am having problem while uploading data into table PTRV_KMSUM.

I was given the function module "TRIPS_WRITE_KMSUM" to load data into the table PTRV_KMSUM.

The basic requirement is to take the data from the excel sheet and populate the table PTRV_KMSUM.

The following is my code-----

REPORT ZHR_T_PTRV_KMSUM NO STANDARD PAGE HEADING LINE-SIZE 200.

DATA DECLARATION

TYPES: BEGIN OF TY_PTRV_KMSUM,

PERNR TYPE PERNR,

PERNA TYPE PERNA,

ZLAND TYPE LNDGR,

HRGIO TYPE HRGIO,

PKWKL TYPE PKWKL,

KZPMF TYPE KZPMF,

SIVGL TYPE SIVGL,

KMSUM TYPE KMKUM,

END OF TY_PTRV_KMSUM.

INTERNAL TABLE DECLARATION

DATA: IT_PTRV_KMSUM TYPE STANDARD TABLE OF TY_PTRV_KMSUM WITH HEADER LINE.

SPECIFY THE FILE LOCATION

PARAMETERS: P_FILE LIKE RLGRAP-FILENAME." DEFAULT 'C:\Documents and Settings\reddyt.PSWSK3S046\Desktop\PT.txt'.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.

CALL FUNCTION 'F4_FILENAME'

  • EXPORTING

  • PROGRAM_NAME = SYST-CPROG

  • DYNPRO_NUMBER = SYST-DYNNR

  • FIELD_NAME = ' '

IMPORTING

FILE_NAME = P_FILE.

POPULATE THE INTERNAL TABLE FROM THE EXCEL SHEET.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

filename = P_FILE

FILETYPE = 'XLS'

  • 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 = IT_PTRV_KMSUM

  • 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.

NOW LOAD INTO THE TABLE PTRV_KMSUM FROM THE INTERNAL TABLE

CALL FUNCTION 'TRIPS_WRITE_KMSUM'

TABLES

kmsum = IT_PTRV_KMSUM

  • EXCEPTIONS

  • MODIFY_ERROR = 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.

The following is the error message I am getting-------

" In the function "TRIPS_WRITE_KMSUM", the STRUCTURE parameter "KMSUM" is typed in such a way that only actual parameters are allowed, which are compatible in Unicode with respect to the fragment view. However, the specified actual parameter " IT_PTRV_KMSUM " has an incompatible fragment view."

Any inputs are welcome.

regards,

Hari Kiran

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
729

Hi,

Check this link:

Regards

Adil

6 REPLIES 6
Read only

Former Member
0 Likes
730

Hi,

Check this link:

Regards

Adil

Read only

0 Likes
729

Syed,

please copy and paste it here.

Because, when I am opening it. It's opening up some other thread.

It has been happening since morning for me at SDN.

I don't know where the problem is.

Thanks for replying..

Regards,

Hari Kiran

Read only

0 Likes
729

Inputs please....

Read only

0 Likes
729

How do you upload data into SAP Satandard Table ? or have you made a copy (y or Z) of the PTRV_KMSUM ?

Read only

0 Likes
729

Hi Hari,

You need to pass P_File into a variable type string.

then pass this into the GUI_UPLOAD.

Data: V_file type string.

Move p_file to v_file.

then pass v_file into the fm.

Regards,

Jagadish

Read only

0 Likes
729

Hi Jagadish.

The problem has been solved. I was able to load data into PTRV_KMSUM.

I had to make 3 changes-----

1.first one was this------

DATA: it_kmsum TYPE STANDARD TABLE OF PTRV_KMSUM WITH HEADER LINE.

2. Second one was to add the field MANDT in the flat file.

I used notepad, not excel.

3. Third change was what was suggested by you jagadish.

Please go throught the code and you will be able to see the changes......

REPORT zhr_t_ptrv_kmsum NO STANDARD PAGE HEADING LINE-SIZE 200.

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

  • INTERNAL TABLE DECLARATION *

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

DATA: it_kmsum TYPE STANDARD TABLE OF PTRV_KMSUM WITH HEADER LINE.

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

  • SPECIFY THE FILE LOCATION *

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

PARAMETERS: p_file TYPE rlgrap-filename. " DEFAULT 'C:\Documents and Settings\reddyt.PSWSK3S046\Desktop\R.txt'.

Data: V_file type string. " As suggested by Jagadish

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

CALL FUNCTION 'F4_FILENAME'

  • EXPORTING

  • PROGRAM_NAME = SYST-CPROG

  • DYNPRO_NUMBER = SYST-DYNNR

  • FIELD_NAME = ' '

IMPORTING

file_name = p_file.

Move p_file to v_file. " As suggested by Jagadish

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

*POPULATE THE INTERNAL TABLE FROM THE EXCEL SHEET *

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

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

filename = v_file

filetype = 'DAT'

  • HAS_FIELD_SEPARATOR = 'X'

  • 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 = it_kmsum

  • 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.

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

NOW LOAD INTO THE TABLE PTRV_KMSUM FROM THE INTERNAL TABLE

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

CALL FUNCTION 'TRIPS_WRITE_KMSUM'

TABLES

kmsum = it_kmsum

  • EXCEPTIONS

  • MODIFY_ERROR = 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.

Thank you all for the help. To the question did I create any Ztable similar to SAP table ? NO.

The third function module does that for me. It loads into the table PTRV_KMSUM.

Jagadish, Thanks for making my day.

Warm regards,

Hari Kiran