变型配置-多重值特征

2020-09-18 03:28发布

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

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


SAP专家您好!

我正在处理多值特征,我真的很感谢任何帮助。

我们以具有5个可能值的CHAR多值特征为例。

特征名称:MACHINING

可能的值:切割,焊接,螺纹M12,螺纹M16,螺纹M20。

是否有可能使用户只能选择THREAD版本之一。 例如,用户可以选择切割,焊接和螺纹M12。 或切割,焊接和螺纹M20。 用户也可以只选择一种螺纹,而无需剪切或/和焊接。

感谢您的回答和建议

祝你有美好的一天!

Primoz

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

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


SAP专家您好!

我正在处理多值特征,我真的很感谢任何帮助。

我们以具有5个可能值的CHAR多值特征为例。

特征名称:MACHINING

可能的值:切割,焊接,螺纹M12,螺纹M16,螺纹M20。

是否有可能使用户只能选择THREAD版本之一。 例如,用户可以选择切割,焊接和螺纹M12。 或切割,焊接和螺纹M20。 用户也可以只选择一种螺纹,而无需剪切或/和焊接。

感谢您的回答和建议

祝你有美好的一天!

Primoz

付费偷看设置
发送
6条回答
SAP砖家
1楼 · 2020-09-18 03:56.采纳回答

你好 Primoz

可能的解决方案是使用"用户定义函数"来检查用户选择的值,如果选择了多个THREAD,则会返回一条消息。

这里是示例,刚刚在我的沙箱系统中尝试过:

正如所说的,这是通过"用户定义函数"到达的,这里是代码:

 FUNCTION z_check_machining。
 *" ------------------------------------------------  ----------------------
 *" *"本地接口:
 *"正在导入
 *"参考(全球)类CUOV_00结构CUOV_00
 *"表格
 *"查询结构CUOV_01
 *"匹配结构CUOV_01
 *"例外情况
 *"失败
 *"      内部错误
 *" ------------------------------------------------  ----------------------

   TYPE-POOLS:Cudbt。
   数据:w_instance TYPE cudbt_instance,
         i_machining TYPE cudbt_vallist,
         l_val TYPE cudbt_val,
         l_count类型i。

   如果globals-self是INITIAL的话。
     w_instance = 1。
   其他。
     w_instance =全局自身。
   万一。

   通话功能" CUPR_GET_VALLIST"
     出口
       实例= w_instance
       特征="加工"
     输入
       值= i_machining
     例外情况
       unknown_instance = 1
       unknown_characteristic = 2
       not_multivalued = 3
       not_found = 4
       internal_error = 5
       其他= 6。
   如果sy-subrc <> 0。
 *消息ID SY-MSGID类型SY-MSGTY编号SY-MSGNO
 *与SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4。
   万一。

   清除l_count。
   在i_machining INTO l_val中循环。
     如果l_val-atwrt CS为'THREAD'。
       向l_count加1。
     万一。
   结局。
   如果l_count> 1。
     带有"选择了多个螺纹值"的消息i302(cx)。
   万一。

 ENDFUNCTION。

功能界面仅是MACHINING特性,如下所示:

该函数由依赖项(过程)调用,如下所示:

代码:

功能Z_CHECK_MACHINING(
                   机械加工= $ self.MACHINING
                                               )。

此依赖性可以添加到配置概要文件中,也可以添加到特征本身中。

请检查是否可以满足您的要求。 如有任何疑问,请随时提问。

非常感谢和问候,

Flavio

Nir深蓝
2楼-- · 2020-09-18 03:30

您好 Primoz

谢谢您的评论,我很高兴它能奏效。 :-)

我认为最简单的答案是在功能模块中更改消息类型,将其设置为错误。

为此,只需替换以下行:

 MESSAGE i302(cx)具有"选择了多个THREAD值"。

与此

 MESSAGE e302(cx)具有"选择了多个THREAD值"。

即,将i302(信息)更改为e302(错误消息)。

只需在我的沙箱中尝试:

错误的选择(两倍于THREAD值)将导致无效的配置,迫使用户对其进行更改。

您认为这可以满足您的要求吗?

就让我知道...

再次感谢您,并致以最诚挚的问候,

Flavio

3楼-- · 2020-09-18 03:44

很抱歉打断已经回答的问题。

我只想说,这可以通过功能上的前提条件值来实现,而不是使用"用户定义函数"。

在下面的图像中,我分配了3个Pre_Condition,它将隐藏其他THREAD的值。

对于值003,请结合其他剩余值。 (这里是004和005)

对于值004,请结合其他剩余值。 (这里是003和005)

对于值005,请结合其他剩余值。 (这里是003和004)

注意:请勿使用"指定语法"。

骆驼绵羊
4楼-- · 2020-09-18 03:47

你好 Keyur Mistry

感谢您的回复。 我也尝试了您的解决方案,这是我所期望的解决方案。 我不知道我在想什么。 我认为多值特性不允许先决条件。 一开始我尝试了一个前提条件,但是遇到了问题。 (我使用的语法没有SELF。)

感谢您 Keyur Mistry 为您提供解决方案。

非常感谢 flavio ciotola 的所有答复和努力。

p>
小灯塔
5楼-- · 2020-09-18 03:39

Hello Flavio,

此解决方案比以前的解决方案更好。 但是仍然缺少一些东西。 我想知道FM(Z_CHECK_MACHINING)是否可以对用户选择的值产生100%的影响。

我将为您解释具体情况。 像您一样,我也具有多重价值。 唯一的区别是我的特征在结构上有所不同(从属值),但这对功能没有影响:

当我测试您的解决方案的功能时,我发现了一些麻烦。

首先,我选择M10x40(一切正常)。 然后,我单击M12x40。 错误消息出现。 也可以:

您可能还有其他解决方案或想法吗? 就像我一开始所说的那样,我怀疑没有一种工具会影响用户的选择。 告诉我我是否错了。

另一件事。 每当我回复您时,我在发送答案时都会遇到问题。 我也找不到"评论"按钮(我不是瞎子,但我确实在"答案"按钮旁边没有"评论"按钮)。 在主持人的参与或帮助下,所有答案可能都会延迟一两天发送。 作为社区中经验丰富的用户,也许您可​​以为我提供一些解决方案或答案。

感谢您的友善和帮助!

祝你有美好的一天,

Primož

Bunny_CDM
6楼-- · 2020-09-18 03:44

您好Primož

您正在体验的内容看起来很奇怪...我也尝试过使用下级值,并且实际上该错误不允许我为线程选择第二个值:

我必须清除值,然后重新启动,而不能使用任何双线程,否则该函数将继续引发错误,不允许我继续操作。

关于评论按钮和主持人的参与,很遗憾,我没有头绪。

感谢您和最诚挚的问候,

Flavio

一周热门 更多>