BPC嵌入式AMDP读取源数据最佳实践

2020-08-16 17:41发布

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

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


大家好,

我想了解有关AMDP读取源数据最佳实践的更多信息-无论是通过i_view还是参考表。 这是一个示例和对实际案例的怀疑:

假设我正在为收入=价格x数量编写一个非常基本的AMDP代码。 假设价格和数量以不同的输入形式计划,并且用户单击单独报告中的计算按钮(确切的情况是相似的,但不相同)。 在这种情况下,如果我们到达要计算的源数据,换言之,如果我们通过i_view(通过计划过滤器)到达了价格和数量数据,那么在输入之后同时打开价格输入表单的情况下,用户将无法运行按钮 表单将锁定它,并且计划功能将无法访问数据,并且计算将引发错误。

但是,在计划过滤器时,如果我仅给出目标数据(收益数据),并且AMDP开发人员通过AMDP代码中的参考表(聚合级别)到达价格和数量数据(请参见下面的此屏幕截图),则不会 抛出锁定错误。 请参阅文档和屏幕截图,以了解我指的是参考汇总级别。

https://archive.sap.com/documents/docs/DOC-53376

我的问题是:最佳实践是什么? 如果我不希望用户遇到锁定问题(尽管它是自BI-IP以来由SAP专门开发的),我可以使用引用表而不是i_view来获取源数据,但是我将面对以下内容中的任何一个 未来:

1-即使我在参考聚合级别中正确过滤了数据,但以后会遇到任何性能问题-假设2年

2-由于我们将全部数据提取到引用表中并且不基于授权变量应用任何过滤,因此用户是否会遇到授权问题

3-因为我们要打破BPC Embedded的锁定机制,我们会面对任何数据不一致的情况吗?

谢谢您的帮助。

(168.3 kB)

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

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


大家好,

我想了解有关AMDP读取源数据最佳实践的更多信息-无论是通过i_view还是参考表。 这是一个示例和对实际案例的怀疑:

假设我正在为收入=价格x数量编写一个非常基本的AMDP代码。 假设价格和数量以不同的输入形式计划,并且用户单击单独报告中的计算按钮(确切的情况是相似的,但不相同)。 在这种情况下,如果我们到达要计算的源数据,换言之,如果我们通过i_view(通过计划过滤器)到达了价格和数量数据,那么在输入之后同时打开价格输入表单的情况下,用户将无法运行按钮 表单将锁定它,并且计划功能将无法访问数据,并且计算将引发错误。

但是,在计划过滤器时,如果我仅给出目标数据(收益数据),并且AMDP开发人员通过AMDP代码中的参考表(聚合级别)到达价格和数量数据(请参见下面的此屏幕截图),则不会 抛出锁定错误。 请参阅文档和屏幕截图,以了解我指的是参考汇总级别。

https://archive.sap.com/documents/docs/DOC-53376

我的问题是:最佳实践是什么? 如果我不希望用户遇到锁定问题(尽管它是自BI-IP以来由SAP专门开发的),我可以使用引用表而不是i_view来获取源数据,但是我将面对以下内容中的任何一个 未来:

1-即使我在参考聚合级别中正确过滤了数据,但以后会遇到任何性能问题-假设2年

2-由于我们将全部数据提取到引用表中并且不基于授权变量应用任何过滤,因此用户是否会遇到授权问题

3-因为我们要打破BPC Embedded的锁定机制,我们会面对任何数据不一致的情况吗?

谢谢您的帮助。

(168.3 kB)
付费偷看设置
发送
3条回答
1楼 · 2020-08-16 18:10.采纳回答

Hi Gunes,

1通过聚合级别读取数据的技术实现始终相同,因此性能取决于您读取的数据量。

2 读取您真正需要的数据。 如我所说,以更改模式读取的数据(由计划功能或序列的上下文中使用的过滤器描述)需要更改授权,而通过"外部"聚合级别读取的其他数据则需要读取授权。 观察到,BW在读取数据时已经检查了授权; 使用此方法,在更改/删除/创建记录时不需要检查授权,因为所有更改都必须包含在过滤器描述的范围内。

3假设您有3个用户,那么1个作品可以 仅价格计划,2个仅进行数量计划,3个执行AMDP计划功能。 如果所有这些用户并行处理同一数据,则使用"参考数据方法"的用户3将仅获得DB上的价格和数量值,而不是用户1、2的用户会话数据。这可能会导致混乱,因为用户 1可能会说"我计划了价格10"(在t1保存),用户2计划了数量100(在t2> t1保存),而用户3在t3处执行了t1 100)。

问候,

Gregor

小c菟菟
2楼-- · 2020-08-16 18:21

嗨,Gunes,

从另一个聚合级别读取数据只是读取"参考数据"的一种特殊情况。 该方法还可以读取尚未保存的用户会话数据(当然仅是您的用户会话)。 但是在大多数情况下,"参考数据"是稳定的数据,即在用户会话中不会更改。 在这种情况下,您还可以在SQL脚本实现中读取"参考数据"。

对于您的问题:

1如果不知道项目设置数据模型,数据量等,就无法回答。

2在更改模式下读取数据(由过滤器描述)需要更改授权,所有其他数据都需要读取授权(另一种聚合级别的情况或计划功能读取引用时)。 数据); 在SQL脚本的情况下,取决于SQL脚本的实现,因为这对于计划系统来说是一个很大的障碍。

3您不能破坏事务数据锁定机制(至少希望如此)作为事务数据。 锁用于在更改模式下读取数据(由过滤器描述); 参考数据未锁定。

这取决于您如何组织计划过程,是由不同用户并行计划"价格"和"数量",还是一个接一个地完成。 "参考数据"方法假定数据稳定,因为您仅看到数据库中保存的数据,而不看到其他用户会话数据。

问候,

Gregor

xfwsx85
3楼-- · 2020-08-16 18:22

嗨,格雷戈尔。 非常感谢您的回复。 让我稍微改一下,更具体一点:

1-是的,这绝对取决于容量,我的意思是:与通过i_view获取(相同)数据相比,它会导致性能问题吗?这有很大不同吗? 假设我们仅通过参考表获取版本= XXX的数据,那么在性能方面与通过i_view获得相同版本XXX的数据有何不同?

2-我的意思是:假设用户被授权只写利润中心X。我首先在参考表中提取所有利润中心的数据。 然后计算一些内容并仅发布到利润中心X。发布之前,我会收到任何问题吗? 因为我一开始就拉动了所有数据,尽管它们仅在内部表中。

3-如果您在这一点上举个例子,我会很感激:"参考数据"方法假定数据稳定,因为您"仅看到"保存在数据库中的数据,而不看到其他用户会话数据

一周热门 更多>