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..6bc1053
--- /dev/null
+++ b/src/package.devc.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ 관리회계 개발 패키지
+
+
+
+
diff --git a/src/ycapgmedit.prog.abap b/src/ycapgmedit.prog.abap
new file mode 100644
index 0000000..beaa11a
--- /dev/null
+++ b/src/ycapgmedit.prog.abap
@@ -0,0 +1,29 @@
+*&---------------------------------------------------------------------*
+*& Report YCAPGMEDIT
+*&---------------------------------------------------------------------*
+*&
+*&---------------------------------------------------------------------*
+REPORT YCAPGMEDIT.
+
+TABLES : TRDIR.
+
+DATA : BEGIN OF ITAB OCCURS 0,
+ LINE(200),
+ END OF ITAB.
+
+*&-------------------------------------------
+PARAMETERS PROGRAM LIKE TRDIR-NAME OBLIGATORY.
+
+*&-------------------------------------------
+START-OF-SELECTION.
+ IF PROGRAM(1) NE 'Z' AND
+ PROGRAM(1) NE 'Y' AND
+ PROGRAM(2) NE 'LZ'.
+ MESSAGE S085(/BDL/BDL3) WITH 'CBO Porgram' DISPLAY LIKE 'E'.
+ LEAVE LIST-PROCESSING.
+ ENDIF.
+
+*&-------------------------------------------
+ READ REPORT PROGRAM INTO ITAB.
+ EDITOR-CALL FOR ITAB.
+ INSERT REPORT PROGRAM FROM ITAB.
diff --git a/src/ycapgmedit.prog.xml b/src/ycapgmedit.prog.xml
new file mode 100644
index 0000000..14ba4e3
--- /dev/null
+++ b/src/ycapgmedit.prog.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ YCAPGMEDIT
+ 1
+ E
+ X
+ X
+
+
+ -
+ R
+ EDITOR 프로그램
+ 11
+
+
+
+
+
diff --git a/src/zcat0010.tabl.xml b/src/zcat0010.tabl.xml
new file mode 100644
index 0000000..5addc17
--- /dev/null
+++ b/src/zcat0010.tabl.xml
@@ -0,0 +1,309 @@
+
+
+
+
+
+ ZCAT0010
+ E
+ TRANSP
+ X
+ X
+ [CA] Common Code Header
+ X
+ A
+ 1
+
+
+ ZCAT0010
+ A
+ 0
+ APPL0
+ X
+ N
+
+
+
+ MANDT
+ X
+ MANDT
+ 0
+ X
+ E
+
+
+ APPLI
+ X
+ ZE_APPLI_TR01
+ 0
+ X
+ X
+ F
+ E
+
+
+ GRP
+ X
+ 0
+ C
+ 000020
+ X
+ CHAR
+ 000010
+ CHAR
+ Code Group
+
+
+ SPRAS
+ X
+ 0
+ C
+ 000002
+ X
+ LANG
+ 000001
+ LANG
+ Language Key
+ X
+
+
+ GRP_TXT
+ 0
+ C
+ 000080
+ CHAR
+ 000040
+ CHAR
+ Short Text for Code Group
+
+
+ HDR_01
+ 0
+ C
+ 000040
+ CHAR
+ 000020
+ CHAR
+ Header Line 01
+
+
+ LEN_01
+ 0
+ P
+ 000002
+ DEC
+ 000002
+ DEC
+ Length 01
+
+
+ HDR_02
+ 0
+ C
+ 000040
+ CHAR
+ 000020
+ CHAR
+ Header Line 02
+
+
+ LEN_02
+ 0
+ P
+ 000002
+ DEC
+ 000002
+ DEC
+ Length 02
+
+
+ HDR_03
+ 0
+ C
+ 000040
+ CHAR
+ 000020
+ CHAR
+ Header Line 03
+
+
+ LEN_03
+ 0
+ P
+ 000002
+ DEC
+ 000002
+ DEC
+ Length 03
+
+
+ HDR_04
+ 0
+ C
+ 000040
+ CHAR
+ 000020
+ CHAR
+ Header Line 04
+
+
+ LEN_04
+ 0
+ P
+ 000002
+ DEC
+ 000002
+ DEC
+ Length 04
+
+
+ HDR_05
+ 0
+ C
+ 000040
+ CHAR
+ 000020
+ CHAR
+ Header Line 05
+
+
+ LEN_05
+ 0
+ P
+ 000002
+ DEC
+ 000002
+ DEC
+ Length 05
+
+
+ HDR_06
+ 0
+ C
+ 000040
+ CHAR
+ 000020
+ CHAR
+ Header Line 06
+
+
+ LEN_06
+ 0
+ P
+ 000002
+ DEC
+ 000002
+ DEC
+ Length 06
+
+
+ HDR_07
+ 0
+ C
+ 000040
+ CHAR
+ 000020
+ CHAR
+ Header Line 07
+
+
+ LEN_07
+ 0
+ P
+ 000002
+ DEC
+ 000002
+ DEC
+ Length 07
+
+
+ HDR_08
+ 0
+ C
+ 000040
+ CHAR
+ 000020
+ CHAR
+ Header Line 08
+
+
+ LEN_08
+ 0
+ P
+ 000002
+ DEC
+ 000002
+ DEC
+ Length 08
+
+
+ HDR_09
+ 0
+ C
+ 000040
+ CHAR
+ 000020
+ CHAR
+ Header Line 09
+
+
+ LEN_09
+ 0
+ P
+ 000002
+ DEC
+ 000002
+ DEC
+ Length 09
+
+
+ HDR_10
+ 0
+ C
+ 000040
+ CHAR
+ 000020
+ CHAR
+ Header Line 10
+
+
+ LEN_10
+ 0
+ P
+ 000002
+ DEC
+ 000002
+ DEC
+ Length 10
+
+
+ FCNT
+ 0
+ P
+ 000002
+ DEC
+ 000002
+ DEC
+ Header Count
+
+
+ REMK
+ 0
+ C
+ 000200
+ CHAR
+ 000100
+ CHAR
+ Comment
+
+
+ .INCLUDE
+ 0
+ ZRFKS0
+ S
+ Dialog Fields for Screens from Function Group FKS0
+ S
+
+
+
+
+
diff --git a/src/zcat0020.tabl.xml b/src/zcat0020.tabl.xml
new file mode 100644
index 0000000..d1a6a75
--- /dev/null
+++ b/src/zcat0020.tabl.xml
@@ -0,0 +1,210 @@
+
+
+
+
+
+ ZCAT0020
+ E
+ TRANSP
+ X
+ X
+ [CA] Common Code Item
+ X
+ A
+ 1
+
+
+ ZCAT0020
+ A
+ 0
+ APPL0
+ X
+ N
+
+
+
+ MANDT
+ X
+ MANDT
+ 0
+ X
+ E
+
+
+ APPLI
+ X
+ ZE_APPLI_TR01
+ 0
+ X
+ X
+ F
+ E
+
+
+ GRP
+ X
+ 0
+ C
+ 000020
+ X
+ CHAR
+ 000010
+ CHAR
+ Code Group
+
+
+ SPRAS
+ X
+ SPRAS
+ 0
+ X
+ D
+ E
+ X
+
+
+ CODE
+ X
+ ZE_SE_CODE_VALUE
+ 0
+ X
+ E
+
+
+ CODE_TXT
+ ZQTXT_CODE
+ 0
+ E
+
+
+ FLD_01
+ 0
+ C
+ 000198
+ CHAR
+ 000099
+ CHAR
+ Field 01
+
+
+ FLD_02
+ 0
+ C
+ 000198
+ CHAR
+ 000099
+ CHAR
+ Field 02
+
+
+ FLD_03
+ 0
+ C
+ 000198
+ CHAR
+ 000099
+ CHAR
+ Field 03
+
+
+ FLD_04
+ 0
+ C
+ 000198
+ CHAR
+ 000099
+ CHAR
+ Field 04
+
+
+ FLD_05
+ 0
+ C
+ 000198
+ CHAR
+ 000099
+ CHAR
+ Field 05
+
+
+ FLD_06
+ 0
+ C
+ 000198
+ CHAR
+ 000099
+ CHAR
+ Field 06
+
+
+ FLD_07
+ 0
+ C
+ 000198
+ CHAR
+ 000099
+ CHAR
+ Field 07
+
+
+ FLD_08
+ 0
+ C
+ 000198
+ CHAR
+ 000099
+ CHAR
+ Field 08
+
+
+ FLD_09
+ 0
+ C
+ 000198
+ CHAR
+ 000099
+ CHAR
+ Field 09
+
+
+ FLD_10
+ 0
+ C
+ 000198
+ CHAR
+ 000099
+ CHAR
+ Field 10
+
+
+ USEYN
+ 0
+ C
+ 000002
+ CHAR
+ 000001
+ CHAR
+ indicator : YES/NO(Y/N)
+
+
+ SORTSEQ
+ 0
+ N
+ 000008
+ NUMC
+ 000004
+ NUMC
+ Sort Order
+
+
+ .INCLUDE
+ 0
+ ZRFKS0
+ S
+ Dialog Fields for Screens from Function Group FKS0
+ S
+
+
+
+
+
diff --git a/src/zcreatedomain_element.prog.abap b/src/zcreatedomain_element.prog.abap
new file mode 100644
index 0000000..7adee70
--- /dev/null
+++ b/src/zcreatedomain_element.prog.abap
@@ -0,0 +1,148 @@
+*&---------------------------------------------------------------------*
+*& Report ZCREATEDOMAIN_ELEMENT
+*&---------------------------------------------------------------------*
+*&
+*&---------------------------------------------------------------------*
+REPORT zcreatedomain_element.
+
+PARAMETERS : p_domain TYPE dom_ref DEFAULT 'ZTBLS',
+ p_elemnt TYPE rollname DEFAULT 'ZTBLS'.
+
+
+
+PERFORM create_domain.
+
+PERFORM create_element.
+
+*&---------------------------------------------------------------------*
+*& Form create_domain
+*&---------------------------------------------------------------------*
+*& text
+*&---------------------------------------------------------------------*
+*& --> p1 text
+*& <-- p2 text
+*&---------------------------------------------------------------------*
+FORM create_domain .
+ DATA: ls_domain TYPE dd01v,
+ lt_domain_values TYPE STANDARD TABLE OF dd07v,
+ ls_domain_value TYPE dd07v,
+ lt_return TYPE STANDARD TABLE OF bapiret2.
+
+* 도메인 속성 정의
+ ls_domain-domname = p_domain.
+ ls_domain-ddlanguage = sy-langu.
+ ls_domain-datatype = 'CHAR'.
+ ls_domain-leng = 1.
+ ls_domain-ddtext = '테이블 유형'.
+
+* (필요시) 값 범위 설정 예시
+ CLEAR ls_domain_value.
+ ls_domain_value-domname = p_domain.
+ ls_domain_value-valpos = '0001'.
+ ls_domain_value-ddlanguage = sy-langu.
+ ls_domain_value-domvalue_l = '1'.
+ ls_domain_value-ddtext = 'CBO 테이블 관리 테이블'.
+ APPEND ls_domain_value TO lt_domain_values.
+
+* 아래 형식으로 사용 가능
+* ls_domain_value = VALUE #(
+* domname = p_domain
+* valpos = '0001'
+* ddlanguage = sy-langu
+* domvalue_l = '1'
+* ddtext = 'CBO 테이블 관리 테이블'
+* ).
+* APPEND ls_domain_value TO lt_domain_values.
+
+ ls_domain_value-domname = p_domain.
+ ls_domain_value-valpos = '0002'.
+ ls_domain_value-ddlanguage = sy-langu.
+ ls_domain_value-domvalue_l = '2'.
+ ls_domain_value-ddtext = '배부 기준 정보(월별)'.
+ APPEND ls_domain_value TO lt_domain_values.
+
+ ls_domain_value-domname = p_domain.
+ ls_domain_value-valpos = '0003'.
+ ls_domain_value-ddlanguage = sy-langu.
+ ls_domain_value-domvalue_l = '3'.
+ ls_domain_value-ddtext = '배부 대상 테이블'.
+ APPEND ls_domain_value TO lt_domain_values.
+
+ ls_domain_value-domname = p_domain.
+ ls_domain_value-valpos = '0004'.
+ ls_domain_value-ddlanguage = sy-langu.
+ ls_domain_value-domvalue_l = '4'.
+ ls_domain_value-ddtext = '배부 기준 테이블'.
+ APPEND ls_domain_value TO lt_domain_values.
+
+ ls_domain_value-domname = p_domain.
+ ls_domain_value-valpos = '0005'.
+ ls_domain_value-ddlanguage = sy-langu.
+ ls_domain_value-domvalue_l = '5'.
+ ls_domain_value-ddtext = '배부 결과 테이블'.
+ APPEND ls_domain_value TO lt_domain_values.
+
+ ls_domain_value-domname = p_domain.
+ ls_domain_value-valpos = '0006'.
+ ls_domain_value-ddlanguage = sy-langu.
+ ls_domain_value-domvalue_l = '6'.
+ ls_domain_value-ddtext = '전표 발행 테이블'.
+ APPEND ls_domain_value TO lt_domain_values.
+
+* 도메인 생성
+ CALL FUNCTION 'DDIF_DOMA_PUT'
+ EXPORTING
+ name = ls_domain-domname
+ dd01v_wa = ls_domain
+ TABLES
+ dd07v_tab = lt_domain_values.
+
+* 도메인 활성화
+ CALL FUNCTION 'DDIF_DOMA_ACTIVATE'
+ EXPORTING
+ name = ls_domain-domname.
+ENDFORM.
+*&---------------------------------------------------------------------*
+*& Form create_element
+*&---------------------------------------------------------------------*
+*& text
+*&---------------------------------------------------------------------*
+*& --> p1 text
+*& <-- p2 text
+*&---------------------------------------------------------------------*
+FORM create_element .
+ DATA: ls_element TYPE dd04v,
+ lt_return TYPE TABLE OF bapiret2.
+
+* 1. 데이터 엘리먼트 속성 정의
+ ls_element-rollname = p_elemnt.
+ ls_element-domname = p_domain. " 연결된 도메인
+ ls_element-ddlanguage = sy-langu.
+ ls_element-ddtext = '유형'.
+ ls_element-headlen = 55. " 헤딩 길이
+ ls_element-scrlen1 = 10. " 짧은 필드 레이블
+ ls_element-scrlen2 = 20. " 중간 필드 레이블
+ ls_element-scrlen3 = 40. " 긴 필드 레이블
+
+* 2. 데이터 엘리먼트 생성/업데이트
+ CALL FUNCTION 'DDIF_DTEL_PUT'
+ EXPORTING
+ name = ls_element-rollname
+ dd04v_wa = ls_element
+ EXCEPTIONS
+ element_not_found = 1
+ illegal_action = 2
+ OTHERS = 3.
+
+* 3. 활성화
+ IF sy-subrc = 0.
+ CALL FUNCTION 'DDIF_DTEL_ACTIVATE'
+ EXPORTING
+ name = ls_element-rollname
+ EXCEPTIONS
+ not_found = 1
+ put_failure = 2
+ OTHERS = 3.
+ ENDIF.
+
+ENDFORM.
diff --git a/src/zcreatedomain_element.prog.xml b/src/zcreatedomain_element.prog.xml
new file mode 100644
index 0000000..667f5d4
--- /dev/null
+++ b/src/zcreatedomain_element.prog.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ ZCREATEDOMAIN_ELEMENT
+ 1
+ E
+ X
+ X
+
+
+ -
+ R
+ 도메인과 데이타 엘리먼트 생성하기
+ 18
+
+
+
+
+
diff --git a/src/zcreatefunction.prog.abap b/src/zcreatefunction.prog.abap
new file mode 100644
index 0000000..cf4b215
--- /dev/null
+++ b/src/zcreatefunction.prog.abap
@@ -0,0 +1,87 @@
+*&---------------------------------------------------------------------*
+*& Report ZCREATEFUNCTION
+*&---------------------------------------------------------------------*
+*&
+*&---------------------------------------------------------------------*
+REPORT ZCREATEFUNCTION.
+
+TYPES: ty_rssource TYPE TABLE OF rssource.
+
+DATA:
+ lv_function_group TYPE rs38l-area VALUE 'ZTOPDOWN',
+ lv_function_name TYPE rs38l-name VALUE 'ZTOPDOWN_ENV',
+ lv_short_text TYPE tftit-stext VALUE '테이블명 반환 함수',
+ lt_source TYPE ty_rssource,
+ lt_export TYPE TABLE OF rsexp.
+
+START-OF-SELECTION.
+ PERFORM check_function_group.
+ PERFORM create_function_module.
+
+*&---------------------------------------------------------------------*
+*& Form CHECK_FUNCTION_GROUP
+*&---------------------------------------------------------------------*
+FORM check_function_group.
+ SELECT SINGLE area FROM tlibg INTO @DATA(lv_exists)
+ WHERE area = @lv_function_group.
+ IF sy-subrc <> 0.
+ WRITE: / '함수 그룹이 존재하지 않습니다. SE80에서 생성하세요:', lv_function_group.
+ STOP.
+ ENDIF.
+ENDFORM.
+
+*&---------------------------------------------------------------------*
+*& Form CREATE_FUNCTION_MODULE
+*&---------------------------------------------------------------------*
+FORM create_function_module.
+ DATA:
+ ls_export TYPE rsexp, " RSEXP 구조체 사용
+ lv_include TYPE rs38l-include.
+
+ " Export 파라미터 정의 (정확한 RSEXP 구조체 필드만 사용)
+ CLEAR ls_export.
+ ls_export-parameter = 'TB_NAME'. " 파라미터명
+ ls_export-typ = 'TABNAME'. " DB 필드명 (필수)
+
+ " OPTIONAL/DEFAULT 필드 제거 (RSEXP 구조체에 없음)
+ APPEND ls_export TO lt_export.
+
+ " 소스 코드 생성
+ PERFORM generate_source CHANGING lt_source.
+
+ " 함수 모듈 생성
+ CALL FUNCTION 'RS_FUNCTIONMODULE_INSERT'
+ EXPORTING
+ funcname = lv_function_name
+ function_pool = lv_function_group
+ short_text = lv_short_text
+ TABLES
+ export_parameter = lt_export
+ source = lt_source
+ EXCEPTIONS
+ function_already_exists = 1
+ OTHERS = 2.
+
+ IF sy-subrc = 0.
+ COMMIT WORK.
+ WRITE: / '함수 모듈 생성 성공:', lv_function_name.
+ ELSE.
+ WRITE: / '오류 발생:', sy-subrc.
+ ENDIF.
+ENDFORM.
+
+
+*&---------------------------------------------------------------------*
+*& Form GENERATE_SOURCE
+*&---------------------------------------------------------------------*
+FORM generate_source CHANGING ct_source TYPE ty_rssource.
+ DATA: ls_source TYPE rssource.
+
+ CLEAR ct_source.
+* ls_source-line = 'FUNCTION ztopdown_env.'.
+* APPEND ls_source TO ct_source.
+ ls_source-line = ' tb_name = ''ZCOT1000''.'.
+ APPEND ls_source TO ct_source.
+* ls_source-line = 'ENDFUNCTION.'.
+* APPEND ls_source TO ct_source.
+ENDFORM.
diff --git a/src/zcreatefunction.prog.xml b/src/zcreatefunction.prog.xml
new file mode 100644
index 0000000..188ca85
--- /dev/null
+++ b/src/zcreatefunction.prog.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ ZCREATEFUNCTION
+ 1
+ E
+ X
+ X
+
+
+ -
+ R
+ Function 생성하기
+ 13
+
+
+
+
+
diff --git a/src/zcreatetable.prog.abap b/src/zcreatetable.prog.abap
new file mode 100644
index 0000000..81b4e97
--- /dev/null
+++ b/src/zcreatetable.prog.abap
@@ -0,0 +1,198 @@
+*&---------------------------------------------------------------------*
+*& Report ZCREATETABLE
+*&---------------------------------------------------------------------*
+*& dd02v-tabclass 값으로 테이블과 구조체등 변경 가능
+*&---------------------------------------------------------------------*
+REPORT zcreatetable.
+
+" 데이터 선언
+*DATA: lv_tabname TYPE tabname VALUE 'ZTESTEMPLOYEE',
+DATA: lv_tabname TYPE tabname VALUE 'ZTY_EMPLOYEE',
+ lt_dd02v TYPE TABLE OF dd02v,
+ ls_dd02v TYPE dd02v,
+ lt_dd03p TYPE TABLE OF dd03p,
+ ls_dd03p TYPE dd03p,
+ lv_rc TYPE sy-subrc.
+
+" 테이블 헤더 정보 설정
+ls_dd02v-tabname = lv_tabname.
+ls_dd02v-ddlanguage = sy-langu.
+*ls_dd02v-tabclass = 'TRANSP'. " 투명 테이블
+ls_dd02v-tabclass = 'INTTAB'. " 구조
+ls_dd02v-clidep = 'X'. " 클라이언트 종속
+ls_dd02v-ddtext = '직원 테스트 테이블'.
+ls_dd02v-contflag = 'A'. " 활성
+ls_dd02v-mainflag = 'X'. " 메인 테이블
+APPEND ls_dd02v TO lt_dd02v.
+
+* 아래 형식으로 사용해도 됨. 신 문법
+* ls_dd02v = VALUE #(
+* tabname = lv_tabname
+* ddlanguage = sy-langu
+* tabclass = 'TRANSP' " 투명 테이블
+* clidep = 'X' " 클라이언트 종속
+* ddtext = '직원 테스트 테이블'
+* contflag = 'A' " 활성
+* mainflag = 'X' " 메인 테이블
+* ).
+* APPEND ls_dd02v TO lt_dd02v.
+
+" 테이블 필드 정보 설정
+CLEAR ls_dd03p.
+
+" 1. 클라이언트 필드
+ls_dd03p = VALUE #(
+ tabname = lv_tabname
+ fieldname = 'MANDT'
+ keyflag = 'X'
+ notnull = 'X'
+ rollname = 'MANDT'
+ ddlanguage = sy-langu
+ position = '0001'
+ ddtext = '클라이언트'
+).
+APPEND ls_dd03p TO lt_dd03p.
+
+" 2. 직원 번호 필드
+CLEAR ls_dd03p.
+ls_dd03p-tabname = lv_tabname.
+ls_dd03p-fieldname = 'EMPNO'.
+ls_dd03p-keyflag = 'X'.
+ls_dd03p-mandatory = 'X'.
+ls_dd03p-datatype = 'NUMC'.
+ls_dd03p-leng = 8.
+ls_dd03p-ddlanguage = sy-langu.
+ls_dd03p-position = '0002'.
+ls_dd03p-ddtext = '직원번호'.
+APPEND ls_dd03p TO lt_dd03p.
+
+" 3. 직원 이름 필드
+CLEAR ls_dd03p.
+ls_dd03p-tabname = lv_tabname.
+ls_dd03p-fieldname = 'EMPNAME'.
+ls_dd03p-datatype = 'CHAR'.
+ls_dd03p-leng = 50.
+ls_dd03p-ddlanguage = sy-langu.
+ls_dd03p-position = '0003'.
+ls_dd03p-ddtext = '직원이름'.
+APPEND ls_dd03p TO lt_dd03p.
+
+" 4. 부서 코드 필드
+CLEAR ls_dd03p.
+ls_dd03p-tabname = lv_tabname.
+ls_dd03p-fieldname = 'DEPTCODE'.
+ls_dd03p-datatype = 'CHAR'.
+ls_dd03p-leng = 10.
+ls_dd03p-ddlanguage = sy-langu.
+ls_dd03p-position = '0004'.
+ls_dd03p-ddtext = '부서코드'.
+APPEND ls_dd03p TO lt_dd03p.
+
+" 5. 급여 필드
+*CLEAR ls_dd03p.
+*ls_dd03p-tabname = lv_tabname.
+*ls_dd03p-fieldname = 'SALARY'.
+*ls_dd03p-datatype = 'CURR'.
+*ls_dd03p-leng = 15.
+*ls_dd03p-decimals = 2.
+*ls_dd03p-ddlanguage = sy-langu.
+*ls_dd03p-position = '0005'.
+*ls_dd03p-ddtext = '급여'.
+*APPEND ls_dd03p TO lt_dd03p.
+
+" 6. 입사일 필드
+CLEAR ls_dd03p.
+ls_dd03p-tabname = lv_tabname.
+ls_dd03p-fieldname = 'HIREDATE'.
+ls_dd03p-datatype = 'DATS'.
+ls_dd03p-leng = 8.
+ls_dd03p-ddlanguage = sy-langu.
+ls_dd03p-position = '0006'.
+ls_dd03p-ddtext = '입사일'.
+APPEND ls_dd03p TO lt_dd03p.
+
+" DDIC 함수를 사용하여 테이블 생성
+CALL FUNCTION 'DDIF_TABL_PUT'
+ EXPORTING
+ name = lv_tabname
+ dd02v_wa = ls_dd02v
+ TABLES
+ dd03p_tab = lt_dd03p
+ EXCEPTIONS
+ tabl_not_found = 1
+ name_inconsistent = 2
+ tabl_inconsistent = 3
+ put_failure = 4
+ put_refused = 5
+ OTHERS = 6.
+
+IF sy-subrc <> 0.
+ WRITE: / '테이블 생성 실패:', sy-subrc.
+ MESSAGE e001(00) WITH '테이블 생성 중 오류가 발생했습니다'.
+ELSE.
+ WRITE: / '테이블', lv_tabname, '이 성공적으로 생성되었습니다.'.
+ENDIF.
+
+" 테이블 활성화
+DATA: lv_as4local TYPE dd02l-as4local.
+
+" DDIF_TABL_ACTIVATE 함수 사용하여 테이블 활성화
+CALL FUNCTION 'DDIF_TABL_ACTIVATE'
+ EXPORTING
+ name = lv_tabname
+ auth_chk = 'X'
+ EXCEPTIONS
+ not_found = 1
+ put_failure = 2
+ OTHERS = 3.
+
+IF sy-subrc = 0.
+ WRITE: / '테이블 활성화 성공.'.
+
+ " 활성화 상태 확인 (DD02L 테이블에서 AS4LOCAL 필드 확인)
+ SELECT SINGLE as4local FROM dd02l
+ INTO lv_as4local
+ WHERE tabname = lv_tabname.
+
+ IF lv_as4local = 'A'.
+ WRITE: / '테이블이 활성 상태로 확인되었습니다.'.
+ ELSE.
+ WRITE: / '테이블 상태:', lv_as4local, '(A=활성, M=유지보수, N=신규)'.
+ ENDIF.
+ELSE.
+ WRITE: / '테이블 활성화 실패. SY-SUBRC:', sy-subrc.
+ CASE sy-subrc.
+ WHEN 1.
+ WRITE: / '오류: 테이블을 찾을 수 없습니다.'.
+ WHEN 2.
+ WRITE: / '오류: 활성화 처리 실패.'.
+ WHEN OTHERS.
+ WRITE: / '오류: 기타 오류가 발생했습니다.'.
+ ENDCASE.
+ENDIF.
+
+" 생성된 테이블 정보 확인
+CALL FUNCTION 'DDIF_TABL_GET'
+ EXPORTING
+ name = lv_tabname
+ langu = sy-langu
+ IMPORTING
+ dd02v_wa = ls_dd02v
+ TABLES
+ dd03p_tab = lt_dd03p
+ EXCEPTIONS
+ illegal_input = 1
+ OTHERS = 2.
+
+IF sy-subrc = 0.
+ WRITE: / '=== 생성된 테이블 정보 ==='.
+ WRITE: / '테이블명:', ls_dd02v-tabname.
+ WRITE: / '설명:', ls_dd02v-ddtext.
+ WRITE: / '테이블 클래스:', ls_dd02v-tabclass.
+
+ WRITE: / '=== 필드 정보 ==='.
+ LOOP AT lt_dd03p INTO ls_dd03p.
+ WRITE: / ls_dd03p-fieldname, ls_dd03p-datatype,
+ ls_dd03p-leng, ls_dd03p-ddtext.
+ ENDLOOP.
+ENDIF.
diff --git a/src/zcreatetable.prog.xml b/src/zcreatetable.prog.xml
new file mode 100644
index 0000000..a7f9220
--- /dev/null
+++ b/src/zcreatetable.prog.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ ZCREATETABLE
+ 1
+ E
+ X
+ X
+
+
+ -
+ R
+ DDIC 함수로 DB테이블 만들기
+ 18
+
+
+
+
+
diff --git a/src/zd_appli_tr01.doma.xml b/src/zd_appli_tr01.doma.xml
new file mode 100644
index 0000000..5763b13
--- /dev/null
+++ b/src/zd_appli_tr01.doma.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+ ZD_APPLI_TR01
+ E
+ CHAR
+ 000002
+ 000002
+ X
+ SAP applications
+
+
+
+ 0001
+ E
+ CO
+ Controlling
+
+
+ 0002
+ E
+ TX
+ TAX
+
+
+
+
+
diff --git a/src/ze_appli_tr01.dtel.xml b/src/ze_appli_tr01.dtel.xml
new file mode 100644
index 0000000..bbe304e
--- /dev/null
+++ b/src/ze_appli_tr01.dtel.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+ ZE_APPLI_TR01
+ E
+ ZD_APPLI_TR01
+ 05
+ 10
+ 15
+ 20
+ Application area
+ AppAr
+ Applicat.
+ ApplicationArea
+ Application area
+ E
+ D
+
+
+
+
diff --git a/src/ze_se_code_value.dtel.xml b/src/ze_se_code_value.dtel.xml
new file mode 100644
index 0000000..7cca372
--- /dev/null
+++ b/src/ze_se_code_value.dtel.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+ ZE_SE_CODE_VALUE
+ E
+ 15
+ 10
+ 15
+ 20
+ Code value
+ Code value
+ Code value
+ Code value
+ Code value
+ E
+ CHAR
+ 000012
+ 000012
+
+
+
+
diff --git a/src/zqtxt_code.dtel.xml b/src/zqtxt_code.dtel.xml
new file mode 100644
index 0000000..24b9ac9
--- /dev/null
+++ b/src/zqtxt_code.dtel.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+ ZQTXT_CODE
+ E
+ 40
+ 10
+ 15
+ 20
+ Short Text for Code
+ Short Text for Code
+ Short Text
+ Short Text
+ Short Text for Code
+ E
+ CHAR
+ 000040
+ 000040
+
+
+
+
diff --git a/src/zrfks0.tabl.xml b/src/zrfks0.tabl.xml
new file mode 100644
index 0000000..fd62abe
--- /dev/null
+++ b/src/zrfks0.tabl.xml
@@ -0,0 +1,64 @@
+
+
+
+
+
+ ZRFKS0
+ E
+ INTTAB
+ Dialog Fields for Screens from Function Group FKS0
+ 1
+
+
+
+ ERNAM
+ ERNAM
+ 0
+ E
+
+
+ ERDAT
+ ERDAT
+ 0
+ T
+ E
+
+
+ ERTIM
+ 0
+ T
+ 000012
+ TIMS
+ 000006
+ TIMS
+ Time at which the object was created
+ T
+
+
+ AENAM
+ AENAM
+ 0
+ E
+
+
+ AEDAT
+ AEDAT
+ 0
+ T
+ E
+
+
+ AETIM
+ 0
+ T
+ 000012
+ TIMS
+ 000006
+ TIMS
+ Time at Which the Object Was Last Changed
+ T
+
+
+
+
+