云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

香港服务器_如何注册企业邮箱账号_怎么买

小七 141 0

美国云计算_什么是_大数据需要学习什么

随着2008版SAP云平台ABAP环境的发布,SAP为ABAP RESTful应用程序编程模型(RAP)发布了更严格的业务对象(BO)契约检查,大数据存储技术有哪些,以帮助您使RAP实现一致、用户友好,并与其他RAP功能兼容。这些契约检查确保客户端和提供者都可以依赖于任何事务请求的一致性和正确性。不符合合同的请求可能会导致由这些检查触发的短转储。

对于新的实现代码,RAP框架将不允许您创建触发短转储的不正确请求。这将通过编译期间的语法错误来确保。

但是,如果在升级之前代码中已经有错误的请求,那么在升级到ABAP environment 2008之后的运行时执行这些请求将引发一个短转储。

在下面的示例中,您将找到解释和解决方案,为即将进行的合同检查准备代码,甚至在升级之前,从而帮助您防止升级后出现问题。

通过EML创建和更新只读字段

不允许通过外部EML请求修改(创建或更新)只读字段,来自业务对象外部(例如,来自一个独立的ABAP类或另一个BO)。新的ABAP语法检查可防止编译此类修改调用。但是,如果这些EML请求已经在您的代码中并且在运行时执行,则会引发一个短转储。

检查这些字段是否真的是只读的。在行为定义中将字段定义为只读意味着不能从业务对象外部对其进行修改。如果行为定义中的只读属性正确,请从BO external ABAP代码中的EML请求中删除字段。对于内部修改请求,在EML请求中添加本地模式的添加项,以指示BO内部EML调用。语法:

注意:RAP运行时框架忽略OData modify调用中创建或更新的只读字段。其他字段仍然可以成功处理。

有关更多信息,返利,请参阅在字段级别定义静态特性控制。

在后期保存阶段执行修改调用

RAP运行时不允许在保存序列中的不返回点之后进行修改调用。尽管在保存序列中的"完成"和"保存前检查"阶段仍然可以对业务对象进行更改,但不能在"调整\编号"和"保存"阶段更改BO。在保存前检查后,便宜的云服务器,业务对象的状态必须准备好在数据库中持久化,并且必须确保此状态不再更改。因此,禁止在后期保存阶段进行修改调用。

如果您在后期保存阶段使用了修改调用,RAP运行时框架将为这些修改调用引发一个短转储。

请确保您的BO在检查\u BEFORE \u save阶段后处于一致状态,并从后期保存阶段删除任何修改请求。BO的最终更改必须在FINALIZE方法中完成,可以是直接更改,也可以在保存时确定。

如果使用延迟编号,则通过填充更改参数MAPPED来指定最终键值。您不需要修改请求来设置最终的键值。在SAVE序列中的实际SAVE方法中,唯一允许的是将业务对象的当前状态保存到数据库中。不允许更改BO。

有关保存序列编排的更多信息,请参阅保存序列。

使用确定和验证

自ABAP environment 2008起,确定和验证的运行时将由新的确定和验证机器(DVM)管理。这台机器为确定和验证提供了新的选项,例如新的触发条件。作为扩大范围的回报,您必须确保一些新规则适用于确定和验证的实现:

使用授权控制

标准操作的动态特性控制通过相应操作上的路径表达式显示在OData服务元数据中。在abapenvironment2008中,这些使用者提示还将反映授权控制。这意味着,如果为业务对象定义授权控制,则与授权相关的实体集将接收路径描述,而不是关于其更新或删除能力的静态信息。此外,实体类型的属性列表中还包含了相应的属性

如果您已经使用了授权控制,那么升级到ABAP environment 2008后,您的业务服务的OData服务元数据会有所不同

升级前:

由于OData中二进制表达式的默认值为"true",因此静态省略了有关实体可创建、可更新和可删除的信息。此信息中不反映授权控制。

升级后:

授权动态控制业务对象实体的事实由指向方法控制属性的路径表达式反映。此属性列在实体类型的属性列表中。创建操作的动态授权控制不可用。由于默认为"true",此处省略createable的注解

对于Fiori元素ui以外的其他服务使用者,如果路径表达式的计算不正确,这可能会导致问题。

请确保业务服务使用者正确解释标准操作上的方法控件。

使用带有参数的操作或函数

从ABAP environment 2008开始,RAP运行时框架严格检查操作和函数的输入参数长度。此检查将拒绝任何传入的参数超过定义长度的操作执行请求。

参数的定义长度可以在OData服务元数据中看到:

如果执行参数超过定义长度的操作或函数,云服务器一年多少钱,则升级后可能会遇到问题。而在升级之前,这些请求被接受,并且参数在相应的字符数之后被剪切,升级之后,超过参数长度的请求将被拒绝。

检查您的服务使用者是否有带参数的操作和功能。如果使用的参数长度超过定义的长度,请评估是否可以缩短参数以使其与参数定义对齐。

如果无法缩短参数值,请在行为定义中修改操作/函数定义中参数类型的长度,大数据是干嘛的,或者在您定义参数类型的地方。