ABAP88 [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. [Function] Internal Table 엑셀 다운로드(XLSX 형식) 인터널 테이블 엑셀 다운로드 ZCM_ITAB_FILE_DOWNLOAD_DIALOG ZCM_ITAB_FILE_DOWNLOAD Internal Table의 데이터를 SALV class를 이용하여 XLSX 형식 엑셀 파일로 다운로드 하는 Function입니다. ALV에서 스프레드시트로 내보내기 하는 것과 동일한 형식으로 다운로드 됩니다. ABAP 내에서 E-Mail이나 oData 등에서 엑셀 파일의 Binary 처리하기 위해 "Internal Table -> Excel" Function과 Dialog Function 2개로 나누어 개발했습니다. # 소스코드 ZCM_ITAB_FILE_DOWNLOAD Internal Table의 데이터를 XLSX형식 엑셀 파일로 Binary 데이터(EV_BINTAB)으로 반환 F.. 2023. 7. 11. [Function] ZCM_EXCEL_UPLOAD - 필드 점검 및 변환 엑셀 업로드 ZCM_EXCEL_UPLOAD 필드 점검 및 변환 엑셀 업로드 ALSM_EXCEL_TO_INTERNAL_TABLE # 2023.09.06 수정 : 소스코드를 좀더 간결하게 수정, 금액필드의 통화에따른 Input형식 변환 추가 ABAP에서 엑셀 업로드 프로그램 개발시 정해진 양식에 올바르게 값을 넣지 않을 경우(주로 숫자 형식의 항목에 문자를 넣을 경우) 아래와 같이 필드 컨버전 오류가 발생하게 됩니다. 이런 경우 많은 개발자들이 Excel 데이터를 받은 후에 숫자에 해당하는 항목을 replace 문으로 특수문자를 제거하는 식으로 하고 있으나 후 처리를 위해 잔손이 많이 가고, 사용자들의 기행으로 인해 완벽한 예외처리가 되지 않아 종종 덤프가 발생하게 됩니다. 엑셀 업로드의 근본적인 문제 해결과 개발 편의.. 2023. 7. 10. [BTE] PROCESS_00001120 - 회계전표 품목 텍스트 대체 BTE PROCESS_00001120 회계전표 품목 텍스트 대체 구매입고, 구매송장 회계전표의 품목 텍스트에 "공급업체코드/자재내역" 표기 # 소스코드 DATA: LS_BKPF LIKE LINE OF T_BKPF, LS_BSEG LIKE LINE OF T_BSEG, LS_BSEC LIKE LINE OF T_BSEC. FIELD-SYMBOLS: LIKE LINE OF T_BKPFSUB, LIKE LINE OF T_BSEGSUB. DATA: LV_TABIX TYPE SY-TABIX. * 구매오더 정보 TYPES: BEGIN OF T_EKKO_EKPO, EBELN TYPE EKPO-EBELN, EBELP TYPE EKPO-EBELP, TXZ01 TYPE EKPO-TXZ01, LIFNR TYPE EKKO-LIF.. 2023. 7. 10. [Function] FI_ITEMS_MASS_CHANGE - 회계전표 품목 변경(FB09) FI_ITEMS_MASS_CHANGE 회계전표 품목 변경(FB09) # 사용예시 REPORT YTEMP_SANDBOX. TABLES BSEG. PARAMETERS: P_BUKRS TYPE BKPF-BUKRS OBLIGATORY, P_BELNR TYPE BKPF-BELNR OBLIGATORY, P_GJAHR TYPE BKPF-GJAHR OBLIGATORY. SELECT-OPTIONS: S_BUZEI FOR BSEG-BUZEI. SELECTION-SCREEN SKIP. PARAMETERS: P_SGTXT TYPE BSEG-SGTXT. DATA: LS_BSEG TYPE BSEG, LT_BUZTABTYPE TPIT_T_BUZTAB, LT_FLDTABTYPE TPIT_T_FNAME, LT_ERRTABTYPE TP.. 2023. 7. 10. 이전 1 ··· 6 7 8 9 10 11 12 13 다음