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

2020-09-18 06:02发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中) 大家好, ...

         点击此处--->   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条回答
SAP浪
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,"登录"); 

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

一周热门 更多>