点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中) 专家们, 我...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中) 专家们, 我...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
我想知道PI映射中的子字符串函数是否不可靠。 或者也许我只是错误地使用了它(有可能吗?)
我有一个源字段映射到目标。 该映射是到外部数据库的JDBC连接的一部分,这似乎很难解决,因为2个字段的字符串太长。
为了解决这个问题,我在每个数据类型字段上都设置了最大长度(分别为20和12)。 然后,我在涉及子字符串的映射中建立了一个检查。
如果源的长度大于20(或12),则跨子字符串映射(0表示20),否则跨整个源字段进行映射。
看起来相当简单:
真正运行时,没有任何东西可以到达目标。
在测试模式下运行时,该值会传递到目标。
当我更改映射以使用常量时... 当源长度大于20时,跨"大于20"映射,否则为" 20或小于20"。
有趣的是,当我在测试模式下运行时,我的测试数据显示为" 20或更少"(是的),但是当实际运行时,它的数据映射为"大于20"。
除了最后一条注释之外,没有人能提出一个原因,为什么使用子字符串拒绝在实际运行时环境中映射任何内容?
当它是直接映射时,它映射良好,只是无法进入目标数据库。
感谢收到建议。
我附上了一些屏幕截图。
非常感谢
伊丽莎白
(87.9 kB)
嗨伊丽莎白,
您面临的问题是更大和ifelse函数的存在,所以我们将其分解:
关于"增强"功能,该功能将两个输入值进行比较。 如果第一个值大于第二个值,则输出为" true",否则为" false"。
以你的榜样
SAPCaseHouseID =‘7777 Waverty Read’<-我们的第一个值
长度= 17
我们在这里与您的常数= 20 <-我们的第二个值
进行比较17大于20? 不,所以输出为false,因为二进制将使用0
现在让我们检查一下If ... Else ....功能
如果更大(我们知道这是假的,所以为零),则使用子字符串"位置0…字符.. 20"进行映射,但是由于为零,您得到的是空的...希望这可以回答您的问题。
阿达丽德,大家好!
一周热门 更多>