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

2020-08-22 23:11发布

         点击此处--->   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语句有时会返回不同的值。

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

我该如何解决?

         点击此处--->   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条回答
四川大学会员
1楼 · 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的可能性?

太Q了
2楼-- · 2020-08-22 23:46

您好,

如果使用EXPORT导出数据以共享内存...则 整个内部会话都可以看到它。 如果跨用户登录可见。

如果数据是使用EXPORT ... TO DATABASE ...导出的,则它是"持久"的,任何时间,任何内部会话,任何用户都可以使用。

如果 数据将使用EXPORT ... TO MEMORY ...语法导出,然后仅在同一内部会话(基本上在程序的调用堆栈中)内可见。

进一步数据集群

小熊yu生菜
3楼-- · 2020-08-22 23:55

格伦·安东尼," TO MEMORY ID"将解决您的问题。 你能实现这个吗? 如果没有,请告诉我们原因。

一周热门 更多>