IF_RSPLS_CR_METHODS〜CREATE-具有复合特征的行为

2020-08-21 00:54发布

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

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


嗨,

我尝试限制新行的F4值(Analysis for Office)。 我在行中具有以下特征:

销售组织

分区

客户(销售视图)

材料

我需要根据所选的销售组织限制"材料(0MATERIAL)"中的值(因为我无法使用"材料(销售视图)"。

因此,我对Exit使用特殊的关系。 我在出口(IF_RSPLS_CR_METHODS〜CREATE)中使用销售组织和物料。

但是,当我运行Workbook并尝试通过F4选择销售组织时,我得到许多记录,并且性能非常差。 因为销售组织/部门/客户(销售视图)是复合值,是否还考虑了Divison和客户?

我如何只关注SalesOrg与材料的关系?

BR

Gunter

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

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


嗨,

我尝试限制新行的F4值(Analysis for Office)。 我在行中具有以下特征:

销售组织

分区

客户(销售视图)

材料

我需要根据所选的销售组织限制"材料(0MATERIAL)"中的值(因为我无法使用"材料(销售视图)"。

因此,我对Exit使用特殊的关系。 我在出口(IF_RSPLS_CR_METHODS〜CREATE)中使用销售组织和物料。

但是,当我运行Workbook并尝试通过F4选择销售组织时,我得到许多记录,并且性能非常差。 因为销售组织/部门/客户(销售视图)是复合值,是否还考虑了Divison和客户?

我如何只关注SalesOrg与材料的关系?

BR

Gunter

付费偷看设置
发送
8条回答
Aaron 3364
1楼-- · 2020-08-21 01:31

Hi Gunter,

关于复合,特征关系始终是封闭的,即,如果特征B在关系中并且B具有复合母体A,那么A也在关系中。

< p>因此,销售组织和物料处于退出关系中,并且这两个特征的所有复合父级也存在。

您将销售组织/部门/客户(销售视图)写成复合,因此销售组织和 部门是客户的母公司(销售视图)吗? 如果是,则不会对您的关系产生影响。

从技术上讲,退出关系具有属性N_TS_CHAS,其中包含该关系的所有特征。 您从表I_TSX_SELDR中的查询中获得了所有限制,可以使用方法SELDR_TO_RANGE将此格式转换为选择表,可能更方便。 使用它来筛选您读取的数据。

请注意,系统始终会自动创建有效的组合,因此F4帮助可能会获得比在出口中创建的记录更多的记录。 检查初始值是否在选择表中(这包括对特征无限制的"全部"情况)。 如果不需要初始值,请不要在查询过滤器中使用它。 您也可以在关系中使用标记" EXCL#"(在RSPLAN中进行设置),该标记将关闭系统生成的对自动有效组合的处理。

不要忘记零件供应商 可能有例如 当您的查询基于使用Multi-或CompositeProvider的聚合级别时:记录是按零件提供者创建的,然后被"联合",因此拥有多个计划基本InfoProvider的供应商可能会超过一个供应商。

问候,

格雷戈尔

PS

要检查是否将自动有效的组合添加到来自出口的E_TH_CHAS中,请设置一个break- 指向CL_RSPLS_CR_CONTROLLER中的CREATE_PARTPROV_COMBIS,然后检查COMPLETE_COMBIS方法是否将组合添加到表C_TH_CHAS。 参考您提到的逻辑)-因此在我的关系案例中我不理解系统的行为...也许我完全感到困惑...

huskylover
2楼-- · 2020-08-21 01:30

您好,Gregor,

谢谢,很高兴听到SALESORG和MATERIAL应该可以工作。

我使用MultiProvider,有3个正在规划的基本InfoProvider(但其中2个是查询过滤器)。 CREATE_PARTPROV_COMBIS在表P_TS_PARTPROV中显示了这两个InfoProvider。 不调用COMPLETE_COMBIS。

最后L_T_COMBI包含2行-一行888行,另一行78860行。

888个条目是create_combis_for_md(mtype N)的结果,78860行具有MTYPE E(自定义关系)。

当系统调用CL_RSPLS_CR_CONTROLLER〜INNER_JOIN时,我收到一个错误,因为它最终以12个以上的Mio组合(在E_TH_CHAS中)结束。

您还有其他想法吗?

此致

Gunter

半个程序猿
3楼-- · 2020-08-21 01:32

嗨,Gunter,

您没有在关系中提到N_TS_CHAS中的内容,关于数据模型的描述似乎不完整,因为 还有一个导航属性(MTYPE N)。 还不清楚为什么内部联接使结果结果更大。

为什么退出的结果相对较大,难道您没有使该集合更小的过滤器吗? 如果特征A在出口关系中并且具有导航属性A__N,则您还将在出口中获得对A__N的限制; 您可能会使用此信息来使出口返回的结果变小。

您期望出口返回的78860条记录是否正确?

问候,

格雷戈尔

SAP小菜
4楼-- · 2020-08-21 01:14

嗨,格雷格,

在N_TS_CHAS中,有0SALESORG和0MATERIAL。

基于0CUST_SALES,查询过滤器中使用了1个导航属性。

在调试模式下,我从L_t_combi(CREATE_PARTPROV_COMBIS)删除了MTYPE N行,然后工作了,我得到了预期的值(是的,在选择salesorg之前,可以使用78860)。

我真的不知道MTYPE N的来源...它被填充在CREATE_PARTPROV_COMBIS" create_combis_for_md"中。

致谢

Gunter

bbpeas
5楼-- · 2020-08-21 01:28

Hi Gunter,

组合创建过程中涉及的特征S确定如下:

-F4 请求的帮助特征,例如F,将F添加到S

--如果F在关系中,则将关系特征添加到S

-检查其他关系是否具有非空 与S相交,如果是,则添加特征; 直到不添加任何新特性为止。

这包括复配父级。 因此,也许有共同的复合父母。 由于您具有MultiProvider,因此导航属性可能已映射到正常特征。

您可以检查CL_RSR_OLAP_PLAN,IF_RSR_OLAP_PLAN〜CREATE_PLAN_PROPOSAL和内部表l_t_source。 该表来自位字符串l_x_chas

上述机制位于

 l_x_related = l_r_query_runtime-> n_r_cr-> get_related_chas(l_x_chas)中。  

,但也许很难理解。 要了解位字符串,可以使用报告RSPLS_BITSTR_TO_CHANM,InfoProvider是您的聚合级别,并将l_x_chas的内容粘贴到第二个字段中并返回。

问候

Gregor

Doze时光
6楼-- · 2020-08-21 01:16

嗨,格雷格,

再次感谢,我使用了上述报告,除0SALESORG外,还考虑了以下特征:

0DISTR_CHAN-0DIVISION-0CUST_SALES和0CUST_SALES的Navi属性对我来说似乎不仅考虑了复合"父母"。

导航属性未映射到正常特征。

CL_RSPLS_CR_CONTROLLER ... GET_RELATED_CHAS会带来其他特征-但我不知道为什么!

致谢

Gunter

一周热门 更多>