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 in the code.

Former Member
0 Likes
897

Hi Experts,

See the follwong code.During first loop pass everything works fine.

But during second loop pass in the first select query i am getting

sy-subrc = 4 though therer are entries in the DB table to correspong

value in the internal table.

Can any body tell me what may be the problem in the code?

Problem with select single in side the loop?

Regards

&----


*& Report ZSERENA_INTEGRATION *

*& *

&----


*& *

*& *

&----


REPORT ZSERENA_INTEGRATION .

TABLES: COMM_PCAT_CTV,COMM_PCAT_CTY,THEAD.

DATA: BEGIN OF IT_SERENA OCCURS 0,

ID LIKE comm_pcat_cty-id,

TEXT(1000),

END OF IT_SERENA.

DATA: FILE_STR TYPE STRING.

DATA: BASIC_TEXT LIKE THEAD OCCURS 0 WITH HEADER LINE.

DATA: YGUID LIKE COMM_PCAT_CTY-GUID,

ZGUID LIKE COMM_PCAT_CTV-PARENT_CATEGORY.

DATA: BASICTEXT like TLINE OCCURS 0 WITH HEADER LINE.

DATA: IT_THEAD LIKE THEAD OCCURS 0 WITH HEADER LINE.

data: id type i.

PARAMETERS: P_FILE LIKE RLGRAP-FILENAME.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.

CALL FUNCTION 'KD_GET_FILENAME_ON_F4'

EXPORTING

PROGRAM_NAME = SYST-REPID

  • DYNPRO_NUMBER = SYST-DYNNR

FIELD_NAME = p_file

STATIC = 'X'

  • MASK = ' '

CHANGING

FILE_NAME = p_file

  • EXCEPTIONS

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

ENDIF.

START-OF-SELECTION.

FILE_STR = P_FILE.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = FILE_STR

FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = 'X'

  • HEADER_LENGTH = 0

  • READ_BY_LINE = 'X'

  • DAT_MODE = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • CHECK_BOM = ' '

  • IMPORTING

  • FILELENGTH =

  • HEADER =

TABLES

DATA_TAB = IT_SERENA

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

LOOP AT IT_SERENA.

REFRESH BASIC_TEXT.

REFRESH BASICTEXT.

.

clear yguid.

clear zguid.

SELECT SINGLE GUID FROM COMM_PCAT_CTY INTO YGUID

WHERE ID = IT_SERENA-ID.

IF NOT YGUID IS initial.

SELECT SINGLE GUID FROM COMM_PCAT_CTV INTO ZGUID

WHERE PARENT_CATEGORY = YGUID.

ENDIF.

.

BASIC_TEXT-TDOBJECT = 'PCAT_CTY'.

BASIC_TEXT-TDNAME = ZGUID.

BASIC_TEXT-TDID = '0001'.

BASIC_TEXT-TDSPRAS = 'EN'.

APPEND BASIC_TEXT.

BASICTEXT-TDFORMAT = '*'.

BASICTEXT-TDLINE = IT_SERENA-TEXT.

APPEND BASICTEXT.

CALL FUNCTION 'SAVE_TEXT'

EXPORTING

CLIENT = SY-MANDT

HEADER = BASIC_TEXT

  • INSERT = 'X'

SAVEMODE_DIRECT = 'X'

  • OWNER_SPECIFIED = ' '

  • LOCAL_CAT = ' '

IMPORTING

  • FUNCTION =

NEWHEADER = IT_THEAD

TABLES

LINES = BASICTEXT

  • EXCEPTIONS

  • ID = 1

  • LANGUAGE = 2

  • NAME = 3

  • OBJECT = 4

  • OTHERS = 5

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

CLEAR it_thead.

ENDLOOP.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
867

Hi

Try this in loop

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = IT_SERENA-ID

IMPORTING

OUTPUT = IT_SERENA-ID.

SELECT SINGLE GUID FROM COMM_PCAT_CTY INTO YGUID

WHERE ID = IT_SERENA-ID.

Please reward points to useful answers.

Pankaj

8 REPLIES 8
Read only

Former Member
0 Likes
867

hi

clear it_serena once before the end of loop and try executing

Theja

Read only

Former Member
0 Likes
867

I think its a problem with the data.

Please also post the values in IT_SERENA, so the forum can help you better.

Sudha

Read only

0 Likes
867

Hi all,

No still it is not working..

Here are values in the internal table.

1 KV_CAT_SUB_AREA |testdescriptionby42

2 lEVEL |testdescriptionby43 3

Read only

0 Likes
867

hey,

is the Internal table is having the SAME value as it appears in SE11 screen ??

i mean leading zeros or something like that.

example:

some times if you omit leading zeros for the field , in SE11 you can find the entries.but through the program you cant get it.so you should populate with leading zeros in the program.

regards,

srikanth.

Read only

0 Likes
867

Hi All,

Thank you very much..it is solved.

Actullay i have given lower case letter in my text file.

Read only

Former Member
0 Likes
867

hi Ravi,

Clear Statement Missing ...

LOOP AT IT_SERENA.

REFRESH BASIC_TEXT.
REFRESH BASICTEXT.
.
clear yguid.
clear zguid.
<b>clear it_serena.</b>


Endloop

Read only

Former Member
0 Likes
867

Hi Ravi,

Clear the internal table in the loop.

Regards,

Laxmi.

Read only

Former Member
0 Likes
868

Hi

Try this in loop

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = IT_SERENA-ID

IMPORTING

OUTPUT = IT_SERENA-ID.

SELECT SINGLE GUID FROM COMM_PCAT_CTY INTO YGUID

WHERE ID = IT_SERENA-ID.

Please reward points to useful answers.

Pankaj