IF_RSPLS_CR_METHODS〜CREATE用于限制F4帮助

2020-09-08 15:30发布

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

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


专家们,

我需要用新行在输入准备就绪的查询中限制几个帮助的输入帮助。

例如,有3个特征:Char1,Char2和Char3。 要求如下:

1)如果选择了Char2,则Char3仅可使用#

2)如果选择了Char3,则Char2仅可使用#。

3)为Char1选择的值不适用于Char2(这是参考特征)。

我试图通过方法IF_RSPLS_CR_METHODS〜CREATE使用基于出口类的特征关系。 这种方法有什么办法(在运行时)找出特征,为此请求F4?

问题是,当用户首次为任何字符调用F4时,我必须生成所有3个字符的笛卡尔积,以允许他选择任何值。

先谢谢您

彼得

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

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


专家们,

我需要用新行在输入准备就绪的查询中限制几个帮助的输入帮助。

例如,有3个特征:Char1,Char2和Char3。 要求如下:

1)如果选择了Char2,则Char3仅可使用#

2)如果选择了Char3,则Char2仅可使用#。

3)为Char1选择的值不适用于Char2(这是参考特征)。

我试图通过方法IF_RSPLS_CR_METHODS〜CREATE使用基于出口类的特征关系。 这种方法有什么办法(在运行时)找出特征,为此请求F4?

问题是,当用户首次为任何字符调用F4时,我必须生成所有3个字符的笛卡尔积,以允许他选择任何值。

先谢谢您

彼得

付费偷看设置
发送
5条回答
CJones
1楼-- · 2020-09-08 15:50

嗨,彼得,

不能使用CREATE方法在选定值和要选定的值之间建立连接。 只能获取在查询设计器或BW建模工具中定义的全局过滤器。 因此,如果要控制一个字符的F4结果,则必须定义特征关系,然后指定全局过滤器。 接下来,您可以使用CREATE方法获得相关结果。

最诚挚的问候,
Sheldon

spaceman01
2楼-- · 2020-09-08 16:06

嗨,Sheldon,

感谢您的回复。

对于CREATE方法中缺少该功能,我不确定您是正确的。 我做了一个测试:在CREATE方法中检查I_TSX_SELDR中Char1是否有指定值,如果匹配,则在E_TH_CHAS中用特定值创建一个关系Char1-Char2。 结果,在准备输入的查询的新行中,当我为Char1选择一个特定值时,然后我在F4中仅为Char2看到一个值。

因此,我相信在换行的情况下,可以在选定值之间建立连接,并可以在CREATE方法中建立选定值。 不过,这不符合我的要求,因为在没有任何特征受到限制的情况下,我必须建立太大的关系。

此致

Peter

lukcy2020
3楼-- · 2020-09-08 16:02

嗨,Peter,

特征关系的CREATE方法必须创建选择表I_TSX_SELDR中包含的所有有效组合; 此方法应与CHECK兼容。 这些方法(使用DERIVE)定义并控制有效的组合。

但是F4帮助中也调用了CREATE(如果F4中使用的特性包含在关系中),但是F4帮助特性在那里 不被称为CREATE是基于关系中使用的特征。 但是I_TSX_SELDR包含有效的过滤器(修复程序和动态过滤器)以及新行中已包含的值(可能取决于客户端,但应在Analysis Office情况下使用)。 在F4帮助用例中,创建的记录的投影将返回到F4帮助。

是的,如果I_TSX_SELDR中没有限制,则CREATE方法的工作是创建所有有效组合 ,但根据您的描述,这不是购物车。 产品(或者我不理解您的规则)。

观察到组合(x,y,z)其中x是CHAR1的值,ya2是ya2,za3是CHAR3。 如果x,y,z =#(初始值)之一,则自动有效。 默认情况下,将不调用这些组合的关系。 不要忘记CHECK方法,因为将调用此方法以检查新行中的组合(并且将调用该方法以检查一致性)。

对于我来说,不清楚特征关系是否合适

问候,

Gregor

半个程序猿
4楼-- · 2020-09-08 15:51

嗨,格雷格,

感谢您提供详细的答案。

我最终了解到特征性关系不适合我的用例。 我不确定是否可以通过其他任何方式解决它,因此我将使用一种解决方法-拆分输入表单,这样就不必进行限制和检查了。

但是您能否评论一下您提到的一件事:如果x,y,z =#(初始值)之一,组合将自动有效,并且默认情况下不会调用这些组合。

据我在测试中看到的,具有#值的组合是自动创建的,因此当我与3个特征有关系时,未设置标志Excl。#,并且未实现任何其他逻辑,因此我得到了系统内存转储 创建所有有效组合:x,y,#和x,#,z和#,y,z。 所以总是调用该关系,对吗?

此致

Peter

闻人可可
5楼-- · 2020-09-08 15:54

嗨,彼得,

正确,如果未设置EXCL#,则CREATE方法也将创建自动有效的组合。 这是为了简化退出关系的实现。 为了完整起见,我还提到了CHECK方法(调用该方法以检查计划所有部分中记录的一致性),并且在退出实现中不针对自动有效组合调用此方法(如果未设置EXCL#;如果已设置) 该方法将被调用)。 如果关系是派生的,则DERIVE也是如此(如果源特征值之一是#,则组合自动有效)。

问候,

Gregor

一周热门 更多>