FavoriteLoading
1

通过几篇文章入门gateway(1)

前一阵自己看了看gateway相关的视频自学了一下。然后自己练习练习,联系的过程中也遇到了一些问题。深深的体会到了看视频看着很懂,但是自己做起来却不一样。所以在这里发表一篇文章有助于新接触gateway的同学入门。(可能一些大神看起来会比较啰嗦 但是越是这种啰嗦 对于刚接触的新人越好)

首先gateway是干嘛用的:

可能有的同学知道sap现在一个很重要的产品事sap Fiori。Fiori这个东西不但可以在电脑端使用而且手机端平板电脑都可以用。它不同于sap gui用户需要输入一个transaction code去执行他想要的操作。Fiori 通过浏览器打开,他的界面将会是一个个分组(Group),每个分组下面有几个磁贴(Tile)。用户直接点击磁贴就相当于执行了transaction code了。 在sap系统配置中可以把一个磁贴配置为一个transaction code。也可以把一个磁贴配置成调用一个前端程序(这里是我的一个知识盲点,前几天和前端的同事一起做一个打卡签到的小应用,但是这里前端怎么实现还在学习中。还没学明白所以这里就不多解释,怕解释错了,嘿嘿嘿)。这个前端程序可以通过按钮或者别的输入设备来调用gateway 服务。然后gateway可以进行对数据库表的增删改查或者调用BAPI之类的操作。如下图:

 

大体就是这么一个意思。然后接下来介绍一下开发gateway很常用的两个transaction:

SEGW 用于创建gateway工程以及传入data module

/IWFND/MAINT_SERVICE 添加gateway 服务

大家学习的时候最好把它放到首页的目录里 特别是第二个那么长很难记。

在练习之前我们先通过SE11创建一个数据库表如下:

我的这个表里有几条测试数据但是不是很重要大家可以随意加一两条:

然后接下来我们可以正式的去练习gateway了。

首先我们通过第一个transaction code SEGW 来创建一个gateway 工程.

Package 这里我们练习可以填本地local package.

工程创建完之后大概是这样的:

这里有一个data model 很重要 他的意思是数据模型,也就是说前端调用一次服务你要返回给前端一个什么样的数据,或者前端想要创建一条数据,它需要提供一个什么格式的内容。Data model 有多种创建方式,现在我们先用一种最简单的方式DDIC,来自数据字典。

右键点击Data Model 选择Import - DDIC Structure。

然后我们给我们这个结构起一个名字 例如 Student,ABAP structure 填我们刚刚创建的数据库表 ZBRIAN_STUDENT。在然后选择Next。

在下一页中系统读取到了这个table的所有字段,他又问我们一遍这里你都需要哪些字段?我们除了MANDT 以外都选中,因为MANDT只是client号并没有实际意义。再然后 下一步。

再下一页中系统问我们哪个字段是key 我们把STUDNETID选中。这样前台调用读书的服务时只需要把key字段的值给我们gateway就好了。

最后我们点击Finish.

我们会发现这里Data Model下面会发生变化,Entity Types下面会多出来Student, Entity Sets下面会多出来StudentSet。

到这里我们已经成功一般了,接下来我们要进行两步操作 1. 保存project 2. generate runtime object

这里如果你是保存的本地package 不会问你的request了 但是如果你选择了package 你需要放到一个request里:

Generate runtime object 也就是生成运行时对象的意思,他会为你创建四个类:

这四个中我们之后会经常用 Class ZCL_ZSTUDENT_DDIC_DPC_EXT。 这个是什么意思呢。DPC是Data Provider Class 的缩写也就是说他是用来给咱们提供数据的。

生成完运行时对象之后右侧会提示一堆成功的消息。

这个时候我们需要用我们第二个transaction 去添加服务。如果系统配置得好的话下面有个文件夹‘Service Maintenance’里面会有个东西,你可以直接右键点击那个东西添加服务。但是很不幸我的系统里没有,我也不太懂怎么配置,无法给大家演示。但是这里不要担心 我们执行我们第二个transaction 也能达到一样的效果。

我们执行transaction /IWFND/MAINT_SERVICE。 (注意,这里我们一定要在前面加上 /n 或者 /o  例如 /n/IWFND/MAINT_SERVICE 。要不然系统会把 这个transaction 最前面的 / 当作转义符)。

我们执行之后大概是这个样子:

我们点击 Add Service 按钮

我们在System Alias中填入 LOCAL. 在Technical Service Name 中填入 ZSTUDENT* 然后点击回车, 下面就会出先我们创建的gateway 工程,我们选中它然后点击Add Selected Services。

这里我们点击确定:

然后我们会发现当前页面下 刚刚的工程消失了,我们点击返回,返回到上一个界面。然后点击Filter 筛选按钮:

填入ZSTUDNET* 然后点击对勾:

经过了筛选 现在页面里的服务就少了很多。我们能轻易找到自己的服务了。

点击左下角的SAP Gateway Client:

然后我们会进入另一个界面,这个界面是用来模拟gateway服务的,也就是说我们可以通过这个界面来模拟前端调用服务对我们的gateway进行测试。

在这里我们可以直接点击执行。如果我们做的都正确这里将会成功:

结果是绿颜色的200号 表示我们成功了。

如果这一步我们成功了,那么代表我们的gateway练习已经成功了一大半了。

这篇文章先写到这里。在下一篇文章里我们将会说说如何通过gateway服务去增删改查数据。

以上。