在基于SAP HANA Web的开发工作台上通过Ajax调用SAP Gateway Service

2020-09-06 04:59发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我已经通过SAP上的事务SEGW设置了网关服务。 我还通过SAP Cloud Platform试用了HANA基于Web的开发工作台。 在此HANA工作台中,我尝试使用xsjs文件从服务中获取数据。 这个xsjs文件充当我的网关服务和通过SAP Conversational AI构建的聊天机器人之间的中间层。 但是,尝试运行xsjs文件时遇到500错误。

我正在尝试通过对服务URL的ajax调用来调用我的网关服务。 我已经检查并可以确认网址正确。 我也尝试过删除ajax调用,并仅对测试响应进行硬编码,并且此操作有效,我的聊天机器人收到了此响应数据,因此,我的ajax调用一定存在问题。

  var输出; switch($。request.method){case $ .net.http.POST:var body;

         $ .ajax({
             网址:" myserviceurl",
             类型:" GET",
             数据类型:" json",
             成功:功能(oResult){
                 输出= {"回复":[{"类型":"文本","内容":"成功"}}],"对话":{"语言":" en","内存":{"用户":" 鲍勃"}}};
                 正文= JSON.stringify(输出);
                 $ .response.contentType ='application/json';
                 $ .response.setBody(body);
                 $ .response.status = $ .net.http.OK;},
             错误:功能(错误){
                 输出= {"回复":[{"类型":"文本","内容":"错误"}]],"对话":{"语言":" zh","内存":{"用户":" 鲍勃"}}};

                 正文= JSON.stringify(输出);
                 $ .response.contentType ='application/json';
                 $ .response.setBody(body);
                 $ .response.status = $ .net.http.OK;}});}  

我希望看到内容为"错误"或"成功"的响应,但我什么都没有,并且看到抛出500错误。

任何帮助将不胜感激。

亲切的问候,

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我已经通过SAP上的事务SEGW设置了网关服务。 我还通过SAP Cloud Platform试用了HANA基于Web的开发工作台。 在此HANA工作台中,我尝试使用xsjs文件从服务中获取数据。 这个xsjs文件充当我的网关服务和通过SAP Conversational AI构建的聊天机器人之间的中间层。 但是,尝试运行xsjs文件时遇到500错误。

我正在尝试通过对服务URL的ajax调用来调用我的网关服务。 我已经检查并可以确认网址正确。 我也尝试过删除ajax调用,并仅对测试响应进行硬编码,并且此操作有效,我的聊天机器人收到了此响应数据,因此,我的ajax调用一定存在问题。

  var输出; switch($。request.method){case $ .net.http.POST:var body;

         $ .ajax({
             网址:" myserviceurl",
             类型:" GET",
             数据类型:" json",
             成功:功能(oResult){
                 输出= {"回复":[{"类型":"文本","内容":"成功"}}],"对话":{"语言":" en","内存":{"用户":" 鲍勃"}}};
                 正文= JSON.stringify(输出);
                 $ .response.contentType ='application/json';
                 $ .response.setBody(body);
                 $ .response.status = $ .net.http.OK;},
             错误:功能(错误){
                 输出= {"回复":[{"类型":"文本","内容":"错误"}]],"对话":{"语言":" zh","内存":{"用户":" 鲍勃"}}};

                 正文= JSON.stringify(输出);
                 $ .response.contentType ='application/json';
                 $ .response.setBody(body);
                 $ .response.status = $ .net.http.OK;}});}  

我希望看到内容为"错误"或"成功"的响应,但我什么都没有,并且看到抛出500错误。

任何帮助将不胜感激。

亲切的问候,

付费偷看设置
发送
5条回答
SAP浪
1楼-- · 2020-09-06 05:07

您是否要在XSJS中使用$ .ajax? 如果是这样,那将行不通。 您应该使用xshttpdest以及$ .net.http.Client和$ .web.WebRequest API从XSJS进行出站http调用。

这里是一个示例:https://github.com/SAP/hana-xsa-opensap-hana7/blob/hana2_sps04_scp/xsjs/lib/sap/hana/democontent/epm/services/outboundTest.xsjs

2楼-- · 2020-09-06 05:20

感谢您的回复,托马斯,是的,这可以解释为什么ajax无法正常工作。 我将看看您的例子。 关于您的示例,我只有两个问题:

1。 您将读取目标指定为(" sap.hana.democontent.epm.services"," images.00"); 在我的系统中,我声明了一个gateway.xshttpdest文件,如下所示:

这是否意味着我的目的地是(" sap.hana.Content.FlightDeails.Server","网关")还是需要包含其他内容?

2。 我在您的images.00.xshttpdest中注意到,您已将authType设置为" none"。 我尝试调用的URL将需要用户名和密码,因此我需要在此文件中修改什么?

Climb_Ma
3楼-- · 2020-09-06 05:13

1。 目标位置的说明是文件夹结构。 根据您的屏幕快照,将其为FlightDetails.Server。 内容只是用户界面的一部分,而不是文件夹结构。 而且我不知道为什么要在其中包含sap.hana,因为它似乎根本不是文件夹结构的一部分。

2。 是的,您将必须在其中保留用于身份验证的凭据(如果您在屏幕截图中显示的是XS Classic,则最好通过XS Admin UI对其进行编辑)。 有关更多详细信息,请参见在线帮助。 https://help.sap.com/viewer/6b94445c94ae495c83a19646e7c3fd zh-cn/1aa9a3a2e3534c739028b06ed8345d6a.html

绿领巾童鞋
4楼-- · 2020-09-06 05:00

谢谢托马斯,我现在来看一看。 我刚遇到一个(希望是最终的)问题。 在我的XS管理工具中,我试图按照建议的方式修改HTTP目标,但是,我没有在管理工具中看到允许我查看/修改HTTP目标的部分。

小熊yu生菜
5楼-- · 2020-09-06 05:10

您需要通过按包装右侧的箭头导航到包装结构 名称。

一周热门 更多>