如何从OIC映射器向ERP Rest Adapter传递NULL值
在OIC中通过ERP Adapter将发票暂存表字段设为NULL的解决方法
以下是几个可行的解决思路,按优先级排序:
1. 直接使用映射器的NULL字面量
在OIC映射器中,给目标字段直接赋值不带引号的大写NULL:
- 打开映射器,定位到需要更新的暂存表字段
- 选择赋值方式为「Literal」,输入
NULL(不要加任何引号) - 保存映射后重新触发集成
ERP Adapter会自动将这个值解析为ERP Cloud API可识别的NULL,而非字符串,从而覆盖原有错误值。
2. 自定义XSLT实现xsi:nil属性
如果映射器直接赋值无效,可通过自定义XSLT片段实现:
<xsl:element name="YourTargetField"> <xsl:attribute name="xsi:nil">true</xsl:attribute> </xsl:element>
- 将
YourTargetField替换为实际的暂存表字段名 - 在映射器中切换到「XSLT」模式,替换原字段的映射逻辑
- 确保xsi命名空间已正确绑定(OIC通常会自动处理,无需手动添加)
这种方式会生成符合XML规范的空值节点,ERP API会识别为NULL。
3. 检查ERP Adapter的更新配置
确认Adapter的操作模式为**「Update」而非「Merge」**:
- 进入ERP Adapter的配置页面,在「操作」步骤选择「Update」操作
- 若有「允许空值覆盖」类的选项,务必勾选
Merge模式下,空白或未赋值的字段会保留原有值,只有Update模式才会强制覆盖为指定的NULL。
注意事项
- 不要传递空白字符串
''或"",ERP API会将其视为有效字符串,不会转换为NULL - 使用
xsi:nil="true"时,字段节点不能包含任何文本内容,否则会被识别为非空值
内容的提问来源于stack exchange,提问作者Nick
相关产品推荐
相关产品推荐

