From 46e19cc48185850d6037a74611f9835054d97b80 Mon Sep 17 00:00:00 2001 From: MYSAP Date: Tue, 18 Aug 2026 04:54:30 +0000 Subject: [PATCH] First Commit (2026.08.18) --- .abapgit.xml | 10 ++++ src/package.devc.xml | 10 ++++ src/zcl_custom_amdp_table.clas.abap | 85 +++++++++++++++++++++++++++++ src/zcl_custom_amdp_table.clas.xml | 16 ++++++ src/ztest001.prog.abap | 69 +++++++++++++++++++++++ src/ztest001.prog.xml | 21 +++++++ src/ztest002.prog.abap | 39 +++++++++++++ src/ztest002.prog.xml | 21 +++++++ src/ztest003.prog.abap | 45 +++++++++++++++ src/ztest003.prog.xml | 21 +++++++ src/ztest004.prog.abap | 23 ++++++++ src/ztest004.prog.xml | 80 +++++++++++++++++++++++++++ src/ztest005.prog.abap | 11 ++++ src/ztest005.prog.xml | 21 +++++++ src/ztest006.prog.abap | 21 +++++++ src/ztest006.prog.xml | 21 +++++++ src/ztest007.prog.abap | 42 ++++++++++++++ src/ztest007.prog.xml | 21 +++++++ src/ztf_sflight_amdp.ddls.asddls | 18 ++++++ src/ztf_sflight_amdp.ddls.baseinfo | 0 src/ztf_sflight_amdp.ddls.xml | 13 +++++ src/ztopdown.fugr.lztopdowntop.abap | 3 + src/ztopdown.fugr.lztopdowntop.xml | 17 ++++++ src/ztopdown.fugr.saplztopdown.abap | 15 +++++ src/ztopdown.fugr.saplztopdown.xml | 18 ++++++ src/ztopdown.fugr.xml | 30 ++++++++++ src/ztopdown.fugr.ztopdown_env.abap | 13 +++++ 27 files changed, 704 insertions(+) create mode 100644 .abapgit.xml create mode 100644 src/package.devc.xml create mode 100644 src/zcl_custom_amdp_table.clas.abap create mode 100644 src/zcl_custom_amdp_table.clas.xml create mode 100644 src/ztest001.prog.abap create mode 100644 src/ztest001.prog.xml create mode 100644 src/ztest002.prog.abap create mode 100644 src/ztest002.prog.xml create mode 100644 src/ztest003.prog.abap create mode 100644 src/ztest003.prog.xml create mode 100644 src/ztest004.prog.abap create mode 100644 src/ztest004.prog.xml create mode 100644 src/ztest005.prog.abap create mode 100644 src/ztest005.prog.xml create mode 100644 src/ztest006.prog.abap create mode 100644 src/ztest006.prog.xml create mode 100644 src/ztest007.prog.abap create mode 100644 src/ztest007.prog.xml create mode 100644 src/ztf_sflight_amdp.ddls.asddls create mode 100644 src/ztf_sflight_amdp.ddls.baseinfo create mode 100644 src/ztf_sflight_amdp.ddls.xml create mode 100644 src/ztopdown.fugr.lztopdowntop.abap create mode 100644 src/ztopdown.fugr.lztopdowntop.xml create mode 100644 src/ztopdown.fugr.saplztopdown.abap create mode 100644 src/ztopdown.fugr.saplztopdown.xml create mode 100644 src/ztopdown.fugr.xml create mode 100644 src/ztopdown.fugr.ztopdown_env.abap diff --git a/.abapgit.xml b/.abapgit.xml new file mode 100644 index 0000000..7c0506a --- /dev/null +++ b/.abapgit.xml @@ -0,0 +1,10 @@ + + + + + E + /src/ + PREFIX + + + diff --git a/src/package.devc.xml b/src/package.devc.xml new file mode 100644 index 0000000..bae7bf8 --- /dev/null +++ b/src/package.devc.xml @@ -0,0 +1,10 @@ + + + + + + TEST + + + + diff --git a/src/zcl_custom_amdp_table.clas.abap b/src/zcl_custom_amdp_table.clas.abap new file mode 100644 index 0000000..aff39c7 --- /dev/null +++ b/src/zcl_custom_amdp_table.clas.abap @@ -0,0 +1,85 @@ +CLASS zcl_custom_amdp_table DEFINITION + PUBLIC + FINAL + CREATE PUBLIC . + + PUBLIC SECTION. + INTERFACES if_amdp_marker_hdb. + + TYPES: + BEGIN OF ty_result, + carrid TYPE s_carr_id, + connid TYPE s_conn_id, + fldate TYPE s_date, + price TYPE s_price, + currency TYPE s_currcode, + planetype TYPE s_planetye, + seatsmax TYPE s_seatsmax, + seatsocc TYPE s_seatsocc, + seatsfree TYPE s_seatsocc, + END OF ty_result, + tt_result TYPE STANDARD TABLE OF ty_result WITH EMPTY KEY. + + " AMDP Procedure + CLASS-METHODS get_flights_proc + IMPORTING VALUE(iv_carrid) TYPE s_carr_id + EXPORTING VALUE(et_result) TYPE tt_result + RAISING cx_amdp_execution_error. + + CLASS-METHODS get_flights + FOR TABLE FUNCTION ztf_sflight_amdp. + + PROTECTED SECTION. + PRIVATE SECTION. +ENDCLASS. + + + +CLASS zcl_custom_amdp_table IMPLEMENTATION. + METHOD get_flights_proc + BY DATABASE PROCEDURE + FOR HDB + LANGUAGE SQLSCRIPT + OPTIONS READ-ONLY + USING sflight. + + et_result = + SELECT carrid, + connid, + fldate, + price, + currency, + planetype, + seatsmax, + seatsocc, + seatsmax - seatsocc AS seatsfree + FROM sflight + WHERE mandt = SESSION_CONTEXT('CLIENT') + AND carrid = :iv_carrid; + ENDMETHOD. + + METHOD get_flights + BY DATABASE FUNCTION + FOR HDB + LANGUAGE SQLSCRIPT + OPTIONS READ-ONLY + USING sflight. + + RETURN + select + mandt, + carrid, + connid, + fldate, + price, + currency, + planetype, + seatsmax, + seatsocc, + seatsmax - seatsocc AS seatsfree + FROM sflight + WHERE carrid = :p_carrid; + + ENDMETHOD. + +ENDCLASS. diff --git a/src/zcl_custom_amdp_table.clas.xml b/src/zcl_custom_amdp_table.clas.xml new file mode 100644 index 0000000..2ac2f39 --- /dev/null +++ b/src/zcl_custom_amdp_table.clas.xml @@ -0,0 +1,16 @@ + + + + + + ZCL_CUSTOM_AMDP_TABLE + E + CDS Table Function + 1 + X + X + X + + + + diff --git a/src/ztest001.prog.abap b/src/ztest001.prog.abap new file mode 100644 index 0000000..6b03f7d --- /dev/null +++ b/src/ztest001.prog.abap @@ -0,0 +1,69 @@ +REPORT ztest001. + +TYPE-POOLS: slis. +TABLES: sflight. + +DATA: lt_flight TYPE TABLE OF sflight, + ls_layout TYPE slis_layout_alv, + lt_fieldcat TYPE slis_t_fieldcat_alv, + ls_fieldcat TYPE slis_fieldcat_alv, + lv_variant TYPE disvariant-variant VALUE 'ZTEST_VAR', + ls_variant TYPE disvariant, + lv_msg TYPE string. + +* 데이터 조회 (최대 200건) +SELECT * FROM sflight INTO TABLE lt_flight UP TO 200 ROWS. +IF sy-subrc <> 0. + MESSAGE '데이터를 가져오지 못했습니다.' TYPE 'E'. + EXIT. +ENDIF. + +* ALV 레이아웃 정의 +ls_layout-zebra = abap_true. +* ls_layout-sel_mode = 'A'. " ← 오류 원인이므로 주석 처리, 필요하면 box_fieldname 등 활용 +* ls_layout-edit_mode = 'X'. " ← 필요 시 편집 가능 설정 (생략 가능) + +* 필드카탈로그 생성 (SELTEXT_M 사용) +CLEAR lt_fieldcat. +CLEAR ls_fieldcat. + +ls_fieldcat-fieldname = 'CARRID'. +ls_fieldcat-seltext_m = 'Carrier ID'. +APPEND ls_fieldcat TO lt_fieldcat. + +CLEAR ls_fieldcat. +ls_fieldcat-fieldname = 'CONNID'. +ls_fieldcat-seltext_m = 'Connection ID'. +APPEND ls_fieldcat TO lt_fieldcat. + +CLEAR ls_fieldcat. +ls_fieldcat-fieldname = 'FLDATE'. +ls_fieldcat-seltext_m = 'Flight Date'. +APPEND ls_fieldcat TO lt_fieldcat. + +CLEAR ls_fieldcat. +ls_fieldcat-fieldname = 'PRICE'. +ls_fieldcat-seltext_m = 'Price'. +APPEND ls_fieldcat TO lt_fieldcat. + +* Variant 저장 설정 +ls_variant-report = sy-repid. +ls_variant-variant = lv_variant. +ls_variant-username = sy-uname. + +* ALV 그리드 호출 +CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' + EXPORTING + i_callback_program = sy-repid + is_variant = ls_variant + it_fieldcat = lt_fieldcat + is_layout = ls_layout + TABLES + t_outtab = lt_flight + EXCEPTIONS + program_error = 1 MESSAGE lv_msg + OTHERS = 2. +IF sy-subrc <> 0. + MESSAGE ID 'SAPLALV' TYPE 'E' NUMBER 002 WITH lv_msg. +ENDIF. + diff --git a/src/ztest001.prog.xml b/src/ztest001.prog.xml new file mode 100644 index 0000000..f595098 --- /dev/null +++ b/src/ztest001.prog.xml @@ -0,0 +1,21 @@ + + + + + + ZTEST001 + 1 + E + X + X + + + + R + Program ZTEST001 + 16 + + + + + diff --git a/src/ztest002.prog.abap b/src/ztest002.prog.abap new file mode 100644 index 0000000..dff86fa --- /dev/null +++ b/src/ztest002.prog.abap @@ -0,0 +1,39 @@ +*&---------------------------------------------------------------------* +*& Report ZTEST002 +*&---------------------------------------------------------------------* +*& +*&---------------------------------------------------------------------* +REPORT ZTEST002. + +TYPES: BEGIN OF ty_tab, + key1 TYPE c LENGTH 1, + key2 TYPE c LENGTH 1, + val1 TYPE i, + val2 TYPE i, + END OF ty_tab. + +DATA: lt_tab1 TYPE TABLE OF ty_tab, + lt_tab2 TYPE TABLE OF ty_tab, + lt_all TYPE TABLE OF ty_tab, + lt_result TYPE TABLE OF ty_tab, + wa_tab TYPE ty_tab. + +lt_tab1 = VALUE #( + ( key1 = 'A' key2 = 'A' val1 = 100 val2 = 0 ) + ( key1 = 'B' key2 = 'B' val1 = 500 val2 = 0 ) + ). +lt_tab2 = VALUE #( + ( key1 = 'A' key2 = 'A' val1 = 0 val2 = 500 ) + ( key1 = 'C' key2 = 'C' val1 = 0 val2 = 300 ) + ). + +" 두 테이블을 합침 +APPEND LINES OF lt_tab1 TO lt_all. +APPEND LINES OF lt_tab2 TO lt_all. + +" COLLECT로 키 기준 합산 +LOOP AT lt_all INTO wa_tab. + COLLECT wa_tab INTO lt_result. +ENDLOOP. + +BREAK-POINT. diff --git a/src/ztest002.prog.xml b/src/ztest002.prog.xml new file mode 100644 index 0000000..5c32de3 --- /dev/null +++ b/src/ztest002.prog.xml @@ -0,0 +1,21 @@ + + + + + + ZTEST002 + 1 + E + X + X + + + + R + Program ZTEST002 + 16 + + + + + diff --git a/src/ztest003.prog.abap b/src/ztest003.prog.abap new file mode 100644 index 0000000..284c9cd --- /dev/null +++ b/src/ztest003.prog.abap @@ -0,0 +1,45 @@ +*&---------------------------------------------------------------------* +*& Report ZTEST003 +*&---------------------------------------------------------------------* +*& +*&---------------------------------------------------------------------* +REPORT ZTEST003. + +TYPES: BEGIN OF ty_tab, + key1 TYPE c LENGTH 1, + key2 TYPE c LENGTH 1, + val1 TYPE i, + val2 TYPE i, + END OF ty_tab. + +DATA: lt_tab1 TYPE TABLE OF ty_tab, + lt_tab2 TYPE TABLE OF ty_tab, + lt_all TYPE TABLE OF ty_tab, + lt_result TYPE TABLE OF ty_tab. + +lt_tab1 = VALUE #( + ( key1 = 'A' key2 = 'A' val1 = 100 val2 = 0 ) + ( key1 = 'B' key2 = 'B' val1 = 500 val2 = 0 ) + ). +lt_tab2 = VALUE #( + ( key1 = 'A' key2 = 'A' val1 = 0 val2 = 500 ) + ( key1 = 'C' key2 = 'C' val1 = 0 val2 = 300 ) + ). + +" 두 테이블 합치기 +APPEND LINES OF lt_tab1 TO lt_all. +APPEND LINES OF lt_tab2 TO lt_all. + +" GROUP BY로 key 기준 집계 +lt_result = VALUE #( FOR GROUPS g OF row IN lt_all + GROUP BY ( key1 = row-key1 key2 = row-key2 ) + ( key1 = g-key1 + key2 = g-key2 + val1 = REDUCE i( INIT sum = 0 + FOR rec IN GROUP g + NEXT sum = sum + rec-val1 ) + val2 = REDUCE i( INIT sum = 0 + FOR rec IN GROUP g + NEXT sum = sum + rec-val2 ) ) ). + +BREAK-POINT. diff --git a/src/ztest003.prog.xml b/src/ztest003.prog.xml new file mode 100644 index 0000000..30018de --- /dev/null +++ b/src/ztest003.prog.xml @@ -0,0 +1,21 @@ + + + + + + ZTEST003 + 1 + E + X + X + + + + R + Report ZTEST003 + 15 + + + + + diff --git a/src/ztest004.prog.abap b/src/ztest004.prog.abap new file mode 100644 index 0000000..7d3984b --- /dev/null +++ b/src/ztest004.prog.abap @@ -0,0 +1,23 @@ +*&---------------------------------------------------------------------* +*& Report ZTEST004 +*&---------------------------------------------------------------------* +*& +*&---------------------------------------------------------------------* +REPORT ZTEST004. + +data : container type ref to cl_gui_custom_container, + editor type ref to cl_gui_textedit. + +START-OF-SELECTION. + +CREATE OBJECT container + EXPORTING + container_name = 'TEXTEDIT'. + + +CREATE OBJECT editor + EXPORTING + parent = container. + + +call screen 0100. diff --git a/src/ztest004.prog.xml b/src/ztest004.prog.xml new file mode 100644 index 0000000..53b9abb --- /dev/null +++ b/src/ztest004.prog.xml @@ -0,0 +1,80 @@ + + + + + + ZTEST004 + 1 + E + X + X + + + +
+ ZTEST004 + 0100 + E + test + N + 0100 + 045 + 249 +
+ + + SCREEN + SCREEN + + + CUST_CTRL + TEXTEDIT + SCREEN + 002 + 001 + 242 + 043 + + + + + SCREEN + SCREEN + OKCODE + ____________________ + 020 + 020 + 001 + CHAR + X + + + + + PROCESS BEFORE OUTPUT. + + + * MODULE STATUS_0100. + + + * + + + PROCESS AFTER INPUT. + + + * MODULE USER_COMMAND_0100. + + +
+
+ + + R + Program ZTEST004 + 16 + + +
+
+
diff --git a/src/ztest005.prog.abap b/src/ztest005.prog.abap new file mode 100644 index 0000000..9ee86c3 --- /dev/null +++ b/src/ztest005.prog.abap @@ -0,0 +1,11 @@ +*&---------------------------------------------------------------------* +*& Report ZTEST005 +*&---------------------------------------------------------------------* +*& +*&---------------------------------------------------------------------* +REPORT ZTEST005. + +*INCLUDE . +DATA: msg(40) value '2010년12월17일 눈오는 아침'. +WRITE : / ICON_PERSONAL_HELP AS ICON QUICKINFO msg. +*HOTSPOT COLOR COL_POSITIVE. diff --git a/src/ztest005.prog.xml b/src/ztest005.prog.xml new file mode 100644 index 0000000..0ff9bd1 --- /dev/null +++ b/src/ztest005.prog.xml @@ -0,0 +1,21 @@ + + + + + + ZTEST005 + 1 + E + X + X + + + + R + Program ZTEST005 + 16 + + + + + diff --git a/src/ztest006.prog.abap b/src/ztest006.prog.abap new file mode 100644 index 0000000..6fc9e7a --- /dev/null +++ b/src/ztest006.prog.abap @@ -0,0 +1,21 @@ +*&---------------------------------------------------------------------* +*& Report ZTEST006 +*&---------------------------------------------------------------------* +*& +*&---------------------------------------------------------------------* +REPORT ztest006. + +*SELECT assetcode, waers, SUM( dep_amt ) AS dep_amt +SELECT assetcode, aname, waers, seq_no, dep_amt + FROM zvtax0008 + order by assetcode, seq_no + INTO TABLE @DATA(lt_tab) + . + +LOOP AT lt_tab INTO DATA(ls_tab). + + WRITE : at 10(5) ls_tab-assetcode, at 30(100) ls_tab-aname, + at 70(3) ls_tab-seq_no, + ls_tab-dep_amt CURRENCY ls_tab-waers. + NEW-LINE. +ENDLOOP. diff --git a/src/ztest006.prog.xml b/src/ztest006.prog.xml new file mode 100644 index 0000000..1d2abfa --- /dev/null +++ b/src/ztest006.prog.xml @@ -0,0 +1,21 @@ + + + + + + ZTEST006 + 1 + E + X + X + + + + R + Program ZTEST006 + 16 + + + + + diff --git a/src/ztest007.prog.abap b/src/ztest007.prog.abap new file mode 100644 index 0000000..1310a9c --- /dev/null +++ b/src/ztest007.prog.abap @@ -0,0 +1,42 @@ +*&---------------------------------------------------------------------* +*& Report ZTEST007 +*&---------------------------------------------------------------------* +*& +*&---------------------------------------------------------------------* +REPORT ztest007. + +TABLES: scarr. +PARAMETERS: p_carrid LIKE scarr-carrid. + +INITIALIZATION. + CALL FUNCTION 'SWU_OBJECT_PUBLISH' + EXPORTING + objtype = 'ZMYGOS' + objkey = p_carrid. + +START-OF-SELECTION. + + CLEAR: scarr. + SELECT SINGLE * + FROM scarr + + WHERE carrid = p_carrid. + + IF sy-subrc NE 0. + LEAVE LIST-PROCESSING. + ENDIF. + +END-OF-SELECTION. + + WRITE:/ '항공사 정보'. + SKIP 1. + + WRITE: /(10) '항공사명함수:', + 12(50) scarr-carrname. + WRITE: /(10) '홈페이지:', + 12(50) scarr-url. + + CALL FUNCTION 'SWU_OBJECT_PUBLISH' + EXPORTING + objtype = 'ZMYGOS' + objkey = p_carrid. diff --git a/src/ztest007.prog.xml b/src/ztest007.prog.xml new file mode 100644 index 0000000..16c0c36 --- /dev/null +++ b/src/ztest007.prog.xml @@ -0,0 +1,21 @@ + + + + + + ZTEST007 + 1 + E + X + X + + + + R + GOS 테스트 + 7 + + + + + diff --git a/src/ztf_sflight_amdp.ddls.asddls b/src/ztf_sflight_amdp.ddls.asddls new file mode 100644 index 0000000..e3ae2b8 --- /dev/null +++ b/src/ztf_sflight_amdp.ddls.asddls @@ -0,0 +1,18 @@ +@EndUserText.label: 'SFLIGHT AMDP Table Function' +define table function ZTF_SFLIGHT_AMDP + with parameters + p_carrid : s_carr_id + returns + { + key mandt : s_mandt; + key carrid : s_carr_id; + key connid : s_conn_id; + key fldate : s_date; + price : s_price; + currency : s_currcode; + planetype : s_planetye; + seatsmax : s_seatsmax; + seatsocc : s_seatsocc; + seatsfree : s_seatsmax; + } + implemented by method zcl_custom_amdp_table=>GET_FLIGHTS; diff --git a/src/ztf_sflight_amdp.ddls.baseinfo b/src/ztf_sflight_amdp.ddls.baseinfo new file mode 100644 index 0000000..e69de29 diff --git a/src/ztf_sflight_amdp.ddls.xml b/src/ztf_sflight_amdp.ddls.xml new file mode 100644 index 0000000..760f594 --- /dev/null +++ b/src/ztf_sflight_amdp.ddls.xml @@ -0,0 +1,13 @@ + + + + + + ZTF_SFLIGHT_AMDP + E + CDS Table Function + F + + + + diff --git a/src/ztopdown.fugr.lztopdowntop.abap b/src/ztopdown.fugr.lztopdowntop.abap new file mode 100644 index 0000000..776f4e8 --- /dev/null +++ b/src/ztopdown.fugr.lztopdowntop.abap @@ -0,0 +1,3 @@ +FUNCTION-POOL ZTOPDOWN. "MESSAGE-ID .. + +* INCLUDE LZTOPDOWND... " Local class definition diff --git a/src/ztopdown.fugr.lztopdowntop.xml b/src/ztopdown.fugr.lztopdowntop.xml new file mode 100644 index 0000000..3b6862d --- /dev/null +++ b/src/ztopdown.fugr.lztopdowntop.xml @@ -0,0 +1,17 @@ + + + + + + LZTOPDOWNTOP + S + D$ + I + S + X + D$S + X + + + + diff --git a/src/ztopdown.fugr.saplztopdown.abap b/src/ztopdown.fugr.saplztopdown.abap new file mode 100644 index 0000000..20be879 --- /dev/null +++ b/src/ztopdown.fugr.saplztopdown.abap @@ -0,0 +1,15 @@ +******************************************************************* +* System-defined Include-files. * +******************************************************************* + INCLUDE LZTOPDOWNTOP. " Global Declarations + INCLUDE LZTOPDOWNUXX. " Function Modules + +******************************************************************* +* User-defined Include-files (if necessary). * +******************************************************************* +* INCLUDE LZTOPDOWNF... " Subroutines +* INCLUDE LZTOPDOWNO... " PBO-Modules +* INCLUDE LZTOPDOWNI... " PAI-Modules +* INCLUDE LZTOPDOWNE... " Events +* INCLUDE LZTOPDOWNP... " Local class implement. +* INCLUDE LZTOPDOWNT99. " ABAP Unit tests diff --git a/src/ztopdown.fugr.saplztopdown.xml b/src/ztopdown.fugr.saplztopdown.xml new file mode 100644 index 0000000..43439c8 --- /dev/null +++ b/src/ztopdown.fugr.saplztopdown.xml @@ -0,0 +1,18 @@ + + + + + + SAPLZTOPDOWN + S + D$ + F + S + E + X + D$S + X + + + + diff --git a/src/ztopdown.fugr.xml b/src/ztopdown.fugr.xml new file mode 100644 index 0000000..5707e73 --- /dev/null +++ b/src/ztopdown.fugr.xml @@ -0,0 +1,30 @@ + + + + + test + + LZTOPDOWNTOP + SAPLZTOPDOWN + + + + ZTOPDOWN_ENV + 테이블명 반환 함수 + + + TB_NAME + TABNAME + + + + + TB_NAME + P + + + + + + + diff --git a/src/ztopdown.fugr.ztopdown_env.abap b/src/ztopdown.fugr.ztopdown_env.abap new file mode 100644 index 0000000..8433eb9 --- /dev/null +++ b/src/ztopdown.fugr.ztopdown_env.abap @@ -0,0 +1,13 @@ +FUNCTION ZTOPDOWN_ENV. +*"-------------------------------------------------------------------- +*"*"Local Interface: +*" EXPORTING +*" VALUE(TB_NAME) TYPE TABNAME +*"-------------------------------------------------------------------- + tb_name = 'ZCOT1000'. + + + + + +ENDFUNCTION.