如何执行指定impex导入脚本并解决PK格式报错问题
错误原因
- 当前写法将
#%开头的Impex动态执行脚本包裹在字符串内部,Impex解析器没有识别到这是需要执行的动态代码,直接将整段字符串作为consenttemplates(pk)的字段值传入,系统尝试将字符串转为PK格式时抛出格式不匹配异常。 - 编写的Flexible Search拼接逻辑冗余,不需要额外拼接
,#2,这类前缀,consenttemplates字段接收的是逗号分隔的PK值列表,直接返回对应PK即可。
修复后的Impex脚本
INSERT_UPDATE CxConfig;code[unique=true];basesites(uid);consenttemplates(pk) ;SAPYMKT_PERS_CSIN_CONF;csin;#% impex.exportItemsFlexibleSearch("select {con.pk} from {consenttemplate as con join basesite as bs on {bs.pk} = {con.basesite}} where {con.id} = 'SAPYMKT_PERS' and {bs.uid} = 'csin'")
注意事项
- Impex中
#%开头的动态脚本必须放在字段值的最前端,不能被引号包裹,否则会被识别为普通字符串。 impex.exportItemsFlexibleSearch方法查询单列PK结果时,会自动转为逗号分隔的格式匹配多值字段的导入要求,不需要手动拼接分隔符。- 如果需要同时匹配多个站点或者多个同意模板ID,直接修改Flexible Search的where条件即可。
内容的提问来源于stack exchange,提问作者Vigneshwaran Sundarrajan
相关产品推荐
相关产品推荐

