服务层-调用过程或从数据库中查看

2020-09-15 02:54发布

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

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


专家们,

假设我有一个SAP Business One Hana版本的附加组件,为此,我使用UI API和服务层。 如果我需要从hana数据库中调用过程或视图,正确的方法是什么?

更新:

我在服务层文档中发现"不支持业务对象RecordSet(直接SQL)。"

然后我不确定,是否在这种情况下在服务层上有某种方法,或者我是否需要在Hana XSJS上创建一个调用视图或过程的函数。

感谢您的关注。

亲切的问候,

迭戈兄弟

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

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


专家们,

假设我有一个SAP Business One Hana版本的附加组件,为此,我使用UI API和服务层。 如果我需要从hana数据库中调用过程或视图,正确的方法是什么?

更新:

我在服务层文档中发现"不支持业务对象RecordSet(直接SQL)。"

然后我不确定,是否在这种情况下在服务层上有某种方法,或者我是否需要在Hana XSJS上创建一个调用视图或过程的函数。

感谢您的关注。

亲切的问候,

迭戈兄弟

付费偷看设置
发送
2条回答
Nir深蓝
1楼 · 2020-09-15 03:28.采纳回答

是的,您需要创建一个XSJS来调用过程。 这是一个例子。

让我们说我运行此SQL创建一个过程。

/*为过程结果创建表类型*/
 按表创建类型" SBODEMOUS"。" BPDETAILS"(
             " CardCode" NVARCHAR(15),
             " CardName" NVARCHAR(100),
             " CardType" CHAR(1),
             "平衡" DECIMAL
 );

/*创建过程*/
 创建过程GETBPBYTYPE(输入卡类型CHAR(1),输出bpListDetails" SBODEMOUS"。" BPDETAILS")
  语言SQLSCRIPT
  读取SQL DATA AS
  开始
    bpListDetails =
     选择T0。" CardCode",T0。" CardName",T0。" CardType",T0。"余额"
     从OCRD T0
     在T0。" CardType" =:cardtype;
  END; 

我可以从XSJS调用此过程:

函数showData(bpType){
     $ .response.contentType =" application/json";
    
     var connection = $ .hdb.getConnection();
    
    //指定模式的加载过程
     var getBpByTypeProc = connection.loadProcedure('SBODEMOUS','GETBPBYTYPE');

    //getBpByTypeProc对象充当该过程的代理
     var结果= getBpByTypeProc(bpType);

    //建立回应
     $ .response.status = $ .net.http.OK;
     $ .response.contentType =" application/json";
     $ .response.setBody(JSON.stringify(results));

     connection.close();
 }

 var bpType = $ .request.parameters.get(" bpType");

 showData(bpType); 

xsjs调用示例:

http://:8000//getBp_proc.xsjs?bpType=C