Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

How to create a table dynamically

Former Member
0 Likes
834

Hello All,

I want to create a table dynamically in DDIC. I know that there is function module exist DB_CREATE_TABLE but i am getting some errors while using it.

Could any please post some code for it.

Regards,

Lisa

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
736

Hi,

DATA: FIELD_TAB LIKE DDFIELD OCCURS 5 WITH HEADER LINE.

FIELD_TAB-FIELDNAME = 'PROG'. "Programmname

FIELD_TAB-POSITION = 1.

FIELD_TAB-KEYFLAG = 'X'.

FIELD_TAB-DATATYPE = 'CHAR'.

FIELD_TAB-LENG = 40.

APPEND FIELD_TAB.

FIELD_TAB-FIELDNAME = 'DNUM'. "Dynpronummer

FIELD_TAB-POSITION = 2.

FIELD_TAB-KEYFLAG = 'X'.

FIELD_TAB-DATATYPE = 'CHAR'.

FIELD_TAB-LENG = 4.

APPEND FIELD_TAB.

FIELD_TAB-FIELDNAME = 'BLOCKNR'. "Blocknummer

FIELD_TAB-POSITION = 3.

FIELD_TAB-KEYFLAG = 'X'.

FIELD_TAB-DATATYPE = 'INT1'.

FIELD_TAB-LENG = 3.

APPEND FIELD_TAB.

FIELD_TAB-FIELDNAME = 'BLOCKLG'. "Blocklaenge

FIELD_TAB-POSITION = 4.

FIELD_TAB-KEYFLAG = SPACE.

FIELD_TAB-DATATYPE = 'INT2'.

FIELD_TAB-LENG = 5.

FIELD_TAB-NULLABLE = 'X'.

APPEND FIELD_TAB.

FIELD_TAB-FIELDNAME = 'BLOCK'. "Block

FIELD_TAB-POSITION = 5.

FIELD_TAB-KEYFLAG = SPACE.

FIELD_TAB-DATATYPE = 'LRAW'.

FIELD_TAB-LENG = 32768.

APPEND FIELD_TAB.

CALL FUNCTION 'DB_CREATE_TABLE'

EXPORTING

TABNAME = 'D023S'

TABLES

DDFIELDS = FIELD_TAB

EXCEPTIONS

OTHERS = 1.

CHECK SY-SUBRC = 0. "Nur im Erfolgsfall weitermachen

<REMOVED BY MODERATOR>

Edited by: Alvaro Tejada Galindo on Feb 22, 2008 4:51 PM

6 REPLIES 6
Read only

Former Member
0 Likes
736

Hi

Check the following program for its usage:

RSINFINI

Thanks

Vijay

<REMOVED BY MODERATOR>

Edited by: Alvaro Tejada Galindo on Feb 19, 2008 6:09 PM

Read only

0 Likes
736

Vijay,

How to create a dynamic table using this program.

I ran this program, but nothing happened?

Read only

0 Likes
736

Hi, P V.

I think this link can help you, please check it.[Dynamic Internal Table|https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/1011] [original link is broken] [original link is broken] [original link is broken];

Regards,

feng.

Read only

Former Member
0 Likes
737

Hi,

DATA: FIELD_TAB LIKE DDFIELD OCCURS 5 WITH HEADER LINE.

FIELD_TAB-FIELDNAME = 'PROG'. "Programmname

FIELD_TAB-POSITION = 1.

FIELD_TAB-KEYFLAG = 'X'.

FIELD_TAB-DATATYPE = 'CHAR'.

FIELD_TAB-LENG = 40.

APPEND FIELD_TAB.

FIELD_TAB-FIELDNAME = 'DNUM'. "Dynpronummer

FIELD_TAB-POSITION = 2.

FIELD_TAB-KEYFLAG = 'X'.

FIELD_TAB-DATATYPE = 'CHAR'.

FIELD_TAB-LENG = 4.

