ABAP导出到数据库/内存区域

2020-08-22 23:11发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我有一个带有选择屏幕的程序,该屏...

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

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


我有一个带有选择屏幕的程序,该屏幕带有一个" run_type"字段。

程序执行后,我将" run_type"保存到内存中,即

将run_type从lv_run_type导出到数据库indx(zw)ID'RUN_TYPE'。

该程序的输出是alv网格,其中包含一个用于"预订"的按钮。 单击此按钮后,将触发一个事件,在这个事件中,我有:

从数据库indx(zw)id" RUN_TYPE"导入run_type到lv_run_type。

但是,这似乎不起作用。 例如,当选择" run_type"," abc"并单击alv中的按钮时,import语句有时会返回不同的值。

我认为这是因为其他人也在同时执行该程序,因此数据库字段被另一个值填充了。

我该如何解决?

3条回答
四川大学会员
2020-08-22 23:56 .采纳回答

如果我对您的理解正确,那么您将在一个会话中做所有事情:1)执行程序,2)显示ALV,3)按下"预订"按钮。

而不是" TO DATABASE" ,您还可以使用" MEMORY ID",该ID仅在当前会话中可见:

 EXPORT run_type从lv_run_type到内存ID lv_memory_id。
 
从内存ID lv_memory_id导入run_type到lv_run_type。
 

因此可以从所有其他会话访问数据库,并且其他会话将覆盖您的值,也就是说,如果您不更仔细地处理指定的索引以避免这种情况。
请让您也熟悉有关导出语句的ABAP文档。

但是,除了将其导出到内存或数据库外,我会在程序中寻找其他解决方案并在其中创建全局变量, 这样,您不仅可以限制对当前会话的访问,还可以限制对相关程序的访问。

除非我仍然不明白为什么您必须选择ABAP Tools导出/导入。

# p#

您是否检查了使用SHMA的可能性?

一周热门 更多>