这是一个关于设置网关服务并使用Intellij IDE从Kotlin调用它的简单分步指南。
本博客分为两个部分:
软件版本:
SAP 52,SAPGUI版本750。使用了Intellij IDE的版本2018.1.3(最终版)。
执行SAP事务SEGW并点击"创建项目"按钮:
输入以"Z"开头的项目名称和说明,并保留所有其他字段的默认值。在"Package"字段中输入$TMP,好评返现图片,使其成为不带传输的本地对象。
单击"Continue"保存新项目。
下一步,为我们的项目创建新的数据模型。右击"数据模型"节点,选择菜单路径"导入>DDIC结构"。
输入:
名称:GLLineItemSumDDIC结构:FACV\ U RJET\ U WLI\ U 06保留所有其他字段为默认值
单击"下一步"按钮继续。
注意:注意此结构实际上是一个ABAP CDS视图,但可以与SE11中的常规视图一样引用。不如好好享受哈那的美好!
下一个屏幕显示此结构中包含的字段列表。选择除命令外的所有字段。
点击"下一步"按钮继续。
对于前3个字段(BELNR、BUKRS和GJAHR),勾选"是关键"复选框:
点击"完成"按钮继续。
点击"保存"按钮保存项目或(Ctrl+S)
点击"检查项目一致性"按钮确保没有错误:
点击"生成运行时对象"按钮:
类自动生成:
您可以保留默认名称,然后按"继续"按钮
点击"本地对象"按钮保存本地,没有传输:
这给出了新生成的类和对象的列表:
接下来,我们将注册和测试新的网关服务。展开"服务维护"节点:
如果您的"服务维护"文件夹下没有任何内容,京淘客,则表示您的SAP实例尚未设置SAP网关。你需要先设置这个。有很多好的博客都是通过设置完成的。
右键单击为您的系统定义的网关,在本例中为GW\u HUB并选择"注册":
对于"系统别名"弹出窗口,键入您的网关系统的系统别名。这个弹出窗口在750中有点奇怪,因为它不允许您从搜索帮助中进行选择,而是我必须键入它。你的系统可能也有同样的问题。典型的测试设置使用"LOCAL"别名,我们将在这里使用:
单击"Continue"按钮接受输入。这将带您进入以下屏幕:
单击屏幕中央的"本地对象"按钮,将包分配的默认值设置为"$TMP":
将此屏幕上的所有其他值保留为默认值,然后单击"继续"按钮。
返回主项目屏幕,双击网关节点GW\u HUB(或您的网关名称):
确认我们的新项目的状态现在为绿色:
接下来,我们要测试我们的新服务。右击网关节点GW\u HUB,选择"SAP Gateway Client"。
进入网关客户端后,点击"Execute"按钮:
我们还没有编写任何代码,但这将检查服务并确认所有工作是否正常:
单击"实体集"按钮:
双击"GLLineItemSumSet"行:
请求URI现在变为:
/sap/opu/odata/sap/ZFINANCE\u REPORT\u SRV/GLLineItemSumSet
再次单击"执行"按钮,您将获得以下结果:
我们没有但是实现了获取GL数据的代码,所以我们得到了上面的错误。现在让我们实现这个方法。关闭SAP网关客户端并返回到我们在SEGW中的项目
确保您的项目已保存。展开节点"Service Implementation>GLLineItemSumSet":
右击"GetEntitySet(Query)"节点,选择"Go to ABAP Workbench":
点击"Continue"按钮进入如下信息界面:
我们现在在ABAP类生成器中。
点击"DisplayChange"按钮进入编辑模式:
一直滚动在查找"GLLINEITEMSUMSET\u GET ENTITYSET"方法的方法列表的底部:
将光标放在具有"GLLINEITEMSUMSET\u GET ENTITYSET"方法的行中。
确保标题为"Filter"的右侧复选框未选中:
在工具栏中,单击右侧的第二个按钮,标题为"重定义方法":
在代码编辑器中,输入以下代码:
检查(Ctrl+F2),保存(Ctrl+S)并激活(Ctrl+F3)您的程序。
出现提示时,点击"回车"按钮接受以下内容:
点击后退箭头,直到您返回项目屏幕(SEGW):
我们现在可以测试我们的新逻辑和网关服务。再次,从您的项目导航到SAP网关客户端(从网关节点右键单击):
单击"实体集"按钮:
选择"GLLineItemSumSet"行,该行添加了以下URI:
单击"执行"按钮进行测试:
我们现在有了带有GL报告的OData结果:
要切换到JSON,请单击"添加URI"Option"按钮:
双击"$format=json"行:
这会将以下内容附加到URI:
/sap/opu/odata/sap/ZFINANCE\u REPORT\u SRV/GLLineItemSumSet?$format=json
再次点击"Execute"按钮查看json结果:
现在,我们可以从这个json复制url,大数据分析培训,得到如下信息:
。com:8000/sap/opu/odata/sap/ZFINANCE\u REPORT\u SRV/GLLineItemSumSet?$format=json
将此url粘贴到浏览器中将调用网关服务并获取我们的json数据:
以上显示在Chrome浏览器中,安装了JSONView扩展:
我们将使用此url在我们的Kotlin项目中获取json。
在Intellij IDE中,创建一个新项目:
选择Kotlin/JVM项目,点击"下一步":
给它一个项目名称,点击"完成"按钮。
展开你的项目源代码树,右键点击"src"文件夹,选择菜单路径"new>Kotlin File/Class":
创建一个Kotlin文件,给它一个名称:
暂时保留这个文件为空,我们将这样做稍后添加逻辑。
接下来,让我们使用Intellij中的一个工具来获取SAP的加密登录。
进入菜单路径"Tools">"HTTP Client">"Test RESTful Web Service":
在左下角,单击按钮"Generate Authorization Header":
当出现提示时,输入您的SAP用户名和密码,然后单击"确定":
这将在左下角生成一个授权字符串: