04-28-2012 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.
04-30-2012 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.
04-30-2012 7:55 AM
04-30-2012 8:03 AM
04-30-2012 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
04-30-2012 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.
04-27-2016 5:03 PM