自规划功能追加只更改的记录

2020-09-04 21:10发布

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

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


大家好,

我正在使用针对S/4 Hana优化的BPC 10.1。 我创建了一个自定义的计划函数类型,并对所有BPC计算都使用了ABAP类。我基于计划过滤器过滤数据,并使用表c_th_data查看聚合级别上可用的数据,然后计算stg并将数据附加到c_th_data。 工作正常。

但是,如果我不附加c_th_data中原来可用的记录,则会自动删除它。从rsplan运行它后,我会看到该日志。(删除的记录数为xx)这会影响代码性能, 每个时间,都必须将源数据添加到c_th_data。需要花费太多时间来附加 计算完成后,将c_th_data添加到adso。如果添加的记录更少,那么将花费更少的时间。

在BPC经典版本中不是这种情况。如果我们没有在BPC经典版本中的ct_data中附加记录,那么即使在代码范围内它也不会被系统自动清除。仅附加数据模式 受ct_data影响(bpc经典版)。

我想知道的是这是bw ip(嵌入式bpc)的标准行为,还是像这样的"过程更改记录"或stg之类的参数?您可以看到我使用的界面和我的自定义计划功能类型 下方:

计划功能类型("属性"选项卡)。 参数标签中没有任何内容:

我的课使用界面:

IF_RSPLFA_SRVTYPE_IMP_EXEC

我要做的就是将代码写入该类的EXECUTE方法并将记录追加到c_th_data。

(11.8 kB)

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

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


大家好,

我正在使用针对S/4 Hana优化的BPC 10.1。 我创建了一个自定义的计划函数类型,并对所有BPC计算都使用了ABAP类。我基于计划过滤器过滤数据,并使用表c_th_data查看聚合级别上可用的数据,然后计算stg并将数据附加到c_th_data。 工作正常。

但是,如果我不附加c_th_data中原来可用的记录,则会自动删除它。从rsplan运行它后,我会看到该日志。(删除的记录数为xx)这会影响代码性能, 每个时间,都必须将源数据添加到c_th_data。需要花费太多时间来附加 计算完成后,将c_th_data添加到adso。如果添加的记录更少,那么将花费更少的时间。

在BPC经典版本中不是这种情况。如果我们没有在BPC经典版本中的ct_data中附加记录,那么即使在代码范围内它也不会被系统自动清除。仅附加数据模式 受ct_data影响(bpc经典版)。

我想知道的是这是bw ip(嵌入式bpc)的标准行为,还是像这样的"过程更改记录"或stg之类的参数?您可以看到我使用的界面和我的自定义计划功能类型 下方:

计划功能类型("属性"选项卡)。 参数标签中没有任何内容:

我的课使用界面:

IF_RSPLFA_SRVTYPE_IMP_EXEC

我要做的就是将代码写入该类的EXECUTE方法并将记录追加到c_th_data。

(11.8 kB)
付费偷看设置
发送
5条回答
风早神人
1楼 · 2020-09-04 21:51.采纳回答

嗨Gunes,

这是设计使然。 C_TH_DATA是一个"正在更改"的表,所以我不理解您的声明

但是,如果我不附加c_th_data中最初可用的记录,则会自动将其删除。

em>

这意味着您已经在代码中从C_TH_DATA中删除了数据,为什么? 如果您根本不接触记录,那么计划框架中的记录将不会发生任何事情; 如果记录在调用之前而不是在调用之后包含在C_TH_DATA中,则该记录被视为已删除。

BPC Standard和Embedded中使用的概念不同,请参见。

https://博客。 sap.com/2014/10/21/concepts-compared-bpc-standard-and-bpc-embedded/

此致

Gregor

渐行渐远_HoldOn
2楼-- · 2020-09-04 21:46

Hi Gunes

实际上,系统会"检查" 300K记录,但只是找出更改/删除/新记录; 这只是一个哈希查找(每条记录几微秒); 仅对已更改/新记录(其中检查了数据片/特征关系并且可能是主数据(新记录))的更改/新记录进行真正的检查。 后者可能很耗时,具体取决于建模计划约束的复杂性。

计划缓冲区仅通过"增量记录"进行更新,即在此也仅考虑新的/更改/删除的记录。 保存数据后,计划缓冲区将具有增量记录,并为类似立方体的aDSO保存增量记录,并使用新的/更改/删除的记录来计算残像,以从直接更新的aDSO中插入/更新/删除记录。

致谢,

格雷戈尔

四川大学会员
3楼-- · 2020-09-04 21:59

嗨,古尼斯,

您不必自己读任何东西,您已经获得了记录 需要在C_TH_DATA; 您说您创建了10万条新记录,那么为什么还要添加300K条记录呢? 仅将10万条新记录追加到现有的20万条记录中。

如果要进行海量数据处理,请考虑编写SQL脚本类型的计划功能和/或在计划序列中使用流程链,您可以

CL_RSPLFR_CONTROLLER为您进行读取,编写和检查,因此-根据计划约束的自定义设置,这可能需要一些时间。

请注意,

格雷戈尔

SAP小黑
4楼-- · 2020-09-04 21:38

嗨,格雷戈尔,

感谢您的答复。我正在从计划的ado中读取20万条记录,然后再计算10万条记录。那么,在这种情况下,我的c_th_data必须包含30万条记录,而不是仅10万条数据。

添加300K 记录是需要时间的。在 sm66中,我看到一些标准作业,例如" CL_RSPLFR_CONTROLLER"。 而且,如果我认为如果我的c_th_data包含更多记录,那么此作业可能会因记录数而卡住。

奄奄一息的小鱼
5楼-- · 2020-09-04 21:42

您好,Gregor,

那么为什么要说必须附加30万条记录?

是的,我将100K附加到c_th_data,剩下的200K已经存在了。我不是那个意思。附加300K记录的意思是我的c_th_data必须包含300K记录。 这300K条记录被附加到adso后面。对于标准SAP类而言,将300K条记录而不是100K条记录重新附加到adso需要花费太多时间。尽管已经有200K条记录,但是系统本身仍会检查"如果我附加相同的数据 还是200万。"是的,它会追加100K新记录,但系统也会同时检查其他200K,这需要时间。

在BPC标准中,附加记录的标准sap类仅检查10万条记录。

希望我很清楚。如果这是标准行为,那么很清楚。谢谢

一周热门 更多>