‎2006 Aug 07 11:55 AM
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.
‎2006 Aug 07 12:09 PM
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
‎2006 Aug 07 11:58 AM
hi
clear it_serena once before the end of loop and try executing
Theja
‎2006 Aug 07 12:01 PM
I think its a problem with the data.
Please also post the values in IT_SERENA, so the forum can help you better.
Sudha
‎2006 Aug 07 12:16 PM
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
‎2006 Aug 07 12:30 PM
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.
‎2006 Aug 07 12:54 PM
Hi All,
Thank you very much..it is solved.
Actullay i have given lower case letter in my text file.
‎2006 Aug 07 12:01 PM
hi Ravi,
Clear Statement Missing ...
LOOP AT IT_SERENA.
REFRESH BASIC_TEXT.
REFRESH BASICTEXT.
.
clear yguid.
clear zguid.
<b>clear it_serena.</b>
Endloop
‎2006 Aug 07 12:02 PM
‎2006 Aug 07 12:09 PM
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