打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
SAP SEGW 事物码里的 Function Import
userphoto

2022.07.08 四川

关注

开放数据协议(OData)包括标准的 CRUD (创建、检索、更新和删除)操作,这些操作映射到 HTTP 方法的 POST、GET、PUT/MERGE 和 Delete 几类。

此外,OData还支持进一步的服务操作:Function Import,这些操作可以由HTTP方法GET或POST调用,用于处理不能映射到标准 CRUD 操作的任何内容。

通过在数据模型中创建 Function Import,可以在 service Builder 中实现此类额外的服务操作。

例如,您可以为以下自定义操作创建函数导入:

  • Work Item confirmation

  • 检查航班的可用性

虽然创建新的函数导入来调用自定义操作很简单,但是如果可以使用标准的 CRUD 操作来调用要使用的操作,那么就应该尽量避免函数导入的创建。也就是说,应该只为不能使用标准操作调用的自定义操作创建函数导入。

Function import 的例子如下:

Function Import 有下列属性需要维护:

  • Return Type Kind:

可以在 Complex Type 和 Entity Type 里选择,也可以选择不返回任何结果。这种情况下,可以理解成一个产生side effect 的函数执行,比如审批某个 work item.

  • Return Type: 输入希望函数导入返回的复杂类型或实体类型的名称。可以使用输入帮助从项目中选择现有的复杂类型或实体类型。如果输入帮助为空,则必须首先在项目中创建相关的复杂类型或实体类型。如果选择了不返回,此字段是不可编辑的。

  • Return Cardinality:

如果 Function Import 的返回类型是实体类型,并且:

如果实体类型的关键属性为核心类型 Edm.DateTimeEdm.DateTimeoffset 或 Edm.Guid,则返回基数选择成 0..1是不允许的,因为对于这些核心类型,初始 ABAP 值并不是一个有效的 edm 值,它可能会导致运行时异常。因此无法选择 0..1.

如果实体类型的关键属性不是Edm.DateTimeEdm.DateTimeoffset 或 Edm.Guid,并返回基数 0..1, 此时会显示一个警告消息。因为根据 OData 标准,0..1 不建议用于任何核心类型。

升级时,如果你的项目包含Function Import,它的返回类型是一个实体类型,核心类型Edm的关键字段。DateTime,电火花。DateTimeoffset或电火花。Guid,你会得到一条错误消息。

选择 HTTP 方法来调用函数导入。如果不选择HTTP方法,则必须使用GET或POST方法调用函数导入。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
python装饰器以及高级用法
[开源]一个全面、高效、可复用的Go语言工具函数库,300+常用函数
Mysql UDF
各种时间类型之间的转换函数
time date datetme timestamp 傻傻分不清楚
delphi用于时间操作的函数(1)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服