NC56 XML 报文校验出错一例

好好的上线了、下午开完会告诉我有个凭证没法传入 NC 了。

请求报文如下:


运输费销售部1.00000000006601CNY支付出口运费(xxx)11.001.00101087810.001.00000000001010CNYFOB运费21.00FSPG-2023112300012FSPG-RCFY2311220109620230总账银行付款凭证2023-11-28报销xx有限公司运输费出口印度FOB费,客户INDU, 订单FSPG20230711-1&210108FSSC11N

不管是直接在 NC 对应组织下的 “交换平台 - 手动加载界面” 加载报文,还是使用 postman 请求 NC ERP 生产环境、都返回同样的错误:

从输入流转换document出错:请检验文档格式。\n

思来想去,如果 xml 报文的标签尖括号是成对出现的、那么就是报文的内容有问题。直到我看到了 Encoding Special Characters in XML | Baeldung

这篇文章。里面罗列了常见的 xml 特殊字符:

Entity Character Represented
&     Ampersand – &
'     Apostrophe – ‘
> Greater-than sign – >
< Less-than sign – <
"     Quotation mark – “

于是把目光投向了那个可疑的 “&” 符号。

为了稳妥起见,找了 NC 测试环境的外部交换接口;架起 postman 发送了生产环境的报文。

去掉 “&” 之前的报文反馈如下:


   
      
         
         
         
         
            -31003
         
         
            从输入流转换document出错:请检验文档格式。\n
         
         

去掉 “&” 之后的报文反馈如下:


   
      
         
         
         
         
            -31114
         
         
            交换环境初始化异常:无法获得数据源,账套:fspg
         
         

问题不大,至少能传进去了(滑稽)

只能感叹对方系统的单纯、知道是发送 xml 报文还不对标签里的内容做转码、服了。。:)

(完)

你可能感兴趣的:(工具使用,xml,用友NC)