如何删除动态内部表的列?

2020-09-18 15:53发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我是一名Java开发人员,我在ABAP中没有任何经验。 但是在ABAP中已经为我分配了一项任务。 我需要创建一个动态内部表,该表必须包含数据库表的所有列,但是根据要求,我必须在创建后删除动态表的某些列。 问题是动态表应该与我已经完成的数据库表的所有列一起创建。 但是现在我必须删除一些列在字符串中的列。 我不知道该怎么做。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我是一名Java开发人员,我在ABAP中没有任何经验。 但是在ABAP中已经为我分配了一项任务。 我需要创建一个动态内部表,该表必须包含数据库表的所有列,但是根据要求,我必须在创建后删除动态表的某些列。 问题是动态表应该与我已经完成的数据库表的所有列一起创建。 但是现在我必须删除一些列在字符串中的列。 我不知道该怎么做。

付费偷看设置
发送
5条回答
CJones
1楼-- · 2020-09-18 16:35

好的,我最初的想法是正确的,您正在尝试过度设计解决方案。 因为它在接口中,所以数据结构无关紧要。 特定于ABAP的数据类型是不行的,因此您不妨使用CHAR1024表并将所需的结构连接到每一行。

但是,当您使用http发送数据时,通常的格式是XML或JSON。 因此,实际上是要获取所需的数据,使用应用程序执行的操作来丰富数据,然后使用简单的转换将其转换为XML或JSON的问题。 这些都是ABAP中可用的所有标准功能,建议从doco开始:

https://help.sap .com/http.svc/rc/abapdocu_752_index_htm/7.52/zh-CN/index.htm?file = abenabap_data_communication.htm

然后在这里也有很多博客,只是搜索ABAP和XML/JSON,无论您愿意使用什么。

xfwsx85
2楼-- · 2020-09-18 16:33

我的第一个想法是,您正在尝试应用Java。 解决ABAP问题。 也许您应该先解释一下您实际要完成的工作。

3楼-- · 2020-09-18 16:39

嗨,

我认为您希望显示较少的列,因此只需将它们从ALV列表中删除。

或者您可以在屏幕上选择自定义布局,您必须保留哪些列。

SAP浪
4楼-- · 2020-09-18 16:48

嗨,麦克,

我有一个Java程序,它将调用一些RFC并传递表名及其元数据信息。 在abap方面,我将使用数据库表的所有列创建一个动态表。 现在,无论我通过Java传递的是什么列,我都将这些列保留在动态表中,其余的列将删除。 之后,我将打开一个游标,并从数据库表中获取所有数据,并将其存储在动态表中,对于将要存储在动态表中的每一行,我将通过计算将这一行放入流水线缓冲区中并发送该缓冲区 通过HTTP_SEND访问Java程序。

之前,我仅使用必需的列创建了动态表,并且我的程序运行良好。 我们将其用于所有系统,例如:sap netweaver 7.5,g00等。

现在,树液添加了一些新的数据类型,例如:DF34_RAW,DF16_RAW,DF34_DEC,DF16_DEC。 netweaver 7.5仅支持这些数据类型。 现在,如果我通过使用CL_ABAP_ELEMDESCR => GET_DECFLOAT16()和CL_ABAP_ELEMDESCR => GET_DECFLOAT34()创建具有这些数据类型的动态表,则它将在netweaver 7.5系统上正常运行,但不适用于g00系统或其他系统。 因为GET_DECFLOAT16()方法不适用于g00或其他系统。

所以现在我要通过使用cl_abap_typedescr => describe_by_name(TABLENAME)创建动态表

它将数据库表的所有结构和所有列分配给动态表。 在游标中,我们有一些WHERE子句,因为该游标无法将所有列都保留在动态表中。 我们只需要保留必需的列,其余的列我必须删除。

我有要删除的列的列表,但我不知道如何删除这些列?

SKY徐
5楼-- · 2020-09-18 16:29

如果是静态表,我们可以使用新的Value构造函数 ,可能吗?

一周热门 更多>