点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)关于实体中Edm.datetim...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)关于实体中Edm.datetim...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
关于实体中Edm.datetime属性问题的文章很多。 提供的解决方案通常视具体情况而定,因此很难弄清出问题的原因和补救措施。
这是一个简短的讨论(我希望!),它为edm.datetime属性建立了一些规则。 如果这些规则或某些其他规则有任何例外,请发布。
规则1
使用Edm类型日期时间。 不要为了方便起见将日期保持为edm.string
规则2
如果可以使用null值,则使该属性可以为null。 如果需要一个值(强制性),则不要使其为空。
规则3
仅当后端日期包含" 00000000"作为值时,才能正确评估可为空的属性。 包含空格的ABAP日期值(很遗憾允许这样做)将不会被视为null,但也不能转换为edm.datetime-您会从服务器收到运行时错误。
规则4
请注意完整属性定义。 仅为您的"日期属性"提供edm.datetime类型是不足以确保OData解析期间正确转换的。 参见规则5、6和7。
规则5
如果date属性是用于实体定义的DDIC结构的一部分,并且该组件是DATS(基本D类型),则可以直接在其中放置一个D类型值,例如
有效ABAP:
ls_entity-date = sy-datum。
这种类型的日期可能会落入规则3中提到的"日期为空但无效"陷阱中。
规则6
如果date属性是DDIC结构的不是的一部分,并且实体定义是"自由格式",则在分配其后端数据类型时,也可以直接在其中放置D类型值:例如
此类型的日期可能属于规则3中提到的"日期为空但无效"陷阱。
规则7
如果date属性不是DDIC结构的一部分,则实体定义为"自由格式",并且没有后端数据类型,则必须像填充时间戳一样填充目标。 这是因为MPC生成的属性类型是打包类型字段。 在规则5和6中,MPC生成的属性类型是D类型。
请注意,edm.datetime将包含一个表示微秒的附加部分,除非从高分辨率时间戳(即比sy-uzeit更为详细)中抽取,否则通常不会填充该部分。
此类型的日期不能落入规则3中提到的"日期为空但无效"陷阱中。
规则8
您也可以将TIMESTAMP用作DDIC结构实体库中的组件类型,而不是DATS。 可以按照规则7进行转换。
我确定我们可以在此处添加更多内容:例如,我发现" json格式"的提要日期看起来有些"奇"-是对还是错?
致谢
罗恩。
(7.1 kB)
嗨罗恩,
谢谢。 我面临一个新错误:
我们如何在Odata URL中将datetime传递为空白,其中Date是关键字段。 在这里,我使用的是自定义RFC。
当我通过Date = datetime'2014-05-14T00:00:00'传递时,我可以获取这些值, 但我想将日期字段传递为空白。
我尝试了不同的格式:
Date = datetime' 0000-00-00T00:00:00'
Date = datetime '00 -00-00T00:00:00'
Date = datetime''
日期=''
/sap/opu/odata/sap/ZSRV/GetReports(PoNo ='12345',Date = datetime'')
我只想传递参数中的一个字段,即PoNo。 日期字段是必填字段,因为这是输入参数
问候,
Tejas
一周热门 更多>