본문 바로가기
SAP/ABAP

<ABAP> ABAP EQ와 CP 문법

by 승싱생숭 2024. 8. 23.
728x90

 

 

프로그램을 수정하던 도중 사소한 차이이지만 잊고 지내왔던 문법에 대해 소개하고자한다.

현업에게 문의가 왔다.

 

 

오더유형 101, 102, 103번 통제해주세요.

 

 

이 요청을 받았을 때 그냥 IF에 조건 3개 넣으면 되겠네라고 생각하였다. ( 참고로 101,102,103 유형은 예시일 뿐이다. )

그래서 처음 고려한게 아래의 IF문이다.

 

IF문에 요청받은대로 유형에 대한 통제를 걸어 놓았다.

그렇게 1분짜리 미션을 클리어하고 난 후 요청자의 팀장님께 전화를 받았는데,

그 유형뿐만 아니라 뒤에 다른 유형들도 추가될텐데 매번 추가 수정을 해줄 것이냐 라는 질문을 받았다.

 

그 순간 나는 그런 생각이 들었다. 왜 이 생각을 못했을까?

누가 개발자고 누가 현업인지 햇갈릴 정도로 관통하는 단어였다.

 

개발을 할때 고려해야할 부분이 유지보수 용이라는 점을 잊은 것이다.

 

그 생각을 하며 떠올랐던 문법이 LIKE 문법이다.

 

SQL을 활용하여 데이터를 프로그램에서 가공하는 경우가 많다보니, LIKE라는 문법에 익숙해져있는데

ABAP에도 같은 문법이 있다 바로 CP 라는 문법이다.

 

CP도 LIKE문과 같이 *와 같은 문자를 통하여 문자열 검색이 가능하다. (변수 값 일괄검색)

 

위의 IF문에 사용한 EQ를 CP로 변경한다면 아래와 같이 코딩이 된다.

 

 

처음 썼던 EQ와는 다르게 한 줄의 코드로 끝이났다.

이렇게 작성할 경우 오더유형이 추가된다고 하였을때 나는 더이상 추가 작업해줄 필요가 없는 것이다.

 

물론 상황에 따라 CP가 필요한경우와 IF가 필요한 경우는 다를 수 있다.

 

특정 유형만 통제하고 그 후로 절대 변화가 없을 것이라면 IF에 걸어 놓는게 좋을 것이다.

 

하나의 Tip

 

하나의 Tip이라고 한다면 회사의 개발 정책 마다 다르겠지만,

본인 같은 경우에는 사실 변동성이 있는 규칙이 있다면 테이블을 만들어서 규칙을 관리한다.

테이블을 만들어서 본인이 직접 관리할 수도 있고, 유형에 대한 생성이 이루어졌을 때 현업에게 추가 관리를 하라고 트랜잭션을 생성해 넘겨줄 수 있다.

 


 

개발을 하다 보면 생각이 갇히게 되는 경우가 많은 것 같다.

눈에 정답이 보이는 요청이더라도 더 나은 방법은 없는지 고민하는것이 좋다는 점을 잊지 않아야겠다.

728x90