ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

SAP SEGW 事物码里的 ABAP 类型和 EDM 类型映射的一个具体例子

2022-06-30 12:31:06  阅读:173  来源: 互联网

标签:MPC Type SEGW 码里 EDM ABAP internal 类型 type


本文的示例主要关注 Edm属性的 ABAP Datetime 处理逻辑。Datetime 只是在映射ABAP 类型和 EDM 类型时可能出现不一致的例子之一。

对于 Edm.Datetime 属性,在后端,ABAP 字段可以表示为一个简单的日期或时间戳,可以带有也可以不带有小数秒。

因此,在 Service Builder 中对于一个EDM.Datetime 类型的属性,需要额外的信息来将这个 EDM 类型映射到后端中正确的 ABAP 字段类型。如果没有正确地映射,就会导致错误的类型赋值。

正确的类型赋值对于 MPC 的自动生成是至关重要的,因为 DPC 的实现是基于 MPC 类中生成的类型。

在 Service Builder 中实现这一目标的最初解决方案是:

  • 如果 precision = 0 并且 scale = 0, 那么 ABAP internal type 为 type D.

  • 如果 precision = 8 并且 scale = 0, 那么 ABAP internal type 为 type P,length 为 8 decimals 为 0 (timestamp without fractional seconds)

  • 如果 scale = 7, 那么 ABAP internal type 为 type P,length 11 decimals 7 (timestamp with fractional seconds)

除了使用上面示例中的 precision 和 scale 属性之外,也可以使用 Service Builder 中的ABAP Type Editor来直接设置内部类型。在 ABAP 类型编辑器中,可以手动设置类别为内部类型,规则如下:

  • Type Kind = Date, Length = 8, Decimals = 0 ( 代表 Simple Date, internal type 为 D)
  • Type Kind = Packed, Length = 15, Decimals = 0 (timestamp without fractional seconds, internal type 在 MPC 中显示为 type P length 8 decimals 0)
  • Type Kind = Packed, Length = 21, Decimals = 7 (timestamp with fractional seconds, internal type 在 MPC 中显示为 type P,length 11 decimals 7)

以上描述规则在下面的截图里得到体现:

或者,您可以使用ABAP类型编辑器将一个 Data Element 分配给一个属性。在 ABAP 类型编辑器中,可以手动将 Category 设置为 Date,并在关联类型字段中输入数据元素名称。

当使用 RFC/BOR 导入或分配 DDIC 类型时,如果将结构分配给父构件(也就是 Entity Type 或复杂类型),则不会在 property 级别进行分配。

当使用从 DDIC 结构导入选项时,日期字段按以下方式处理:

  • 如果字段的域是 类型 TZNTSTMPS ,那么没有小数秒的时间戳,MPC的内部类型是类型 P, 长度 8, 小数点 0

  • 如果该字段的域类型为 TZNTSMPl,则 MPC 内部类型为 P 类型,长度为 11 位,小数位为 7

标签:MPC,Type,SEGW,码里,EDM,ABAP,internal,类型,type
来源: https://www.cnblogs.com/sap-jerry/p/16426445.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有