错误:通过XSJS服务问题调用服务层

2020-09-18 06:02发布

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

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


大家好,

我正在尝试通过XSJS服务调用服务层,但我遇到了以下错误:"' HttpClient.getResponse:无法从服务器获取响应:内部错误发生"连接到10.10。 10.11在阅读回复时丢失了"

我遵循了他的教程,该教程已上传到YouTube- https://www.youtube.com/ watch?v = rqOIWyTjceI (创建并部署SAPFiori应用7/8:演示服务层通过HANA XSJS连接到服务层)

以下是有关错误的一些事实:

我正在认真地尽我最大的努力来收集与这个奇怪的错误有关的所有证据,而在通过XSJS调用Hana服务层时,我一直在绊脚石。 因此,在调试/跟踪时,我发现了以下详细信息,这可能会帮助您提出一些建议,从而可以帮助我们作为一个团队来解决此问题。

截图1

截图3

getorder.txt

根据您的答复,我已添加名为getorder.txt的代码文件,请仔细查看

函数GetOrders(appRequest){
    
     var SESSIONID ="";
     var NODEID ="";
     var body;
 
    //SL凭证
     var loginInfo = {};
     loginInfo.UserName =用户名;
     loginInfo.Password = UserPass;
     loginInfo.CompanyDB = UserComp;
    
    //SL登录
     var response = slLib.SLLogin(JSON.stringify(loginInfo),null,null);
    
    //登录返回的B1SESSION和ROUTEID cookie
     用于(response.cookies中的var j){
         如果(response.cookies [j] .name ==" B1SESSION"){
             SESSIONID = response.cookies [j] .value;
            output.SessionID = SESSIONID;
         }
         否则,如果(response.cookies [j] .name ==" ROUTEID"){
             NODEID = response.cookies [j] .value;
             output.NodeID = NODEID;
         }
     }
    
    //获取批准请求信息
     响应= slLib.GetOrders(appRequest,SESSIONID,NODEID);
   
    //解析响应主体
     正文= JSON.parse(response.body.asString());
    
    //删除元数据
     删除body [" odata.metadata"];
    
    //将批准请求决策添加到批准请求主体
    //输出= body;
    
     output.DocEntry = body.DocEntry;
     output.Message ='呼叫服务层正常';
     output.Total = body.DocTotal;
     output.ralph = body.CardCode;
     output.kafhai = body.DocDate;
 
     setOutputMessage();
 }
 

(6.4 kB)

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

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


大家好,

我正在尝试通过XSJS服务调用服务层,但我遇到了以下错误:"' HttpClient.getResponse:无法从服务器获取响应:内部错误发生"连接到10.10。 10.11在阅读回复时丢失了"

我遵循了他的教程,该教程已上传到YouTube- https://www.youtube.com/ watch?v = rqOIWyTjceI (创建并部署SAPFiori应用7/8:演示服务层通过HANA XSJS连接到服务层)

以下是有关错误的一些事实:

我正在认真地尽我最大的努力来收集与这个奇怪的错误有关的所有证据,而在通过XSJS调用Hana服务层时,我一直在绊脚石。 因此,在调试/跟踪时,我发现了以下详细信息,这可能会帮助您提出一些建议,从而可以帮助我们作为一个团队来解决此问题。

截图1

截图3

getorder.txt

根据您的答复,我已添加名为getorder.txt的代码文件,请仔细查看

函数GetOrders(appRequest){
    
     var SESSIONID ="";
     var NODEID ="";
     var body;
 
    //SL凭证
     var loginInfo = {};
     loginInfo.UserName =用户名;
     loginInfo.Password = UserPass;
     loginInfo.CompanyDB = UserComp;
    
    //SL登录
     var response = slLib.SLLogin(JSON.stringify(loginInfo),null,null);
    
    //登录返回的B1SESSION和ROUTEID cookie
     用于(response.cookies中的var j){
         如果(response.cookies [j] .name ==" B1SESSION"){
             SESSIONID = response.cookies [j] .value;
            output.SessionID = SESSIONID;
         }
         否则,如果(response.cookies [j] .name ==" ROUTEID"){
             NODEID = response.cookies [j] .value;
             output.NodeID = NODEID;
         }
     }
    
    //获取批准请求信息
     响应= slLib.GetOrders(appRequest,SESSIONID,NODEID);
   
    //解析响应主体
     正文= JSON.parse(response.body.asString());
    
    //删除元数据
     删除body [" odata.metadata"];
    
    //将批准请求决策添加到批准请求主体
    //输出= body;
    
     output.DocEntry = body.DocEntry;
     output.Message ='呼叫服务层正常';
     output.Total = body.DocTotal;
     output.ralph = body.CardCode;
     output.kafhai = body.DocDate;
 
     setOutputMessage();
 }
 

(6.4 kB)
4条回答
樱桃小丸子0093
1楼-- · 2020-09-18 06:49

嗨阿比,

屏幕截图未附在您的问题上。 同样,如果您共享一部分代码以调用SL(也许与目标文件一起),则更容易理解原因。

SAP浪
2楼-- · 2020-09-18 06:58

感谢您的帮助!!! 我还将与我的网络团队讨论此问题。

SAP浪
3楼-- · 2020-09-18 06:52

嗨阿比,

很好的视频,希望大家以同样的方式描述他们的问题

目的地和信任库看起来还不错,我唯一困惑的是您的路径:

您将以下内容作为第一个参数传递给callServiceLayer函数:B1SLAddress +'Login'。

然后按如下方式创建您的请求:var req = new $ .net.http.Request(method,path);

等于:var req =新的$ .net.http.Request($。net.http.POST,B1SLAddress +'Login');

我不知道B1SLAddress等于什么,但是您的请求必须仅在内部具有Login(根据您的目标文件)。 因此它必须是这样的:

 var req =新的$ .net.http.Request($。net.http.POST,"登录"); 

那是我在您的代码中发现的唯一可疑的地方。

天桥码农
4楼-- · 2020-09-18 06:36

您所说的生产环境是什么意思? 它是具有其他地址的另一台服务器吗? 如果指定信任库,则目标文件中的地址必须指向信任库中的服务器。 如果要在具有不同网址和不同SSL证书(可能是自签名)的测试环境中进行开发和测试,则需要上传此特定证书,而不是从实时环境中上传。

一周热门 更多>