使用ABAP代码创建SAP Netweaver透明表(transparent table)

简介: 使用ABAP代码创建SAP Netweaver透明表(transparent table)

Report source code could be found below:

REPORT ztable.

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.

ls_new_object-key_guid = lv_guid.

DATA(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'.

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'.

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'.

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'.

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'

 IMPORTING

   et_bapireturn  = lt_returntab.

CHECK lt_returntab IS NOT 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.

CALL FUNCTION 'DDIF_TABL_ACTIVATE'

 EXPORTING

   name     = lv_ddobjname

   auth_chk = ' '.

CHECK sy-subrc = 0.

WRITE:/ 'Table: ', lv_ddobjname, ' generated successfully'.

specify the table name:

image.png

run the report and the table is generated successfully and could be found in SE11:

image.png

相关文章
|
2月前
|
Linux C++ Windows
【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数
【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数
【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数
|
5月前
|
存储 安全 数据库
什么是 SAP ABAP 数据库表的 Display Maintenance Allowed with Restrictions
什么是 SAP ABAP 数据库表的 Display Maintenance Allowed with Restrictions
|
5月前
|
安全 API 数据库
SAP ABAP OData 中 Function import 的概念介绍
SAP ABAP OData 中 Function import 的概念介绍
|
5月前
|
SQL 负载均衡 监控
SAP ABAP DBSQL_SQL_ERROR 错误
SAP ABAP DBSQL_SQL_ERROR 错误
|
5月前
|
前端开发 数据库 开发者
如何在 SEGW 事务码里为 SAP ABAP OData 服务实现 Function Import 试读版
如何在 SEGW 事务码里为 SAP ABAP OData 服务实现 Function Import 试读版
SAP ABAP OData 服务里需要指定 guid 类型的请求参数时,正确语法是什么?
SAP ABAP OData 服务里需要指定 guid 类型的请求参数时,正确语法是什么?
|
5月前
|
SQL 监控 Oracle
SAP ABAP 系统错误 Return value of the database layer SQL dbsl rc 99
SAP ABAP 系统错误 Return value of the database layer SQL dbsl rc 99
|
5月前
|
存储 前端开发 Linux
在 SAP ABAP 系统里访问 FTP 服务器
在 SAP ABAP 系统里访问 FTP 服务器
|
5月前
|
前端开发 搜索推荐 开发者
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
|
5月前
|
JavaScript 前端开发 开发者
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
下一篇
无影云桌面