zoukankan      html  css  js  c++  java
  • 【HANA系列】【第五篇】SAP HANA XS的JavaScript API详解

    公众号:matinal
    本文作者:matinal
     

    前言部分

    大家可以关注我的公众号,公众号里的排版更好,阅读更舒适。

    正文部分

    SAP HANA XS使用服务器端JavaScript API

    SAP HANA扩展应用程序服务(SAP HANA XS)提供了一组服务器端JavaScript应用程序编程接口(API),可配置应用程序与SAP HANA进行交互。

    SAP HANA XS JavaScript Reference列出了在应用程序和SAP HANA之间编程交互时可用的所有功能。例如,可以使用数据库API从应用程序内部调用SQL语句,或使用请求处理API访问SAP HANA数据的当前HTTP请求的详细信息.AP HANA XS包含以下服务器端JavaScript API集:Database、Outbound connectivity、Request processing、Session、Job Schedule、Security、Trace、Utilities、XS Data Services、XS Procedures这里不再详细介绍每一个API的用处,想详细了解的,可加HANA讨论群。

    简单说几个如下

    1、Database API

    SAP HANA XS数据库API($ .hdb)提供了能够简单方便地访问数据库的工具。

    $ .hdb命名空间旨在替代旧的$ .db命名空间。 由于$ .hdb和$ .db API使用不同的数据库连接,因此避免在单个http请求中使用这两个API,例如更新相同的表,可能会导致死锁等等等这样的问题。

    那么,$.hdb有哪些可用选项呢

    $ .hdb.Connection:与SAP HANA数据库建立连接。

    $ .hdb.ProcedureResult:表示对SAP HANA数据库的存储过程调用的结果。

    $ .hdb.ResultSet:表示数据库查询的结果。

    举例前,说明一点:默认情况下,自动提交模式被禁用,这意味着所有的数据库更改都必须被明确的提交。

    ​
    var connection = $.hdb.getConnection();
    connection.executeUpdate('UPDATE "DB_EXAMPLE"."ICECREAM" SET QUANTITY=? WHERE FLAVOR=?', 9, 'CHOCOLATE');
    connection.commit();
    
    ​

    以下SAP HANA XS数据库API的使用示例显示了如何建立与SAP HANA的连接并从指定的过程调用返回结果集。请看存储过程参数部分:

    ​
    PROCEDURE 'DB_EXAMPLE'.icecream.shop::sell(
     IN flavor VARCHAR,
     IN quantity INTEGER,
     IN payment DECIMAL,
     OUT change DECIMAL) 
    var fnSell = connection.loadProcedure('DB_EXAMPLE', 'icecream.shop::sell');
    var result = fnSell('CHOCOLATE', 3, 30.0);
    var change = result['change'];
    var resultSets = result['$resultSets'];
    var params;
    for (var outputParam in result) {
     params += outputParam + ' ';
    }
    
    ​

    这样可用访问结果集,最好访问结果集的JSON格式,还要注意一点$ resultSets不可枚举。

    2、JOB API

    在SAP HANA XS中,通过.xsjob文件创建计划作业,该文件是提交(并激活)SAP HANA存储库的设计时文件。 .xsjob文件可用于定义在后台运行的循环任务; 作业计划API允许开发人员从这些作业中添加和删除计划。 作业计划API提供以下工具:
    $ .jobs.Job:表示预定的XS作业。

    $ .jobs.JobLog:提供对计划作业的日志条目的访问。

    $ .jobs.JobSchedules:可以控制XS作业的计划。

    作为XS作业的一部分,不可能调用$ .request和$ .response对象。XS作业API $ .jobs.Job能够在其中定义的作业添加计划(并从中删除计划)一个.xsjob文件。

    举个栗子,来说明,服务器端JavaScript如何使用作业计划API向现有作业添加计划并从现有作业中删除计划。

    ​
    var myjob = new $.jobs.Job({uri:"myJob.xsjob", sqlcc:"sqlcc/otheruser.xssqlcc"});
    var id = myjob.schedules.add({
     description: "Added at runtime, run every 10 minutes",
     xscron: "* * * * * */10 0",
     parameter: {
     a: "c"
     }
    });
    
    myjob.schedules.delete({id: id});
    
    ​

    如果URI中引用的XS作业文件与被调用的XS JavaScript或SQLScript函数不在同一个包中,则必须将完整的包路径添加到上述示例第1行中所示的URI中指定的XS作业文件 ,例如</ path / to / package>> MyXSjob.xsjob。

    此外,sqlcc / otheruser.xssqlcc中定义的SQL连接用于修改作业; 它不用于执行myJob.xsjob中指定的作业。要了解xscron作业调度程序所需的类似cron的语法,我就来简单讲解一下这里的参数,其实很简单啦,下面就和matinal一起解析这些参数。

    比如:2013 * * fri 12 0 0

    这样写就代表:2013年每周五12点执行此JOB。是不是很简单

    好了,本文就暂时讲解这两种SAP HANA XS的JavaScript API的用法,更多了解,请关注我的公众号。

  • 相关阅读:
    与 字符串 相关的操作 -- lua语言实现(带有浓厚的 lua 语法特性)
    03-BFC
    11-canvas
    JavaScript知识点 思维导图
    文件系统 函数
    Meta标签大全
    PHP 快速排序
    天气预报API开发
    Zend Studio XDebug调试配置
    启程
  • 原文地址:https://www.cnblogs.com/SAPmatinal/p/11184390.html
Copyright © 2011-2022 走看看