今天用SEGW做ODATA,生成后我用/IWFND/MAINT_SERVICE做ODATA测试时,总是报一个DATE的字段不能为空
.ERROR_CONTEXT
..ERROR_INFO Invalid format (return table): Row Number 1, Property Name ‘Edate’, Property Value ‘00000000’
..ERROR_RESOLUTION
…SAP_NOTE See SAP Note 1797736 for error analysis
…LINK_TO_SAP_NOTE https://service.sap.com/sap/support/notes/1797736
../IWCOR/CX_DS_INTERNAL_ERROR
../IWCOR/CX_DS_EP_ENTITY_ERROR
…INDEX 1
…PROPERTY Edate
../IWCOR/CX_DS_EP_PROPERTY_ERROR
…PROPERTY Edate
…VALUE 00000000
…TYPE
…OFFSET 0
..CX_PARAMETER_INVALID_RANGE
…VALUE 00000000
../IWCOR/CX_DS_EDM_FACET_ERROR
…VALUE 00000000
…FACET nullable=false
然后我就在SWEG里的Entity Types里把定义的结构的字段(Edate)设置为可为NULL,然后保存,并重新生成服务对像,可试了很多次,测试结果还是不对,还是报相同的不能为NULL的错误。
最后我只能把结构删除,重新引入结构,并设置字段(Edate)设置为可为NULL,然后生成,结果就对了,
仔细核对发现,我在表结构里定义的字段Edate是DATE类型,但在SEGW的Entity Types自定转换为了DATETIME类型,并且发现ODATA里没有DATE类型,所以以后考虑在ODATA使用时使用TIMESTAMP类型。