Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 이명박
- 오라클 함수
- List box
- 스마트폼
- 엑소버드
- Java
- SAP
- ALV
- 머니플랜
- fi
- function
- 유닉스
- KOSA
- Smart Forms
- badi
- 동적 쿼리
- selection screen
- EXIT
- Standard Function
- alv 정형화
- UTF-8
- 방화벽
- FI 용어정리
- Enhancement
- gimp
- sapa
- 가계부
- ole
- EUC-kr
- ABAP
Archives
- Today
- Total
Drunken Lion
String Statement 본문
문자열 관련 명령어 모음
SAP 에서 CBO 개발시 필요한 각종 String 관련 연산 명령어 소개와 예.
SAP 에서 CBO 개발시 필요한 각종 String 관련 연산 명령어 소개와 예.
1. String의 길이구하기
i = STRLEN( string )
i = STRLEN( string )
2. CONCATENATE F1 F2 F3 INTO G.
- F1, F2, F3을 G에 넣는다.
- SEPARATED BY <string>
FI, F2, F3사이에 <string>을 넣는다.
ex) DATA: FIRST(2) VALUE 'BAE',
SECOND(2) VALUE 'BYUNG',
THIRD(2) VALUE 'SUNG',
NAME(20).
CONCATENATE FIRST SECOND THIRD INTO NAME SEPARATED BY SPACE.
결과 => 'BAE BYUNG SUNG'
- F1, F2, F3을 G에 넣는다.
- SEPARATED BY <string>
FI, F2, F3사이에 <string>을 넣는다.
ex) DATA: FIRST(2) VALUE 'BAE',
SECOND(2) VALUE 'BYUNG',
THIRD(2) VALUE 'SUNG',
NAME(20).
CONCATENATE FIRST SECOND THIRD INTO NAME SEPARATED BY SPACE.
결과 => 'BAE BYUNG SUNG'
3. SPLIT G AT <string> INTO F1 F2 F3.
- G의 내용을 <string>으로 구분하여 F1, F2, F3에 나누어 넣는다.
ex) DATA: NAME(20) VALUE ',BAE,BYUNG,SUNG',
FIRST(2),
SECOND(2),
THIRD(2),
FORTH(2),
FIFTH(2).
SPLIT NAME AT ',' INTO FIRST SECOND THIRD FORTH FIFTH.
결과 => FIRST = SPACE
SECOND = 'BAE'
THIRD = 'BYUNG'
FORTH = 'SUNG'
FIFTH = SPACE
- G의 내용을 <string>으로 구분하여 F1, F2, F3에 나누어 넣는다.
ex) DATA: NAME(20) VALUE ',BAE,BYUNG,SUNG',
FIRST(2),
SECOND(2),
THIRD(2),
FORTH(2),
FIFTH(2).
SPLIT NAME AT ',' INTO FIRST SECOND THIRD FORTH FIFTH.
결과 => FIRST = SPACE
SECOND = 'BAE'
THIRD = 'BYUNG'
FORTH = 'SUNG'
FIFTH = SPACE
4. SHIFT
- 변수에 들어있는 값을 이동한다. 모든 field를 type C로 간주하여 처리하기 때
문에 type C, N, D외에는 사용할 때 주의하여야 한다.
- Option : CIRCULAR - 잘려나간 문자를 맨뒤에 놓는다.
RIGHT - 오른쪽으로 1칸 이동한다.
- 좌측으로 1칸 이동한다.
- SHIFT 문은 PERFORMANCE를 많이 요구하기 때문에 LOOP안에서는 사용을 하지 않
는 것이 좋다.(1개의 문자를 이동하는데 5Microseconds 소요)
- 변수에 들어있는 값을 이동한다. 모든 field를 type C로 간주하여 처리하기 때
문에 type C, N, D외에는 사용할 때 주의하여야 한다.
- Option : CIRCULAR - 잘려나간 문자를 맨뒤에 놓는다.
RIGHT - 오른쪽으로 1칸 이동한다.
- 좌측으로 1칸 이동한다.
- SHIFT 문은 PERFORMANCE를 많이 요구하기 때문에 LOOP안에서는 사용을 하지 않
는 것이 좋다.(1개의 문자를 이동하는데 5Microseconds 소요)
4-1. SHIFT c.
ex) DATA: FIRST(10) VALUE 'ABCEDFGHIJ'.
SHIFT FIRST.
결과 : FIRST = 'BCDEFGHIJ '.
ex) DATA: FIRST(10) VALUE 'ABCEDFGHIJ'.
SHIFT FIRST.
결과 : FIRST = 'BCDEFGHIJ '.
4-2. SHIFT c BY n PLACES.
- 변수 c를 자리만큼 좌측으로 이동한다. 만일 c의 length보다 n이 크면 c에는
blank가 들어간다.
- 변수 c를 자리만큼 좌측으로 이동한다. 만일 c의 length보다 n이 크면 c에는
blank가 들어간다.
4-3. SHIFT c UP TO c1.
- 변수 c의 내부에 c1이라는 string을 만날 때까지 좌측으로 이동한다.
- c1이 없으면 아무변화도 일어나지 않는다.
- 이때 return value SY-SUBRC는 -4이다.
- 변수 c의 내부에 c1이라는 string을 만날 때까지 좌측으로 이동한다.
- c1이 없으면 아무변화도 일어나지 않는다.
- 이때 return value SY-SUBRC는 -4이다.
4-4. SHIFT c LEFT DELETING LEADING c1.
SHIFT c RIGHT DELETING TRAILING c1.
- string c의 첫 번째 혹은 마지막 character가 string c1에 포함되어 있다면
해당 character를 삭제하면서 이동한다.
- 첫 번째 혹은 마지막 character가 중복되어 있다면 다른 character가 나올 때
까지 이동한다.
- 같은 글자가 없다면 아무런 변화도 일어나지 않는다.
SHIFT c RIGHT DELETING TRAILING c1.
- string c의 첫 번째 혹은 마지막 character가 string c1에 포함되어 있다면
해당 character를 삭제하면서 이동한다.
- 첫 번째 혹은 마지막 character가 중복되어 있다면 다른 character가 나올 때
까지 이동한다.
- 같은 글자가 없다면 아무런 변화도 일어나지 않는다.
5. CONDENSE <string>.
- string 내부 단어사이의 blank를 1개씩만 남기고 없앤다.
- Option : NO-GAPS - 모든 blank를 없앤다.
- type C를 제외한 다른 field를 포함한 field string을 변환시키지 말 것. 이
상한 값이 들어갈 수 있다.
- string 내부 단어사이의 blank를 1개씩만 남기고 없앤다.
- Option : NO-GAPS - 모든 blank를 없앤다.
- type C를 제외한 다른 field를 포함한 field string을 변환시키지 말 것. 이
상한 값이 들어갈 수 있다.
6. TRANSLATE c TO UPPER CASE.
TRANSLATE c TO LOWER CASE.
- 대소문자를 변환하는데 쓰인다.
- 10byte이상의 긴 field를 변환하는 것은 performance에 좋지 않다.
TRANSLATE c TO LOWER CASE.
- 대소문자를 변환하는데 쓰인다.
- 10byte이상의 긴 field를 변환하는 것은 performance에 좋지 않다.
7. OVERLAY c1 WITH c2.
- c1의 character 중 blank의 자리에 c2의 character가 있다면 blank의 위치에
있는 c2의 character를 넣는다.
ex) DATA: WORK(20) VALUE 'BA B UNG-SU G',
HELP(20) VALUE ' E AYY - NNI'.
OVERLAY WORK WITH HELP.
결과 : WORK = 'BAE BYUNG-SUNG'.
- c1의 character 중 blank의 자리에 c2의 character가 있다면 blank의 위치에
있는 c2의 character를 넣는다.
ex) DATA: WORK(20) VALUE 'BA B UNG-SU G',
HELP(20) VALUE ' E AYY - NNI'.
OVERLAY WORK WITH HELP.
결과 : WORK = 'BAE BYUNG-SUNG'.
- Performance에 좋지 않기 때문에 많이 쓰지 않는 것이 좋다.
8. REPLACE c1 WITH c2 INTO c3.
- string c3에 있는 c1이라는 string을 c2로 변환시킨다.
- string c3에 있는 c1이라는 string을 c2로 변환시킨다.
9. SEARCH
9-1. SEARCH c1 FOR c2.
- c1에서 c2라는 string을 찾는다.
- c1의 단어사이는 blanck로 구분한다.
- c2에는 '_' , '*'를 포함하여 사용할 수 있다.
- SY-SUBRC = 0 일 때 SY-EDPOS에 찾은 단어의 위치정보가 들어 있다.
9-1. SEARCH c1 FOR c2.
- c1에서 c2라는 string을 찾는다.
- c1의 단어사이는 blanck로 구분한다.
- c2에는 '_' , '*'를 포함하여 사용할 수 있다.
- SY-SUBRC = 0 일 때 SY-EDPOS에 찾은 단어의 위치정보가 들어 있다.
9-2. SEARCH itab FOR c2.
- itab이라는 internal table에서 c2라는 string을 찾는다.
- 나머지는 위와 상동
- SY-SYBRC = 0 일 때 SY-TABIX에는 internal table의 line number가 SY-EDPOS에는 위치정
보가 들어 있다.
- itab이라는 internal table에서 c2라는 string을 찾는다.
- 나머지는 위와 상동
- SY-SYBRC = 0 일 때 SY-TABIX에는 internal table의 line number가 SY-EDPOS에는 위치정
보가 들어 있다.
'SAP > ABAP' 카테고리의 다른 글
SAP 시스템 변수 정리 (0) | 2008.02.05 |
---|---|
동적 쿼리 (0) | 2008.02.01 |
RECEIVE (0) | 2007.12.27 |
SAP GUI Download 방법 (3) | 2007.12.21 |
개발시 필요한 T-code (0) | 2007.12.18 |