ABAP创建透明表详解编程语言

REPORT ztest_create_table
.


PARAMETERS
tabname 
TYPE char32 OBLIGATORY
.


DATA
lt_new_object         
TYPE comt_gox_def_header
,

      lt_old_object         
LIKE lt_new_object
,

      lv_dbtab1_name        
TYPE char32
,

      ls_new_object         
LIKE 
LINE 
OF lt_new_object
,

      ls_new_object_details 
TYPE 
LINE 
OF comt_gox_table_entry_fields
,

      lt_returntab          
TYPE bapirettab
,

      ls_return             
LIKE 
LINE 
OF lt_returntab
.

ls_new_object
object_type 

‘TABLE’
.

ls_new_object
object_name 
tabname
.

*TRY.


*    data(lv_guid) = cl_system_uuid=>if_system_uuid_static~create_uuid_c32( ).


*  CATCH cx_uuid_error .


*ENDTRY.

DATA
:lv_guid 
TYPE sysuuid_c32
.


DATA
:lv_parent_guid 
TYPE comt_gox_key_guid
.


TRY
.

    
CALL 
METHOD cl_system_uuid
=>if_system_uuid_static
~create_uuid_c32

      RECEIVING

        uuid 
lv_guid
.

  
CATCH cx_uuid_error 
.


ENDTRY
.


* technical setting

ls_new_object
key_guid 
lv_guid
.

lv_parent_guid 
ls_new_object
key_guid
.

ls_new_object_details
fieldname 

‘TABCLASS’
.

ls_new_object_details
fieldvalue 

‘TRANSP’
.


APPEND ls_new_object_details 
TO ls_new_object
details
.


CLEAR ls_new_object_details
.

ls_new_object_details
fieldname 

‘TABKAT’
.

ls_new_object_details
fieldvalue 

‘0’
.


APPEND ls_new_object_details 
TO ls_new_object
details
.


CLEAR ls_new_object_details
.

ls_new_object_details
fieldname 

‘TABART’
.

ls_new_object_details
fieldvalue 

‘APPL2’
.


APPEND ls_new_object_details 
TO ls_new_object
details
.


CLEAR ls_new_object_details
.

ls_new_object_details
fieldname 

‘PUFFERUNG’
.

ls_new_object_details
fieldvalue 

‘X’
.


APPEND ls_new_object_details 
TO ls_new_object
details
.


CLEAR ls_new_object_details
.

ls_new_object_details
fieldname 

‘CONTFLAG’
.

ls_new_object_details
fieldvalue 

‘S’
.


APPEND ls_new_object_details 
TO ls_new_object
details
.


CLEAR ls_new_object_details
.

ls_new_object_details
fieldname 

‘MAINFLAG’
.

ls_new_object_details
fieldvalue 

‘X’
.


APPEND ls_new_object_details 
TO ls_new_object
details
.


CLEAR ls_new_object_details
.

ls_new_object_details
fieldname 

‘BUFFALLOW’
.

ls_new_object_details
fieldvalue 

‘X’
.


APPEND ls_new_object_details 
TO ls_new_object
details
.


CLEAR ls_new_object_details
.

ls_new_object_details
fieldname 

‘SCHFELDANZ’
.

ls_new_object_details
fieldvalue 

‘0’
.


APPEND ls_new_object_details 
TO ls_new_object
details
.


CLEAR ls_new_object_details
.


APPEND ls_new_object 
TO lt_new_object
.


CLEAR ls_new_object
.

ls_new_object
object_type 

‘TABLE_FIELD’
.


TRY
.

    lv_guid 
cl_system_uuid
=>if_system_uuid_static
~create_uuid_c32
(

           
)
.

  
CATCH cx_uuid_error 
.


ENDTRY
.

ls_new_object
key_guid 
lv_guid
.

ls_new_object
parent_key 
lv_parent_guid
.

lv_parent_guid 
lv_guid
.

ls_new_object
object_name 

‘CODE_VALUE’

“field name

ls_new_object_details
fieldname 

‘POSITION’
.

ls_new_object_details
fieldvalue 

‘1’
.


APPEND ls_new_object_details 
TO ls_new_object
details
.


CLEAR ls_new_object_details
.

ls_new_object_details
fieldname 

‘KEYFLAG’

“Key

ls_new_object_details
fieldvalue 

‘X’
.


APPEND ls_new_object_details 
TO ls_new_object
details
.


CLEAR ls_new_object_details
.

ls_new_object_details
fieldname 

‘NOTNULL’

“initial

ls_new_object_details
fieldvalue 

‘X’
.


APPEND ls_new_object_details 
TO ls_new_object
details
.


CLEAR ls_new_object_details
.

ls_new_object_details
fieldname 

‘ROLLNAME’
.

ls_new_object_details
fieldvalue 

‘COMT_PRODUCT_ID’

“data element


APPEND ls_new_object_details 
TO ls_new_object
details
.


CLEAR ls_new_object_details
.


APPEND ls_new_object 
TO lt_new_object
.


CLEAR ls_new_object
.


REFRESH lt_returntab
.


CLEAR lv_parent_guid
.

lv_dbtab1_name 
tabname
.


CALL 
FUNCTION 
‘GOX_GEN_TABLE_STD’

  
EXPORTING

    iv_object_name 
lv_dbtab1_name

    it_object_new  
lt_new_object

    it_object_old  
lt_old_object

    iv_devclass    

‘$TMP’  
“local

  
IMPORTING

    et_bapireturn  
lt_returntab
.

CHECK lt_returntab 
IS 
INITIAL
.

DATA
lv_ddobjname 
TYPE ddobjname
,

      ls_dd02v     
TYPE dd02v
.

lv_ddobjname 
lv_dbtab1_name
.


CALL 
FUNCTION 
‘DDIF_TABL_GET’

  
EXPORTING

    name          
lv_ddobjname

    state         

‘A’

    langu         
sy
langu

  
IMPORTING

    dd02v_wa      
ls_dd02v

  
EXCEPTIONS

    illegal_input 

1

    
OTHERS        

2
.


IF sy
subrc <> 
0
.

  
RETURN
.


ENDIF
.

ls_dd02v
mainflag 

‘X’
.


CALL 
FUNCTION 
‘DDIF_TABL_PUT’

  
EXPORTING

    name              
lv_ddobjname

    dd02v_wa          
ls_dd02v

  
EXCEPTIONS

    tabl_not_found    

1

    name_inconsistent 

2

    tabl_inconsistent 

3

    put_failure       

4

    put_refused       

5

    
OTHERS            

6
.


IF sy
subrc <> 
0
.

  
RETURN
.


ENDIF
.


* active table


CALL 
FUNCTION 
‘DDIF_TABL_ACTIVATE’

  
EXPORTING

    name     
lv_ddobjname

    auth_chk 

‘ ‘
.

CHECK sy
subrc 

0
.

WRITE
:
‘Table: ‘
lv_ddobjname

‘ generated successfully’
.

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/20108.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论