SAP HANA XS ODATA服务自定义错误响应

2020-09-06 15:18发布

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

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


嗨,

我对ODATA服务有一个快速问题( 我的云环境是Neo,因此是SAP HANA XS Classic )响应错误处理,例如

当我将定义声明为

service {" Schema"。" table"作为" ServiceIdentifierName"导航(//.....///)创建

使用" <>。xsjslib :: "}

我想以

 {状态:"错误,'错误:用户ID不能为空(第0行在位置1?)"} 

(而不是当前版本)

 {
     "错误":{
         " code":"",
         "信息": {
             " lang":" en-US",
             " value":"服务异常:[2]未捕获的异常:{\" status \":\" error \",\" message \":\"错误:<描述> \"}(第0行位于位置1?  )"
         }
     }
 } 

要达到这个目的,我在下面尝试了

validationRoutines.xsjslib->函数inputToJSON(status,info)

 {
  var responseBody = new Object();
    responseBody [" status"] =状态;
    responseBody [" message"] = info.message;
     返回JSON.stringify(responseBody);
      //返回responseBody.toString();
 }
 inputToJSON.prototype = new Error();} 

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 postvalidationExit(param){try {if(condition match)throw'x';} catch(x){var response = validateRoutines.inputToJSON(" error",x.toString());
     引发响应;}} 

相同的逻辑与XSJS(使用的$ .response.setBody( validationRoutines.inputToJSON(" error",x.toString())))完美配合 >

等待快速而准确的答案,

Vinay

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

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


嗨,

我对ODATA服务有一个快速问题( 我的云环境是Neo,因此是SAP HANA XS Classic )响应错误处理,例如

当我将定义声明为

service {" Schema"。" table"作为" ServiceIdentifierName"导航(//.....///)创建

使用" <>。xsjslib :: "}

我想以

 {状态:"错误,'错误:用户ID不能为空(第0行在位置1?)"} 

(而不是当前版本)

 {
     "错误":{
         " code":"",
         "信息": {
             " lang":" en-US",
             " value":"服务异常:[2]未捕获的异常:{\" status \":\" error \",\" message \":\"错误:<描述> \"}(第0行位于位置1?  )"
         }
     }
 } 

要达到这个目的,我在下面尝试了

validationRoutines.xsjslib->函数inputToJSON(status,info)

 {
  var responseBody = new Object();
    responseBody [" status"] =状态;
    responseBody [" message"] = info.message;
     返回JSON.stringify(responseBody);
      //返回responseBody.toString();
 }
 inputToJSON.prototype = new Error();} 

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 postvalidationExit(param){try {if(condition match)throw'x';} catch(x){var response = validateRoutines.inputToJSON(" error",x.toString());
     引发响应;}} 

相同的逻辑与XSJS(使用的$ .response.setBody( validationRoutines.inputToJSON(" error",x.toString())))完美配合 >

等待快速而准确的答案,

Vinay

付费偷看设置
发送
2条回答
歪着头看世界
1楼-- · 2020-09-06 16:08

在XSJS服务中,您可以自由定义响应。 在OData写出口中,您并非没有空,因为该出口由" OData"框架调用。 由于界面不允许您设置任何返回值(例如错误消息),因此您只能选择抛出某些内容。 框架处理引发的值并产生您看到的结果。

我就是这么说的。

一周热门 更多>