Oracle Integration Cloud中XPATH数组无匹配时设置默认值
Oracle Integration Cloud赋值表达式处理无匹配记录的空值方案
直接用XPATH的条件判断就能解决这个问题,核心思路是先检查目标记录是否存在,存在就取对应value,不存在就返回空字符串。
针对
varParticipantId的赋值表达式可以改成:if (exists($getRefs/getResponse/....../records[name='ParticipantId'])) then $getRefs/getResponse/....../records[name='ParticipantId']/value else ''这里的
exists()函数会先判断有没有匹配name='ParticipantId'的记录,有就返回对应value,没有就返回空字符串,不会再抛出异常。另外也可以用
string()函数做简化处理,写法更简洁:string($getRefs/getResponse/....../records[name='ParticipantId']/value)当目标节点不存在时,
string()函数会自动返回空字符串,同样能避免报错,适合OIC赋值编辑器的场景。
两种方式都能满足需求,前者逻辑更直观,后者代码更简短,按需选择即可。
内容的提问来源于stack exchange,提问作者Iain McCorquodale
相关产品推荐
相关产品推荐

