본문 바로가기

syntax14

[Syntax] CONV - 형 변환 CONV 형 변환 CONV type( [let_exp] dobj ) 형식으로 사용할 수 있으며, CONV #( CONV I( CONV STRING( CONV ABAP_BOOL( 등등 다양하게 사용할 수 있습니다. 저 같은 경우에는 Internal table의 레코드수를 메시지로 출력할때 자주 사용합니다. # 사용예시 SELECT * FROM T001 INTO TABLE @DATA(LT_TMP). MESSAGE S000(0K) WITH CONV STRING( LINES( LT_TMP ) ) '건의 데이터를 조회하였습니다'. 2023. 7. 19.
[OpenSQL] OpenSQL Expressions OpenSQL Expressions ABAP New syntax의 Open SQL에서 처리할 수 있는 표현식이 Native 못지 않게 상당히 많이 늘어나서 이제 ABAP 영역에서 처리하던 작업을 쿼리문을 통해 데이터베이스 영역에서 처리하여 성능 향상 시킬수 있습니다 자세한 내용은 T-Code : ABAPDOCU 에서 확인 할 수 있습니다 아래는 제 개인적인 기준으로 자주 사용하고 있는 SQL Functions 입니다. 이외에도 && 을 이용한 문자열 결합, coalesce 을 이용한 null 대체 등 더 많은 내용은 위의 ABAPDOCU에서 사용법을 확인하여 적절히 활용하시면 좋습니다. #1. SQL Numeric Functions 사용 예시 TYPES: BEGIN OF T_TMP, SQL_EXP1 TY.. 2023. 7. 19.
[OpenSQL] Internal Table을 이용한 JOIN (FOR ALL ENTRIES 대체) OpenSQL에서 Internal Table을 이용한 JOIN 사용 FOR ALL ENTRIES 대체 (단, 대량의 데이터는 성능 이슈 존재) ABAP New syntax 의 Open SQL에서 For all entries를 대신해서 Internal Table을 쿼리문에 직접 Join 할 수 있습니다 Inner join, outer join 모두 사용 가능하며 이로 인해 좀더 간단하게 쿼리문 작성이 가능해 졌습니다. # 사용예시 DATA LT_BSEG TYPE STANDARD TABLE OF BSEG. SELECT BUKRS, BELNR, GJAHR FROM BKPF WHERE GJAHR EQ '2022' INTO TABLE @DATA(LT_BKPF) UP TO 10 ROWS. IF SY-SUBRC NE.. 2023. 7. 18.
[Syntax] VALUE - structure 와 internal table에 값 할당 VALUE ABAP New syntax 인 VALUE는 move-corresponding 및 append와 유사한 기능을 수행합니다. Structure에 사용시 초기화 후 move-corresponding 형태로 값을 할당합니다. Internal Table에 사용시 초기화 후 append 형태로 값을 추가 합니다. * BASE 문을 이용하여 Internal Table을 초기화하지 않고 append가 가능합니다 workarea를 이용한 append를 완전히 대체하긴 어렵지만 간단히 사용하기에는 아주 편리합니다. # 사용예시 TYPES: BEGIN OF T_TMP, BUKRS TYPE T001-BUKRS, BUTXT TYPE T001-BUTXT, END OF T_TMP. TYPES TT_TMP TYPE TA.. 2023. 7. 18.
[Syntax] COND, SWITCH 문 (SQL의 case문과 유사) COND, SWITCH ABAP New syntax 중 하나로 조건에 따라 값을 지정해주는 구문으로 ABAP의 CASE 보다는 SQL의 CASE 문과 사용 방법이 비슷합니다 # 사용 예시 DATA: LV_QUERY TYPE C VALUE 'C', LV_RESLT TYPE I. "CASE ------------------------------------------- CASE LV_QUERY. WHEN 'A'. LV_RESLT = 1. WHEN 'B'. LV_RESLT = 2. WHEN 'C'. LV_RESLT = 3. WHEN OTHERS. LV_RESLT = 0. ENDCASE. WRITE:/ LV_RESLT. "COND ------------------------------------------- LV.. 2023. 7. 18.
[Syntax] Internal Table 레코드 수 및 Read table 구문 Internal Table 레코드 수 Read Table ABAP New syntax를 이용하여 좀더 간결하게 개발이 가능합니다 # 사용예시 DATA: LT_T001 TYPE SORTED TABLE OF T001 WITH UNIQUE KEY BUKRS, LS_T001 LIKE LINE OF LT_T001, LV_BUKRS TYPE T001-BUKRS, LV_TABIX TYPE SY-TABIX. SELECT * FROM T001 INTO CORRESPONDING FIELDS OF TABLE @LT_T001. IF SY-SUBRC NE 0. EXIT. ENDIF. ** Internal table 레코드 수 ------------------------------------------------- "Old Sy.. 2023. 7. 18.
[Syntax] REDUCE - 축소 연산자 REDUCE 축소 연산자 ABAP New syntax 중 하나인 REDUCE 구문 입니다. 단순한 집계 같은 경우 LOOP 보다 사용이 간편하고 성능도 우수하다 합니다. # 사용 예시 SELECT * FROM T001 INTO TABLE @DATA(LT_TMP). " 기존 LOOP SUM 구문 DATA LV_CNT TYPE I VALUE 0. LOOP AT LT_TMP INTO DATA(LS_TMP) WHERE XTEMPLT EQ SPACE. LV_CNT += 1. ENDLOOP. WRITE:/ LV_CNT. CLEAR LV_CNT. " REDUCE 를 이용한 COUNT LV_CNT = REDUCE I( INIT X = 0 FOR LS IN LT_TMP WHERE ( XTEMPLT EQ SPACE ) N.. 2023. 7. 12.