ERP-SAP/ABAP

<NEW ABAP> 1강 COND, SWITCH (OLD ABAP : CASE, IF) 로 바꿔보기

행복한워니의 기록 2024. 11. 15. 08:54
728x90
반응형

옛날 SAP 유지보수하다 다시 SI를 나와보니 세상이 변해있었다..
그리고 이 글들은 올드 ABAP 개발자의 뉴아밥 적응기라 보면되고 나조차 처음 배우는 것들이니
우리 함께 배운다 생각하면 된다...

자 1강으로 COND와 SWITCH를 선택한 이유는
If와 case를 많이 쓰기 때문이고 신규 어딜가도 이 구문을 볼거 같기에 선택했다.

1. OLD ABAP 코드 CASE로 간단 쿼리를 짜보자
DATA : LV_VAL(1) VALUE 'C',
              LV_STR TYPE STRING.

CASE LV_VAL.
   WHEN 'A'.
       LV_STR = LV_VAL && '값입니다.'.
   WHEN 'B'.
       LV_STR = LV_VAL && '값입니다.'.
    WHEB 'C'.
        LV_STR = LV_VAL && '값입니다.'.
    WHEN OTHERS.
             LV_STR = '없는 값입니다.'.
ENDCASE.

WRITE :/ 'OLD ABAP : ', LV_STR.

---------------끝 : 폰으로 코딩 쳤다.--------------

자... 그냥 구문연습이니 왜 저리 짰지? 생각하지 말자. ㅎㅎㅎㅎㅎ

그럼 COND와 SWITCH 로는 어찌 바꿀까?
개인적으로 SWITCH가 더 마음에 든다.
이유는 CASE와 동일하고 COND는 LV_VAL을 계속 반복해서 써줘야 하는데 SWITCH는 1번 쓰고 CASE처럼 하면 되기 때문이다.

무슨말이냐고???
아래를 한번 보자.
COND의 LV_VALC = 값 반복을 보고
SWITCH의 LV_VALS 한번 선언 후 값만 반복
차이를 보면 이해할 것이다


이 1강에서 뉴아밥으로 설명을 안했지만
&& 도 많이 쓰는 코드이고
Data( ) 바로 선언도 많이 쓰였다. (2017년에도 이건 썼었다...

cond 나 switch 다음에 쓴 string 이 보이는데
저 의미는 왼쪽 바로선언하는 data( lv_strs)  의
속성값이라 보면 된다. 너 string으로 받는거야~
라고 말해주는거지...

만약 저기 동적으로 받지 않고 위에
data : lv_strs type string.
으로 선언이 되어있었다면......

그냥
lv_strs = switch #( when ....)

으로 샾으로 때린다..
왼쪽 속성값에 따라가서 넣으란 뜻이지...


그래서 출력하면??

코딩을 써주지 않은..이유는...
화면보고 직접 생각하면서 따라쳐보란 뜻이다..
100번 치면 외워지더라.
1년차때도 그렇게 외웠는데 이제 또 다시 새 구문을 나도 100번 쳐서 익힐 시간이 온 것 같다..


2강도 빨리 공부해서 여기 올려 같이 익혀보자^^







728x90
반응형