Abapteur Note
문자열 다루기(SHIFT) 본문
프로젝트에서 평가사의 신용등급을 변환해야하는 작업이 필요했다.
Ex) 'AA0'라는 신용등급을 'AA'로 바꿔야 하는 작업..
때문에 하기와 같은 코드로 이를 해결했는데..
IF P_CODE2(1) EQ '0'.
P_CODE = P_CODE(2)
ENDIF.
다른 신용등급은 고려하지 않고 짠 코드였기에 'A0'의 신용등급 데이터가 들어올 때 문제가 발생했다.
'A0'가 들어오면 그 값이 그대로 들어오게 되고 결국 맵핑된 코드가 없어 결과적으로 SPACE 값이 들어오는 참사
때문에 다른 로직이 필요했고, 하기와 같은 방법으로 해결법을 찾을 수 있었다.
SHIFT P_CODE RIGHT DELETING TRAILING '0'.
CONDENSE P_CODE NO-GAPS.
SHIFT... RIGHT DELETING TRAILING '0'을 통해 P_CODE의 값을 오른쪽으로 이동시키면서 '0'을 찾고 '0'을 삭제한다.
이후 혹시 공백이 생기는 경우를 고려하여 CONDENSE로 마무리.
이러면 'AA0'이든 'A0'이든 0만 없애고 'AA' 와 'A' 값을 저장할 수 있다.
'SAP > ABAP' 카테고리의 다른 글
DATA_CHANGED METHOD (1) | 2024.10.15 |
---|---|
필드 카탈로그 자동 생성(REUSE_ALV_FIELDCATALOG_MERGE) (1) | 2024.06.23 |
리스트 박스 (0) | 2024.06.07 |
셀렉트 스크린 제어(SCREEN) (0) | 2024.06.07 |
ALV EDIT 모드 전환 (0) | 2024.03.10 |