2019-05-08SAP接口开发时遇到的坑
2019-05-08 本文已影响0人
2d6b5ee3a71c
1.接口参数传默认值
- 字符串不能传null,要传空值(双引号“”)给SAP;
- BigDecimal(Double)类型值为空时,传0给SAP;
- 日期型,如果值为空,以Date10(yyyy-MM-dd)格式为例,传“0000-00-00”给SAP。
2.调用SAP接口,如果需要SAP返回集合列表,需要在调用SAP接口前,实例化该集合对象传递给SAP,这样SAP就能正确的返回集合列表了,而不是返回null。
3.SAP端,假如某字段值的长度如果不足该字段要求的长度,SAP会在该值前默认补0。该问题需要SAP端做补0或去掉0的逻辑。
比如凭证号在SAP的字段长度是10位,如果某凭证号实际值是8位,如“10001001”,则在SAP表里面存储的实际值是“0010001001”。
4.接口报如下异常时,如果代码检查不出问题,通常都是数据哪里有问题:
org.apache.axis2.AxisFault: Web 服务处理错误; 提供者端 Web 服务错误日志中的更多详细信息 (世界协调时间时戳 20190505070633;事务标识 694122C9BB5C0070E005C81B383CEC54)
at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:446)
比如:SAP接口某字段Decimal31(长度3位,整数2位,1小数1位),调用SAP接口的时候,如果这个字段给的值是2位小数,或者整数长度超过3位时,就会报上面的“服务处理错误”的异常。