防止用户使用数据切片锁定数据

2020-08-24 18:52发布

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

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


您好,我执行了一项计划功能(类型为Customer Exit),该功能正在计算单个年份的所有组合。 当前,我遇到的问题是,一旦一个用户打开了数据输入查询,我就无法执行该功能。 因此,我基于出口类(锁定对象=会计年度)声明了一个数据切片。 在此退出类中,我要求输入用户名,如果不是" CENTRAL"用户,则将组合无效。 ->效果很好,仅在显示模式下显示数据。

但是锁服务器为仅显示内容的用户(由于数据切片)包含了一个锁条目,因此,我的计划功能无法运行,因此将用户赶出了系统。

有人可以给我一个提示,如何解决这个问题?

谢谢

Dieter

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

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


您好,我执行了一项计划功能(类型为Customer Exit),该功能正在计算单个年份的所有组合。 当前,我遇到的问题是,一旦一个用户打开了数据输入查询,我就无法执行该功能。 因此,我基于出口类(锁定对象=会计年度)声明了一个数据切片。 在此退出类中,我要求输入用户名,如果不是" CENTRAL"用户,则将组合无效。 ->效果很好,仅在显示模式下显示数据。

但是锁服务器为仅显示内容的用户(由于数据切片)包含了一个锁条目,因此,我的计划功能无法运行,因此将用户赶出了系统。

有人可以给我一个提示,如何解决这个问题?

谢谢

Dieter

付费偷看设置
发送
4条回答
SC_Yao
1楼-- · 2020-08-24 19:22

您好Dieter,

查询是否设置锁定取决于查询是在更改模式下启动还是在显示模式下启动。 数据片对事务数据锁没有影响。

您的情况似乎是要比其他功能(例如人工计划)处理优先级更高的计划功能。 不幸的是,当其他用户仍在锁定数据时,没有办法(干净的)方法来运行更高优先级的功能。 但是使用主锁的概念,您可以确保没有其他用户可以锁定计划序列的一部分,即可以确保其他用户锁定数据不会停止该序列。

更多信息可在文档中找到:

http://help.sap.com/saphelp_nw70ehp1/ helpdata/zh-CN/45/946677f8fb0cf2e10000000a114a6b/frameset.htm

(主锁的部分功能)和

http://help.sap.com/saphelp_nw70ehp1/ helpdata/zh-CN/48/11fa9af97b4aa5e10000000a421937/frameset.htm

和RSPLSE最后一个标签中的信息按钮。

此致

格雷戈尔

骆驼绵羊
2楼-- · 2020-08-24 19:30

你好格雷戈尔,

我在HANA的BW中发现了相同的行为。 7.5。 我的意思是,即使数据切片正在运行并且用户无法更改数据,但我仍在InfoProvider上看到sm12和rsplse中的锁定。 有关于此的SAP文档吗?

落灬小鱼
3楼-- · 2020-08-24 19:15

嗨Lukasz,

我已经提到过,交易数据锁是基于查询或计划功能中使用的静态过滤器设置的 ; 数据片对事务数据锁没有影响,因为它们被视为可以在任何时间点更改的"当前设置"。 结果,很难根据数据切片来设置和调整锁定的数据区域,因为后者可能在运行时发生变化。

此处介绍了锁定概念

https://help.sap.com/viewer/0ecf5244825c4742a7b062a89d11c2ac/ zh-cn/4cb847b254182102e10000000a42189e.html

您提到"财政年度"是一个特征,可以控制是否允许普通用户与管理员进行计划; 因此您可以使用具有特定于用户的替换项的变量:对于普通用户,您不使用"锁定"值,因此这些用户不会设置任何包含该值的锁定(但不要使用会锁定的" *" 一年)。 这是一些努力,对于用户来说,查看错误年份的数据或根本没有数据将是不好的。

另一种选择是在CONSTRUCTOR的CONSTRUCTOR中引发异常CX_RSPLS_FAILED(仅适用于普通用户)。 您的出口数据切片; 这将触发技术错误,查询将在运行时设置为显示模式,计划功能不应运行。 不幸的是,该错误消息不会为最终用户包含"不错"的消息。 您可以尝试在OLAP消息处理程序中添加一条消息:功能模块RRMS_MESSAGE_HANDLING。

问候,

Gregor

Aaron 3364
4楼-- · 2020-08-24 19:32

Hi Dieter,

除了让用户在运行该功能之前离开计划而保存数据或不保存数据之外,没有其他解决方案。

我通常要做的是显示用户列表,即 当前正在锁定数据,想要开始序列的用户需要知道他/她必须首先联系这些用户以使他们离开查询。

亲切的问候

Cornelia

一周热门 更多>