DATA : C TYPE STRING,
P(4) TYPE C.
C = 'ABAP'.
P = 'P'.
find P in C.
IF SY-SUBRC EQ 0.
WRITE 'P found'.
ENDIF.
C = 'ABAP'.
P = 'BBAP'.
REPLACE 'ABAP' IN C WITH P.
WRITE / C.
지금 보이는 string관련인데요.
처음 에러는 find가 Statement "FIND" is not defined. Please check your spelling. 이런 메세지가 나오네요.
스펠링이 틀렸다고 에러메세지가 나오기는 하지만 보이는것처럼 잘못된건 없는거 같습니다.
2번째는 "INTO" expected, not "IN".
이런 메세지가 나와요. 처음 find를 주석처리하고 하면 넘어가리라 생각했는데 다른건 문제가 없는데, 저 2개가 신텍스
에러가 나는데요. 예제를 보면서 하는건데 에러가 나서요. 저렇게 하는게 아닌가요??
저렇게 하는건데 제가 잘못한거라면 지적좀 해주셨음 합니다. 부탁드립니다.
댓글 6
-
Sap
2009.03.31 19:16
위의 쏘스 잘 돌아가는데요... -
로뎀나무
2009.03.31 19:20
혹시 지금 사용하시는 R/3 시스템 버전이 어떻게 되시는지요?
만약 릴리즈 버전 6.10 이전 버전이시라면 해당 버전에서는 'FIND' 라는 구문이
존재하지 않습니다. ( ABAP EDITOR 에서 'FIND' 에 커서를 두시고 F1 을 호출시
'No Index Search Hits for' 라는 메세지가 나오실겁니다.)
그래서 SYNTAX ERROR 가 발생하는것으로 생각됩니다.
-
쭈니
2009.03.31 19:28
잘 돌아가신다구요??
그럼 시스템 버전이 안맞아서 그런건지도 모르겠네요??
그렇다라고 한다면 replace도 그렇게 되는건가요??
-
쭈니
2009.03.31 19:34
그럼 질문 하나만 더 드리고 싶은게 있는데요.
릴리즈 버전을 알고싶다면 manu path를 어떻게 찾아 가야 하는건지요???
-
로뎀나무
2009.03.31 19:41
REPLACE 구문의 경우
- REPLACE sub_string WITH new INTO dobj
이러한 FORM 의 경우 6.10 이전버전에서도 존재하므로 사용이 가능할 것이구요
6.10 이후 버전부터는 Obsolete, 즉 폐기 지침으로 되어 있습니다.
대신 PATTERN 을 이용한 FORM 으로 대체되어 사용 가능합니다.
-
쭈니
2009.03.31 19:49
답변은 감사합니다~ 제일 먼저 알아봐야 할 문제는 그럼 제가 지금 사용하고 있는 버전이 어떻게 되는지 알아봐야 하는거군요.
제가 apap editor에서 메뉴 system에서 status에서 보면 BasisRelease에 나오는것이 그 버전이 맞는건지요?