SAP97 [개발Tip] ALV 리포트의 백그라운드 실행 ALV 리포트의 백그라운드 실행cl_gui_alv_grid=>offline( ) ALV를 사용하는 CBO 리포트를 백그라운드로 실행시 Container 생성에서 덤프가 발생하는 경우가 종종 있습니다. Dialog가 아닌 경우 구조적으로 GUI Container를 생성할 수 없어서, 대부분의 표준 리포트는cl_gui_alv_grid=>offline 메소드를 이용하여 현재 사용 환경이 Dialog인지 Background(또는 RFC 등등 Dialog 환경이 아닌 경우)인지 구분하여 container 생성 여부를 분기 처리합니다. # 소스코드 예시 DATA: BEGIN OF lo_grid, container TYPE REF TO cl_gui_docking_container, .. 2025. 3. 2. [개발Tip] Internal Table 순차탐색과 Secondary Key 성능 비교 Internal Table 순차탐색과 Secondary Key 성능 비교standard Table with non-unique sorted keysorted table with non-unique key 작년에 Internal Teble의 유형별로 성능 비교를 다룬적이 있었는데,ABAP 개발시 여러 이유로 인해 Loop내에서 Internal Table을 순차탐색을 하거나 standard table을 secondary key 설정 없이 Loop where을 사용하여 경우가 종종 있는데, 이럴 경우 데이터 증가에 따라 성능이 기하급수적으로 나빠지므로 주의해야 합니다.특히 이부분은 ABAP Performance Tuning시 기본적으로 조치해야 하는 부분입니다.2023.05.16 - [ABAP/개발Tip] -.. 2024. 11. 7. [개발Tip] ASCII 기준 문자열 자르기 ASCII 기준 문자열 자르기2Byte 문자열 자르기 EDI 통신을 할때 종종 필드별로 최대 Byte를 제한하는 경우가 있습니다.대부분의 시스템이 그렇듯 SAP도 Unicode를 사용하고 있다보니 strlen 으로 문자열의 길이를 확인하면 한글/영문 구분없이 모두 동일하게 문자 수만큼 반환이 됩니다. 하지만 EDI에서는 ASCII 기준으로 Byte 계산을 하는 경우가 많아, 원하는 Byte 만큼 문자열을 자르려면 별도의 처리가 필요합니다. 다행이도 SAP에서 다양한 방법을 제공하고 있고,가장 일반적으로 사용하는 방법은 CL_ABAP_LIST_UTILITIES를 이용하여 간단하게 문자열의 크기를 구할 수 있습니다.https://help.sap.com/doc/abapdocu_latest_index_htm/l.. 2024. 10. 24. [Report] 소스코드 작성하여 바로 실행(YDIRECT_EXEC) 소스코드 작성하여 바로 실행GENERATE SUBROUTINE POOL 간단한 소스코드를 작성하여 바로 실행(Execute)할 수 있는 리포트 프로그램입니다.메모리상에 서브루틴을 만들어 바로 실행하는 방식으로 운영 환경에서 긴급으로 무언가를 하려할때 아주 요긴하게 사용됩니다.# 소스코드REPORT YDIRECT_EXEC LINE-SIZE 270 NO STANDARD PAGE HEADING.TYPES: BEGIN OF t_source, line(256), END OF t_source.DATA: gt_source TYPE STANDARD TABLE OF t_source, gt_program TYPE STANDARD TABLE OF t_sourc.. 2024. 10. 24. [Report] 운영에서 소스코드 편집 프로그램(YEDITPR) 운영에서 소스코드 편집 프로그램READ REPORT, EDITOR-CALL, INSERT REPORTENQUEUE_ESRDIRE, DEQUEUE_ESRDIRE *2024.10.24 : 소스정렬 기능 추가*2023.11.17 : WEB GUI 호환성*2023.11.16 : EDITOR-CALL 구문을 CL_GUI_ABAPEDIT 변경하여 소스코드 편집기 가독성 개선 많은 개발자들이 운영환경에서 CBO 프로그램의 소스코드를 긴급으로 수정하기 위해 Read Report, Editor-Call, Insert Report 3가지 구문을 이용한 간단한 리포트를 만들어 사용하고 있습니다. 원칙적으로는 이렇게 운영환경에서 소스코드를 직접 편집하면 안되지만, 부득이 하게 긴급 수정 후 개발에서 재작업후 CTS 넘겨서 운.. 2024. 10. 24. [Function] POPUP_GET_VALUES_DB_CHECKED - 필드값 입력 팝업 POPUP_GET_VALUES_DB_CHECKED 필드값 입력 팝업 POPUP_GET_VALUES 펑션과 유사하게 필드값을 입/출력하여 입력값을 받은수 있다. 차이점은 COMP_CODE, COMP_TABLE, COMP_FIELD를 이용하여 테이블 값으로 입력필드 값을 점검할 수 있다. # SVAL 필드 # 사용예시 DATA: LV_RETURNCODE TYPE C, LT_FIELDS TYPE STANDARD TABLE OF SVAL. LT_FIELDS = VALUE #( "입력받을 필드 ( TABNAME = 'BKPF' FIELDNAME = 'BUKRS' FIELD_OBL = 'X' COMP_CODE = 'NC' ) "아래 조건으로만 점검하기 위해 BKPF-BUKRS 필드 점검은 제외 "필드 값을 점검하기.. 2023. 12. 18. [Function] POPUP_GET_VALUES - 필드값 입력 팝업 POPUP_GET_VALUES 필드값 입력 팝업 팝업을 띄워서 필요한 값을 입/출력하는 Function 기본적으로 도메인 값을 점검해준다. # SVAL 필드 # 사용예시 DATA: LV_RETURNCODE TYPE C, LT_FIELDS TYPE STANDARD TABLE OF SVAL. "FIELD_ATTR 값 별 차이 LT_FIELDS = VALUE #( ( TABNAME = 'BKPF' FIELDNAME = 'BUDAT' FIELD_ATTR = SPACE ) ( TABNAME = 'BKPF' FIELDNAME = 'BLDAT' FIELD_ATTR = '01' ) ( TABNAME = 'BKPF' FIELDNAME = 'CPUDT' FIELD_ATTR = '02' ) ( TABNAME = 'BKPF'.. 2023. 12. 18. 이전 1 2 3 4 ··· 14 다음