Class16 [Class] CL_SALV_TABLE - SALV 제어 CL_SALV_TABLESALV는 기능이 제한적인 대신 사용방법이 간단하여, CBO 프로그램 내에서 간단하게 리스트를 보여주거나 팝업 형태로 보여줄때 간편하게 사용 할 수 있습니다. 또한, Full Screen으로 사용할 경우 해당 리포트가 백그라운드 작업을 돌릴 경우 스풀에 화면리 리스트로 남게되어 아주 편리합니다. # 사용 예시REPORT YSALV_TABLE.CLASS LCL_HANDLE_EVENTS DEFINITION. PUBLIC SECTION. METHODS: ON_DOUBLE_CLICK FOR EVENT DOUBLE_CLICK OF CL_SALV_EVENTS_TABLE IMPORTING ROW COLUMN, ON_LINK_CLICK FOR EVEN.. 2024. 10. 31. [Class] CL_AUTH_OBJECTS_TO_SQL - 사용자의 보유 권한으로 SQL 조건문 생성 CL_AUTH_OBJECTS_TO_SQL사용자의 보유 권한으로 SQL 조건문 생성 CBO 프로그램에서 사용자가 보유한 권한에 해당 하는 데이터만 조회하기 위해 기존에는 range를 이용하여 권한이 있는 조직 데이터를 만들어 쿼리문을 처리하였는데, 비교적 간단하게 권한오브젝트에 대해 사용자의 보유권한을 이용하여 조건문을 자동으로 생성해 주는 Class가 있어서 정리해 봤습니다. 권한을 점검하고자 하는 오브젝트와 권한값 을 넣으면 해당하는 조직정보나 문서유형 같은 값들을 SQL 조건문으로 만들어 줍니다. 적절하게 활용하면 CBO 프로그램의 권한 제어에 상당히 효율적으로 보입니다. # 사용예시 "데이터 조회시 권한 점검 포함 DATA(lv_where_clause) = VALUE string( ). DAT.. 2024. 10. 29. [개발Tip] WebGUI에서 Excel 업로드(CL_FDT_XL_SPREADSHEET/ABAP2XLSX) WebGUI에서 Excel 업로드 CL_FDT_XL_SPREADSHEET ABAP2XLSX ABAP에서 엑셀 업로드(Excel to Internal Table)를 할 경우 대부분의 경우 ALSM_EXCEL_TO_INTERNAL_TABLE 펑션을 이용합니다. 단, 해당 펑션은 Excel OLE 기능을 이용하다 보니 WebGUI에서는 작동하지 않습니다. 이 경우 GUI_UPLOAD를 이용하여 PC의 엑셀 파일을 SAP에 업로드 하여 Excel(XML) Object를 만든 후에 Internal Table로 변환할 수 있습니다. CL_FDT_XL_SPREADSHEET 클래스를 이용하거나, ABAP2XLSX를 이용하여 기능을 구현할 수 있으며 현장 상황에 따라 아래 링크처럼 Class(또는 펑션)로 만들어서 활용.. 2023. 12. 7. [개발Tip] WebGUI에서 Excel 템플릿의 셀 값 변경 (CL_FDT_XL_SPREADSHEET/ABAP2XLSX) Excel 템플릿의 셀 값 변경 CL_FDT_XL_SPREADSHEET ABAP2XLSX ABAP내에서 Excel OLE를 사용하지 않고 Web Repository Object(SMW0)에 등록한 엑셀 템플릿에 셀 값을 변경하여 다운로드 하는 방법입니다. SAPGUI의 경우 OLE를 사용하면 되지만 WebGUI의 경우에는 브라우저에서 PC의 OLE 오브젝트를 호출할 수 없어서 아래와 같이 XML Reader/Writer기반의 클래스를 사용해야 합니다. 더 좋은 방법이 있을것 같긴 하지만 제가 알고 있는 방법은 총 2가지 방법입니다. ABAP2XLSX이 가장 사용하기 편하고 OLE를 사용할때 처럼 자유롭게 셀 제어가 가능합니다. CL_FDT_XL_SPREADSHEET도 이름 정의된 셀만 제어할 수 있는 제.. 2023. 12. 7. [Class] CL_SEC_SXML_WRITER - AES256 암호화/복호화 CL_SEC_SXML_WRITER AES256 암호화/복호화 알고리즘별로 KEY 길이를 잘 맞추어야 합니다. AES128 : Block size = 16 AES192 : Block size = 24 AES256 : Block size = 32 # 사용예시 PARAMETERS: P_PLAIN TYPE STRING OBLIGATORY, P_KEY TYPE STRING OBLIGATORY, P_IV TYPE STRING OBLIGATORY. INITIALIZATION. %_P_PLAIN_%_APP_%-TEXT = '평문'. %_P_KEY_%_APP_%-TEXT = 'Secret Key'. %_P_IV_%_APP_%-TEXT = 'Initialization Vector'. START-OF-SELECTION. ".. 2023. 11. 30. [Class] BASE64 ENCODE/DECODE CL_HTTP_UTILITY=>ENCODE_X_BASE64 CL_HTTP_UTILITY=>DECODE_X_BASE64 #사용 예시 "한글의 경우 UTF8 Encoding 후에 Base64 Encoding 처리 "Base64 Encoding DATA(LV_BASE64_ENCODED) = CL_HTTP_UTILITY=>ENCODE_X_BASE64( CL_HTTP_UTILITY=>ENCODE_UTF8( '문자열11234$$1ggg' ) ). WRITE:/ LV_BASE64_ENCODED. "Base64 Decoding WRITE:/ CL_HTTP_UTILITY=>DECODE_UTF8( CL_HTTP_UTILITY=>DECODE_X_BASE64( LV_BASE64_ENCODED ) ). 2023. 11. 30. [Class] Internal Table/Structure 일괄 Conversion - ZCL_MASS_CONV_ALPHA 일괄 Conversion Alpha ZCL_MASS_CONV_ALPHA # Conversion 규칙 Domain에 설정된 Conversion Routine Domain에 설정된 소문자 사용 여부 숫자 필드의 경우 마이너스 기호를 앞으로 (OUTPUT 시) 금액필드의 경우 통화참조가 있을 경우 통화에 따른 변환 적용 날짜 및 시간의 경우 숫자를 제외한 모든 문자 제거 (INPUT 시) # Input/Output 형식 Internal Table 전체 변환 : Standard Table 단일 레코드 변환 : Structure 단일 변수 변환 : Variant # 사용예시 TYPES: BEGIN OF T_BSIK, LIFNR TYPE BSIK-LIFNR, GJAHR TYPE BSIK-GJAHR, BELNR TY.. 2023. 11. 22. 이전 1 2 3 다음