我的 SAP 技术交流知识星球里有朋友提问:
我们用BTP CPI包了一个S4 HANA CLOUD的销售订单创建的API服务,在POSTMAN中测试时显示SalesOrderDate的读值有错误。看来看去看不出原因来。请大神帮忙看看。
我们仔细分析这个问题,发现错误 code 里包含一个 ABAP 异常:CX_SXML_PARSE_ERROR
:
还有一段错误消息:
Failed to read property “SalesOrderDate” at offset 382.
这个 ABAP 异常预示着 XML 解析过程中发生了错误:
结合异常消息,说明在 XML 文档的某个位置(offset 382)出现了问题,无法读取属性 SalesOrderDate
。
联想到提问者使用了 SAP CPI 来暴露 S/4HANA Cloud SalesOrder creation API,那么我的建议是,首先进行问题隔离,不通过 CPI,而是直接消费 S/4HANA Cloud 的 API,看看在这个系统上的 Sales Order 创建是否能够正常工作。
如果能够正常工作,那么说明问题出在 CPI 这段。此时需要在 SAP CPI 中检查 API 配置,特别是 API 转换步骤。确保正确映射 SalesOrderDate 属性,并且数据在转换过程中没有被意外修改。
也可以查看 SAP CPI 的日志以获取更多详细信息,以确定问题的根本原因。
如果直接消费 S/4HANA Cloud Creation API 都不行,那么这个问题就同 CPI 无关了,此时的精力要放在检查 S/4HANA 系统的 API 暴露的配置步骤上。