Created by Jerry Wang on Feb 20, 2014
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:
run the report and the table is generated successfully and could be found in SE11:
要获取更多Jerry的原创文章,请关注公众号"汪子熙":
相关推荐
在SAP ABAP环境中,使用SE11事务代码进行数据库表的创建是常见的数据库管理任务。下面是通过SE11创建自定义表的详细步骤,这些步骤由河南心创明天科技有限公司的专业顾问李彪提供。 首先,打开SAP系统并输入事务...
通过上述示例代码可以看出,利用ABAP编程语言可以在SAP系统中有效地管理透明表数据。需要注意的是,在实际应用中应谨慎处理批量操作,尤其是删除操作,以避免意外损失数据。此外,还可以通过增强错误处理机制来...
- **减少透明表索引数量**:避免为透明表创建过多的索引。 - **减少特定条件使用**:在WHERE条件中尽量减少使用、>、<、&like%等条件。 ##### 6. 使用BINARY SEARCH - **优化循环中的表读取**:在循环中使用`READ ...
- 透明表:这是最常见的一种数据表类型,数据直接映射到数据库表,可以使用SQL语句进行操作。 - 内部表:这是一种在内存中操作的数据结构,不直接对应数据库表,但可以与透明表进行交互。 - 查找表:用于提供固定...
- 在ABAP Development Workbench中,你可以使用SE11事务代码来维护透明表视图,SE16N用于结构化表视图。 - 这些工具允许你查看、编辑、删除和创建表视图,以及更新其字段和索引。 4. **使用表视图** - ABAP程序...
如果内表是透明表的行类型,可以直接插入记录;如果是结构类型的内表,需要先用`DESCRIBE TABLE`获取结构信息,然后通过`FIELD-SYMBOLS`来填充数据。 4. **填充内表**:使用`FIELD-SYMBOLS`来动态定义字段并赋值,...
透明表的数据存储方式与数据库表相同,因此,当创建透明表时,系统会自动在数据库中创建对应的物理表。透明表的主要特点是数据直接存储在数据库中,并且可以被外部应用程序访问。 ### 二、报告ZTABLEFIND代码分析 ...
ABAP字典实现了透明表的概念,使得开发者在ABAP层面上操作的表与底层数据库类型无关,提高了程序的移植性和可维护性。 在实际学习过程中,本教程会从基础篇开始,逐步讲解ABAP的基础知识,包括ABAP的定义、开发环境...
8. 与ABAP代码的交互:ABAP字典中的对象可以直接在ABAP源代码中引用,通过DDL语句(Data Definition Language)进行创建和修改,或者通过ABAP字典工具进行图形化操作。 9. 数据一致性:ABAP字典确保了数据库表和...
手册会讲解如何创建、填充和操作内部表,以及使用不同类型如透明表、结构化表和索引表。 3. **选择屏幕和输入帮助**:在SAP系统中,用户界面是关键部分。这章可能会讲述如何定义和使用选择屏幕来收集用户输入,以及...
在给定的代码片段中,“REPORT ZFI002”指示这是一个名为ZFI002的ABAP报告程序,由DAJUN.XU创建于2011年7月5日,旨在实现ALV(Application List Viewer)和Smartforms的功能,用于展示损益表的数据。ALV是SAP的一个...
同时,学习如何处理透明表(Transparent Tables)、视图(Views)和结构体(Structures)。 7. **程序间通信**:学习如何通过CALL FUNCTION或调用其他REPORT和CLASS实现模块间的通信。 8. **异常处理**:理解并...
- 可以为表定义各种属性,比如透明表或内部表等。 2. **定义结构**: - 同样在SE11中,选择“创建结构”,输入结构名称,并定义其包含的字段。 - 结构主要用于定义复杂数据类型,可以被用作表的列或变量的类型。...
你将学习如何创建、填充、遍历和操作内部表,以及使用不同类型如透明表、结构化表和索引表。 3. **选择屏幕和对话模块**:在SAP中,用户与系统的交互是通过选择屏幕和对话模块实现的。这部分将教授如何定义和处理...
2. **内部表**:ABAP中的内部表类似于其他语言中的数组,是处理大量数据的主要工具。它们可以动态调整大小,支持各种操作,如遍历、筛选、合并等。 3. **选择屏幕**:ABAP允许开发者创建自定义的选择屏幕,用户可以...
2. **内部表处理**:内部表是ABAP中处理数据的重要工具,学习如何创建、操作和遍历内部表,以及如何使用不同类型(如透明表、结构表、行集等)的内部表。 3. **数据库交互**:了解ABAP如何与数据库进行交互,包括...
- **透明表与内表的区别**:透明表是ABAP中用于数据库存储的数据结构,与数据库表直接对应;而内表则是在内存中存储数据的集合,用于程序中的数据处理。`DATA myvar TYPE dbtab.`定义了一个与透明表`dbtab`结构相同...
5. 在报表开发步骤中,把所需要的字段拖到字段组01抬头:物料管理双击字段可看到字段名,用来核对是不是透明表中的相应字段。保存,退出,跳出如下窗口:点击“是”。 6. 在报表开发步骤中,点击用户组分配,选择...
11. **单元测试**:理解单元测试的重要性,并学习如何使用ABAP Unit进行单元测试,确保代码的质量和可靠性。 12. **ABAP Objects**:虽然BC400主要关注基础,但也会涉及ABAP Objects的基本概念,如类、接口、继承和...
外部表(透明表)是数据库中的表,需要使用SQL语句进行操作。 14. **报表参数**:允许用户在运行时输入参数,通过`PARAMETERS`语句定义参数。 15. **动态编程**:允许在运行时生成和执行代码,这在处理不确定数据...