ABAP에서 콜론(:)과 콤마(,)를 함께 사용할 때 편리한 점과 주의할 점 설명


SAP ABAP에서 콜론(:) 기호는 콜론 기호 앞의 구문(명령어)를 마침표(.)가 나오기 전까지 콤마(,[쉼표]) 기호로 나누어 지는 각각에 동일하게 적용할 때 사용합니다. 따라서 콜론(:) 기호를 적절히 사용하면 반복되는 구문(명령어)을 상당히 줄일 수 있는 효과가 있습니다.

콜론(:) 기호를 가장 많이 사용할 때는 ABAP 프로그램에서 변수를 선언할 때 입니다.

ABAP 프로그램을 개발하면서 Colon(:)과 Comma(,)를 함께 사용하는 경우가 정말 많습니다. 거의 아무 생각 없이 사용한다고 할 정도로 당연시하게 사용하는 것이 콜론(:)과 콤마(,)의 조합입니다.

편리하게 사용할 수 있는 콜론과 콤마의 조합이지만 주의해서 사용해야 할 경우가 있습니다.

이번 글에서는 ABAP에서 콜론(:)과 콤마(,)를 함께 사용할 때 편리한 점과 주의할 점 각각에 대한 설명을 해 보겠습니다.

ABAP에서 일반적인 콜론(:)과 콤마(,)의 사용 예제

콜론(:)과 콤마(,)를 사용하지 않았을 때와 사용했을 때의 ABAP 코딩 입니다.

▼ TABLES 선언할 때

TABLES MARA.
TABLES MAKT.
TABLES MARC.
==> TABLES: MARA, MAKT, MARC.


▼ DATA 선언할 때

DATA GV_MATNR LIKE MARA-MATNR.
DATA GV_MAKTX LIKE MAKT-MATKX.
DATA GV_WERKS LIKE MARC-WERKS.
==> DATA: GV_MATNR LIKE MARA-MATNR,
             GV_MAKTX LIKE MAKT-MATKX,
             GV_WERKS LIKE MARC-WERKS.

DATA BEGIN OF IT_LIST OCCURS 0.
DATA MATNR LIKE MARA-MATNR.
DATA MAKTX LIKE MAKT-MATKX.
DATA WERKS LIKE MARC-WERKS.
DATA END OF IT_LIST.
==> DATA: BEGIN OF IT_LIST OCCURS 0,
                MATNR LIKE MARA-MATNR,
                MAKTX LIKE MAKT-MATKX,
                WERKS LIKE MARC-WERKS,
              END OF IT_LIST.


▶ 앞의 예제를 보면 쉽게 알 수 있듯이 반복되는 TABLES 또는 DATA를 콜론(:)을 사용함으로써 생략이 가능하게 됩니다.

UPDATE 구문에서 콜론(:)과 콤마(,)를 사용했을 경우 문제점

ABAP에서 콜론(:)과 콤마(,)를 함께 사용할 때 편리한 점과 주의할 점 설명

콜론(:)과 콤마(,)는 주로 데이터 선언부에서 많이 사용하지만 OPEN QUERY에서도 사용할 수 있습니다.
만약 UPDATE 구문에서 콜론과 콤마를 사용했을 경우 어떤 문제가 생기는지 알아보겠습니다.

일반적으로 UPDATE 구문은 아래와 같습니다.
UPDATE ZCUSTOMER SET NAME = ‘LEE’
                               PHONE = ‘010-1000-9999’
         WHERE ID = ‘12345’.
ID가 ‘12345’인 고객의 NAME과 PHONE을 변경하는 구문입니다.

그런데 만약 SET 구문에 콜론과 콤마를 붙인다면 결과는 전혀 다르게 처리 됩니다.

UPDATE ZCUSTOMER SET: NAME = ‘LEE’,
                         PHONE = ‘010-1000-9999’
         WHERE ID = ‘12345’.

==> 위의 구문이 실제 처리되는 구문으로 바꾸면 아래와 같아집니다.

UPDATE ZCUSTOMER SET NAME = ‘LEE’.
UPDATE ZCUSTOMER SET PHONE = ‘010-1000-9999’
                 WHERE ID = ‘12345’.

UPDATE가 어떻게 처리될지 바로 이해가 되실 겁니다.
ZCUSTOMER 테이블의 모든 NAME은 ‘LEE’로 변경되고, ID가 ‘12345’인 고객의 PHONE만 추가로 변경됩니다.

무심코 사용한 콜롬(:)과 콤마(,) 하나가 엄청난 결과를 가져올 수 있음에 주의하시길 바랍니다.





이 글이 도움이 되었기를 바랍니다. ^-^


답글 남기기