2020-09-18 03:28发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
SAP专家您好!
我正在处理多值特征,我真的很感谢任何帮助。
我们以具有5个可能值的CHAR多值特征为例。
特征名称:MACHINING
可能的值:切割,焊接,螺纹M12,螺纹M16,螺纹M20。
是否有可能使用户只能选择THREAD版本之一。 例如,用户可以选择切割,焊接和螺纹M12。 或切割,焊接和螺纹M20。 用户也可以只选择一种螺纹,而无需剪切或/和焊接。
感谢您的回答和建议
祝你有美好的一天!
Primoz
你好 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
您好 Primoz ,
谢谢您的评论,我很高兴它能奏效。 :-)
我认为最简单的答案是在功能模块中更改消息类型,将其设置为错误。
为此,只需替换以下行:
MESSAGE i302(cx)具有"选择了多个THREAD值"。
与此
MESSAGE e302(cx)具有"选择了多个THREAD值"。
即,将i302(信息)更改为e302(错误消息)。
只需在我的沙箱中尝试:
错误的选择(两倍于THREAD值)将导致无效的配置,迫使用户对其进行更改。
您认为这可以满足您的要求吗?
就让我知道...
再次感谢您,并致以最诚挚的问候,
很抱歉打断已经回答的问题。
我只想说,这可以通过功能上的前提条件值来实现,而不是使用"用户定义函数"。
在下面的图像中,我分配了3个Pre_Condition,它将隐藏其他THREAD的值。
对于值003,请结合其他剩余值。 (这里是004和005)
对于值004,请结合其他剩余值。 (这里是003和005)
对于值005,请结合其他剩余值。 (这里是003和004)
注意:请勿使用"指定语法"。
你好 Keyur Mistry ,
感谢您的回复。 我也尝试了您的解决方案,这是我所期望的解决方案。 我不知道我在想什么。 我认为多值特性不允许先决条件。 一开始我尝试了一个前提条件,但是遇到了问题。 (我使用的语法没有SELF。)
感谢您 Keyur Mistry 为您提供解决方案。
非常感谢 flavio ciotola 的所有答复和努力。
Hello Flavio,
此解决方案比以前的解决方案更好。 但是仍然缺少一些东西。 我想知道FM(Z_CHECK_MACHINING)是否可以对用户选择的值产生100%的影响。
我将为您解释具体情况。 像您一样,我也具有多重价值。 唯一的区别是我的特征在结构上有所不同(从属值),但这对功能没有影响:
当我测试您的解决方案的功能时,我发现了一些麻烦。
首先,我选择M10x40(一切正常)。 然后,我单击M12x40。 错误消息出现。 也可以:
您可能还有其他解决方案或想法吗? 就像我一开始所说的那样,我怀疑没有一种工具会影响用户的选择。 告诉我我是否错了。
另一件事。 每当我回复您时,我在发送答案时都会遇到问题。 我也找不到"评论"按钮(我不是瞎子,但我确实在"答案"按钮旁边没有"评论"按钮)。 在主持人的参与或帮助下,所有答案可能都会延迟一两天发送。 作为社区中经验丰富的用户,也许您可以为我提供一些解决方案或答案。
感谢您的友善和帮助!
祝你有美好的一天,
Primož
您好Primož,
您正在体验的内容看起来很奇怪...我也尝试过使用下级值,并且实际上该错误不允许我为线程选择第二个值:
我必须清除值,然后重新启动,而不能使用任何双线程,否则该函数将继续引发错误,不允许我继续操作。
关于评论按钮和主持人的参与,很遗憾,我没有头绪。
感谢您和最诚挚的问候,
最多设置5个标签!
你好 Primoz ,
可能的解决方案是使用"用户定义函数"来检查用户选择的值,如果选择了多个THREAD,则会返回一条消息。
这里是示例,刚刚在我的沙箱系统中尝试过:
正如所说的,这是通过"用户定义函数"到达的,这里是代码:
功能界面仅是MACHINING特性,如下所示:
该函数由依赖项(过程)调用,如下所示:
代码:
此依赖性可以添加到配置概要文件中,也可以添加到特征本身中。
请检查是否可以满足您的要求。 如有任何疑问,请随时提问。
非常感谢和问候,
Flavio
您好 Primoz ,
谢谢您的评论,我很高兴它能奏效。 :-)
我认为最简单的答案是在功能模块中更改消息类型,将其设置为错误。
为此,只需替换以下行:
与此
即,将i302(信息)更改为e302(错误消息)。
只需在我的沙箱中尝试:
错误的选择(两倍于THREAD值)将导致无效的配置,迫使用户对其进行更改。
您认为这可以满足您的要求吗?
就让我知道...
再次感谢您,并致以最诚挚的问候,
Flavio
很抱歉打断已经回答的问题。
我只想说,这可以通过功能上的前提条件值来实现,而不是使用"用户定义函数"。
在下面的图像中,我分配了3个Pre_Condition,它将隐藏其他THREAD的值。
对于值003,请结合其他剩余值。 (这里是004和005)
对于值004,请结合其他剩余值。 (这里是003和005)
对于值005,请结合其他剩余值。 (这里是003和004)
注意:请勿使用"指定语法"。
你好 Keyur Mistry ,
感谢您的回复。 我也尝试了您的解决方案,这是我所期望的解决方案。 我不知道我在想什么。 我认为多值特性不允许先决条件。 一开始我尝试了一个前提条件,但是遇到了问题。 (我使用的语法没有SELF。)
感谢您 Keyur Mistry 为您提供解决方案。
非常感谢 flavio ciotola 的所有答复和努力。
p>Hello Flavio,
此解决方案比以前的解决方案更好。 但是仍然缺少一些东西。 我想知道FM(Z_CHECK_MACHINING)是否可以对用户选择的值产生100%的影响。
我将为您解释具体情况。 像您一样,我也具有多重价值。 唯一的区别是我的特征在结构上有所不同(从属值),但这对功能没有影响:
当我测试您的解决方案的功能时,我发现了一些麻烦。
首先,我选择M10x40(一切正常)。 然后,我单击M12x40。 错误消息出现。 也可以:
您可能还有其他解决方案或想法吗? 就像我一开始所说的那样,我怀疑没有一种工具会影响用户的选择。 告诉我我是否错了。
另一件事。 每当我回复您时,我在发送答案时都会遇到问题。 我也找不到"评论"按钮(我不是瞎子,但我确实在"答案"按钮旁边没有"评论"按钮)。 在主持人的参与或帮助下,所有答案可能都会延迟一两天发送。 作为社区中经验丰富的用户,也许您可以为我提供一些解决方案或答案。
感谢您的友善和帮助!
祝你有美好的一天,
Primož
您好Primož,
您正在体验的内容看起来很奇怪...我也尝试过使用下级值,并且实际上该错误不允许我为线程选择第二个值:
我必须清除值,然后重新启动,而不能使用任何双线程,否则该函数将继续引发错误,不允许我继续操作。
关于评论按钮和主持人的参与,很遗憾,我没有头绪。
感谢您和最诚挚的问候,
Flavio
一周热门 更多>