在这个博客里,我将介绍作为SAP NetWeaver Gateway service Builder SP09开发的一部分而开发的服务扩展性概念。
动机:服务扩展性概念背后的动机是为原始服务和新服务(通过重新定义原始服务)。这将使用户能够根据要求重新定义特定服务,但仍然可以使用原始服务的URL访问重新定义的新服务。
前提条件:
IW\ U BEP 200 SP09
分步程序
以下是扩展特定服务的分步程序。我将重新定义一个原始服务为一个新的重新定义的服务,然后展示服务扩展功能。
创建一个"带SAP注解的服务"或"带词汇表注解的服务"服务
通过重新定义原始服务创建一个新服务
在生成运行时扩展服务工件
检查服务URL
创建"带SAP注解的服务"或"带词汇表注解的服务"服务
3。通过右键单击"数据模型"并选择"创建实体",为该项目创建几个实体。或者您也可以右键单击"数据模型"并选择"导入"机制来导入数据源。在本例中,2018世界人工智能大会,我将导入一个RFC。
4。我现在有如下服务。我们称之为"家长"服务。通过单击生成运行时工件。在下面的对话框中单击"继续"。
将生成此"父"服务的运行时工件。
通过重新定义原始服务来创建新服务
我们称之为"子"服务。
2。右击数据模型,选择重定义->OData服务(GW)。
3。在下面的向导中,输入"父"服务的值并单击"下一步"。
4。在下一个向导中选择"父"服务的实体,点击"完成"。
5。右键单击数据模型,选择创建->实体类型,将另一个实体添加到此服务中。
添加此实体的属性。(我尽量使实体和属性尽可能简单)。"child"项目现在有两个实体,如下所示。"子"项目现在看起来如下:
"父"服务出现在Model References文件夹下。
在生成运行时工件时扩展服务
1。通过单击为这个"子"服务生成运行时工件。将打开以下对话框。
默认情况下未选中"服务扩展"下的覆盖基本/扩展服务。一旦勾选,我们将得到警告"基本服务将不可访问",技术服务名称和服务版本字段将填充步骤3中输入的"父"服务的值
(如果勾选覆盖基本/扩展服务复选框,服务扩展性概念将发挥作用。"父"服务(Z\u SERVICEEXT\u parent)的服务URL现在将被重新定向(即获取服务详细信息)到"子"服务(Z\u SERVICEEXT\u child)。
2。我们现在将在SAP NetWeaver网关集线器系统中注册此服务。点击Service Maintenance,选择Hub系统,点击Register.
点击Ok,在下一个对话框中输入系统别名。在随后的对话框中输入包,然后单击"确定"。
3。按照上述步骤注册"父"服务。既然我们已经注册了"父"和"子"服务,我们就可以检查服务URL了。在Gateway Client窗口中,输入下图所示的详细信息并执行以查看服务详细信息。
现在,在"父"服务的元数据中,我们可以看到与"子"服务关联的两个实体。这是因为"父"服务的服务URL被重定向到"子"服务,因为"子"服务已经扩展了"父"服务。
可以使用"父"服务的URL访问"父"服务和"子"服务。
希望这篇文章能帮助您对"父"服务的可扩展性概念有一个了解服务建设者
嗨Satyabrata,
优秀的东西
我会努力做到
谢谢,
Syam
你好Satyabrata,大数据行业报告,
非常感谢分享信息
问候,
Ashwin
嗨Satya,
很好的博客。很高兴知道,现在OData用户可以使用基本服务URL访问扩展服务,他们不必更改现有应用程序中的URL,大数据工具有哪些,我已经尝试了与您在IW\u BEP SP08上建议的相同的方法,但是我没有看到从基URI(父级)访问扩展模型的任何可访问性,大数据主要学什么,即使我在SP09上也尝试了同样的方法,但仍然是一样的。
如果我访问基本URI,在重新定义子服务后,我只能得到基本模型(父)而不能得到扩展模型。
因为我们在智能开关单元上有IW-BEP SP09,网关是作为一个独立的集线器安装。
如果我丢失了,请通知我任何。谢谢
Rajesh
你好Satyabrata,淘客qq群,
很棒的博客,很有帮助,谢谢!
只是出于兴趣,一旦您已经生成了运行时工件,是否有任何方法可以做到这一点?我发现我不得不删除项目并重新创建它,以便"覆盖基本/扩展服务"。
干杯,
布拉德
嗨,萨蒂布拉塔,
这是一个非常好的信息,但是你没有提到GET\u ENTITYSET或GET\u ENTITY方法。
我试着用这个方法来扩展标准服务MM\u PUR\u PO\u MAINTAIN.
我创建了一个名为ZMM\u PO\u MAINTAIN\u EXT的新服务,并向其中添加一个实体。
生成服务后,我可以看到可以从标准服务调用我的新实体。这与您前面提到的完全一样。
但是,当我试图在浏览器中调用新实体时,出现了一个错误,说明GET\u ENTITYSET尚未维护。
如何为我的新实体正确创建这些方法(GET\u ENTITYSET和GET\u ENTITY)?