PI Substring函数不可靠吗?

2020-09-27 10:16发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中) 专家们, 我...

         点击此处--->   EasySAP.com群内免费提供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)
5条回答
callcenter油条
2020-09-27 11:05

嗨伊丽莎白,

您面临的问题是更大和ifelse函数的存在,所以我们将其分解:

关于"增强"功能,该功能将两个输入值进行比较。 如果第一个值大于第二个值,则输出为" true",否则为" false"。

以你的榜样

SAPCaseHouseID =‘7777 Waverty Read’<-我们的第一个值

长度= 17

我们在这里与您的常数= 20 <-我们的第二个值

进行比较

17大于20? 不,所以输出为false,因为二进制将使用0

现在让我们检查一下If ... Else ....功能

如果更大(我们知道这是假的,所以为零),则使用子字符串"位置0…字符.. 20"进行映射,但是由于为零,您得到的是空的...希望这可以回答您的问题。


阿达丽德,大家好!

一周热门 更多>