‎2012 Apr 28 12:06 PM
Hi,
Plz tell me how to create a database table using function module DB_CREATE_TABLE in ABAP Editor.
I was tried it but raise an exception "PROGRAM_NOT_GENERATED".
Plz if you have any solution share with me.
‎2012 Apr 30 10:36 AM
Hi,
Use the below 2 FM:
1) DDIF_TABL_PUT - Create New Transparent Table.
2) DDIF_TABL_ACTIVATE - To active the table.
While using DDIF_TABL_PUT
DATA:
lt_fields TYPE TABLE OF dd03p,
wa_field TYPE dd03p,
table_header TYPE dd02v,
techn_set TYPE dd09v.
table_header-tabname = p_tabnam.
table_header-ddtext = p_tabtxt.
table_header-ddlanguage = sy-langu.
table_header-tabclass = 'TRANSP'.
table_header-as4user = sy-uname.
table_header-contflag = 'A'.
table_header-mainflag = 'X'.
techn_set-tabname = p_tabnam.
techn_set-tabkat = 0.
techn_set-tabart = 'APPL1'.
techn_set-bufallow = 'X'.
techn_set-pufferung = 'X'.
wa_field-tabname = p_tabnam.
wa_field-ddlanguage = sy-langu.
wa_field-notnull = 'X'.
wa_field-keyflag = 'X'.
wa_field-fieldname = 'ID'.
wa_field-position = position.
wa_field-rollname = 'CHAR10'.
APPEND wa_field TO lt_fields.
CALL FUNCTION 'DDIF_TABL_PUT'
EXPORTING
name = 'Table Name'
dd02v_wa = table_header
dd09l_wa = techn_set
TABLES
dd03p_tab = lt_fields " Table fields
EXCEPTIONS
tabl_not_found = 1
name_inconsistent = 2
tabl_inconsistent = 3
put_failure = 4
put_refused = 5
OTHERS = 6.
IF sy-subrc = 0.
WRITE: /, 'Table Created'.
ELSE.
WRITE: /, 'Error occurred'.
ENDIF.
*Activating the Table
CALL FUNCTION 'DDIF_TABL_ACTIVATE'
EXPORTING
name = 'Table Name'
* IMPORTING
* RC =
EXCEPTIONS
not_found = 1
put_failure = 2
OTHERS = 3.
IF sy-subrc <> 0.
WRITE: /, 'Table could not be activated.'.
RETURN.
ELSE.
WRITE: /, 'Table has been activated.'.
ENDIF.
Example Code:
DATA:
LT_FIELDS TYPE TABLE OF DD03P,
WA_FIELD TYPE DD03P,
TABLE_HEADER TYPE DD02V,
TECHN_SET TYPE DD09V.
TABLE_HEADER-TABNAME = 'ZMARA1'.
TABLE_HEADER-DDTEXT = 'ZMARA1 TABLE'.
TABLE_HEADER-DDLANGUAGE = SY-LANGU.
TABLE_HEADER-TABCLASS = 'TRANSP'.
TABLE_HEADER-AS4USER = SY-UNAME.
TABLE_HEADER-CONTFLAG = 'A'.
TABLE_HEADER-MAINFLAG = 'X'.
TECHN_SET-TABNAME = 'ZMARA1'.
TECHN_SET-TABKAT = 0.
TECHN_SET-TABART = 'APPL1'.
TECHN_SET-BUFALLOW = 'X'.
TECHN_SET-PUFFERUNG = 'X'.
WA_FIELD-TABNAME = 'ZMARA1'.
WA_FIELD-DDLANGUAGE = SY-LANGU.
WA_FIELD-NOTNULL = 'X'.
WA_FIELD-KEYFLAG = 'X'.
WA_FIELD-FIELDNAME = 'ID'.
WA_FIELD-POSITION = '1'.
WA_FIELD-ROLLNAME = 'CHAR10'.
APPEND WA_FIELD TO LT_FIELDS.
CALL FUNCTION 'DDIF_TABL_PUT'
EXPORTING
NAME = 'ZMARA1'
DD02V_WA = TABLE_HEADER
DD09L_WA = TECHN_SET
TABLES
DD03P_TAB = LT_FIELDS " Table fields
EXCEPTIONS
TABL_NOT_FOUND = 1
NAME_INCONSISTENT = 2
TABL_INCONSISTENT = 3
PUT_FAILURE = 4
PUT_REFUSED = 5
OTHERS = 6.
IF SY-SUBRC = 0.
WRITE: /, 'Table Created'.
ELSE.
WRITE: /, 'Error occurred'.
ENDIF.
*Activating the Table
CALL FUNCTION 'DDIF_TABL_ACTIVATE'
EXPORTING
NAME = 'ZMARA1'
* IMPORTING
* RC =
EXCEPTIONS
NOT_FOUND = 1
PUT_FAILURE = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
WRITE: /, 'Table could not be activated.'.
RETURN.
ELSE.
WRITE: /, 'Table has been activated.'.
ENDIF.
I believe this will solve your problem...
Regads,
Rajesh Sadula.
‎2012 Apr 30 7:55 AM
‎2012 Apr 30 8:03 AM
‎2012 Apr 30 9:45 AM
Hi,
Table is created using DB_CREATE_TABLE. it is display in Tcode DB02 but not display in ABAP Dictionary ie SE11.
Please tell me how to do this and how to activate it from ABAP editor or SE38.
Thanks
‎2012 Apr 30 10:36 AM
Hi,
Use the below 2 FM:
1) DDIF_TABL_PUT - Create New Transparent Table.
2) DDIF_TABL_ACTIVATE - To active the table.
While using DDIF_TABL_PUT
DATA:
lt_fields TYPE TABLE OF dd03p,
wa_field TYPE dd03p,
table_header TYPE dd02v,
techn_set TYPE dd09v.
table_header-tabname = p_tabnam.
table_header-ddtext = p_tabtxt.
table_header-ddlanguage = sy-langu.
table_header-tabclass = 'TRANSP'.
table_header-as4user = sy-uname.
table_header-contflag = 'A'.
table_header-mainflag = 'X'.
techn_set-tabname = p_tabnam.
techn_set-tabkat = 0.
techn_set-tabart = 'APPL1'.
techn_set-bufallow = 'X'.
techn_set-pufferung = 'X'.
wa_field-tabname = p_tabnam.
wa_field-ddlanguage = sy-langu.
wa_field-notnull = 'X'.
wa_field-keyflag = 'X'.
wa_field-fieldname = 'ID'.
wa_field-position = position.
wa_field-rollname = 'CHAR10'.
APPEND wa_field TO lt_fields.
CALL FUNCTION 'DDIF_TABL_PUT'
EXPORTING
name = 'Table Name'
dd02v_wa = table_header
dd09l_wa = techn_set
TABLES
dd03p_tab = lt_fields " Table fields
EXCEPTIONS
tabl_not_found = 1
name_inconsistent = 2
tabl_inconsistent = 3
put_failure = 4
put_refused = 5
OTHERS = 6.
IF sy-subrc = 0.
WRITE: /, 'Table Created'.
ELSE.
WRITE: /, 'Error occurred'.
ENDIF.
*Activating the Table
CALL FUNCTION 'DDIF_TABL_ACTIVATE'
EXPORTING
name = 'Table Name'
* IMPORTING
* RC =
EXCEPTIONS
not_found = 1
put_failure = 2
OTHERS = 3.
IF sy-subrc <> 0.
WRITE: /, 'Table could not be activated.'.
RETURN.
ELSE.
WRITE: /, 'Table has been activated.'.
ENDIF.
Example Code:
DATA:
LT_FIELDS TYPE TABLE OF DD03P,
WA_FIELD TYPE DD03P,
TABLE_HEADER TYPE DD02V,
TECHN_SET TYPE DD09V.
TABLE_HEADER-TABNAME = 'ZMARA1'.
TABLE_HEADER-DDTEXT = 'ZMARA1 TABLE'.
TABLE_HEADER-DDLANGUAGE = SY-LANGU.
TABLE_HEADER-TABCLASS = 'TRANSP'.
TABLE_HEADER-AS4USER = SY-UNAME.
TABLE_HEADER-CONTFLAG = 'A'.
TABLE_HEADER-MAINFLAG = 'X'.
TECHN_SET-TABNAME = 'ZMARA1'.
TECHN_SET-TABKAT = 0.
TECHN_SET-TABART = 'APPL1'.
TECHN_SET-BUFALLOW = 'X'.
TECHN_SET-PUFFERUNG = 'X'.
WA_FIELD-TABNAME = 'ZMARA1'.
WA_FIELD-DDLANGUAGE = SY-LANGU.
WA_FIELD-NOTNULL = 'X'.
WA_FIELD-KEYFLAG = 'X'.
WA_FIELD-FIELDNAME = 'ID'.
WA_FIELD-POSITION = '1'.
WA_FIELD-ROLLNAME = 'CHAR10'.
APPEND WA_FIELD TO LT_FIELDS.
CALL FUNCTION 'DDIF_TABL_PUT'
EXPORTING
NAME = 'ZMARA1'
DD02V_WA = TABLE_HEADER
DD09L_WA = TECHN_SET
TABLES
DD03P_TAB = LT_FIELDS " Table fields
EXCEPTIONS
TABL_NOT_FOUND = 1
NAME_INCONSISTENT = 2
TABL_INCONSISTENT = 3
PUT_FAILURE = 4
PUT_REFUSED = 5
OTHERS = 6.
IF SY-SUBRC = 0.
WRITE: /, 'Table Created'.
ELSE.
WRITE: /, 'Error occurred'.
ENDIF.
*Activating the Table
CALL FUNCTION 'DDIF_TABL_ACTIVATE'
EXPORTING
NAME = 'ZMARA1'
* IMPORTING
* RC =
EXCEPTIONS
NOT_FOUND = 1
PUT_FAILURE = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
WRITE: /, 'Table could not be activated.'.
RETURN.
ELSE.
WRITE: /, 'Table has been activated.'.
ENDIF.
I believe this will solve your problem...
Regads,
Rajesh Sadula.
‎2016 Apr 27 5:03 PM