APPEND FIELD_TAB.

FIELD_TAB-FIELDNAME = 'BLOCKNR'. "Blocknummer

FIELD_TAB-POSITION = 3.

FIELD_TAB-KEYFLAG = 'X'.

FIELD_TAB-DATATYPE = 'INT1'.

FIELD_TAB-LENG = 3.

APPEND FIELD_TAB.

FIELD_TAB-FIELDNAME = 'BLOCKLG'. "Blocklaenge

FIELD_TAB-POSITION = 4.

FIELD_TAB-KEYFLAG = SPACE.

FIELD_TAB-DATATYPE = 'INT2'.

FIELD_TAB-LENG = 5.

FIELD_TAB-NULLABLE = 'X'.

APPEND FIELD_TAB.

FIELD_TAB-FIELDNAME = 'BLOCK'. "Block

FIELD_TAB-POSITION = 5.

FIELD_TAB-KEYFLAG = SPACE.

FIELD_TAB-DATATYPE = 'LRAW'.

FIELD_TAB-LENG = 32768.

APPEND FIELD_TAB.

CALL FUNCTION 'DB_CREATE_TABLE'

EXPORTING

TABNAME = 'D023S'

TABLES

DDFIELDS = FIELD_TAB

EXCEPTIONS

OTHERS = 1.

CHECK SY-SUBRC = 0. "Nur im Erfolgsfall weitermachen

<REMOVED BY MODERATOR>

Edited by: Alvaro Tejada Galindo on Feb 22, 2008 4:51 PM

Read only

Former Member
0 Likes
736

Here is the code i have writen my self.

PARAMETERS: tabname TYPE dd02l-tabname,

fldname TYPE dd03p-fieldname,

rollname TYPE dd03p-rollname.

DATA: gt_cl_bc_dyn TYPE REF TO zcl_bc_dyn,

status TYPE sy-subrc.

data: lct_table type ZTT_ZTSITAB.

INITIALIZATION.

tabname = 'ZTEST1'.

CREATE OBJECT gt_cl_bc_dyn.

START-OF-SELECTION.

CALL METHOD gt_cl_bc_dyn->create_table

EXPORTING

tabname = tabname

fieldname = fldname

rollname = rollname

itab = lct_table

IMPORTING

status = status .

IF status = 0.

WRITE: 'Table creation is successful'.

ELSE.

WRITE: 'Table creation is unsuccessful'.

ENDIF.

Code in the method

METHOD create_table.

DATA: ls_dd02v_wa TYPE dd02v,

ls_dd09l_wa TYPE dd09l,

ls_dd03p TYPE dd03p,

lt_dd03p TYPE TABLE OF dd03p,

rc TYPE sy-subrc.

ls_dd02v_wa-tabname = tabname.

ls_dd02v_wa-tabclass = 'TRANSP'.

ls_dd02v_wa-contflag = 'A'.

ls_dd09l_wa-tabname = tabname.

ls_dd09l_wa-tabkat = '0'.

ls_dd09l_wa-tabart = 'APPL0'.

ls_dd03p-tabname = tabname.

ls_dd03p-fieldname = fieldname.

ls_dd03p-position = '0001'.

ls_dd03p-keyflag = 'X'.

ls_dd03p-rollname = rollname.

APPEND ls_dd03p TO lt_dd03p.

CALL FUNCTION 'DDIF_TABL_PUT'

EXPORTING

name = tabname

dd02v_wa = ls_dd02v_wa

dd09l_wa = ls_dd09l_wa

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.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

CALL FUNCTION 'DDIF_TABL_ACTIVATE'

EXPORTING

name = tabname

IMPORTING

rc = rc

EXCEPTIONS

not_found = 1

put_failure = 2

OTHERS = 3

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

status = rc.

ENDMETHOD.

Read only

0 Likes
736

Hi Lisa,

What is zcl_bc_dyn object?