公众号:SAP Technical
本文作者: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=?', , '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', , 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的用法,更多了解,请关注我的公众号。

【HANA系列】【第五篇】SAP HANA XS的JavaScript API详解的更多相关文章

  1. 【HANA系列】SAP HANA XS的JavaScript API详解

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA XS的Java ...

  2. 【HANA系列】【第二篇】SAP HANA XS使用JavaScript编程详解

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列][第二篇]SAP HANA XS ...

  3. 【HANA系列】SAP HANA XS使用JavaScript编程详解

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA XS使用Jav ...

  4. Mysql高手系列 - 第10篇:常用的几十个函数详解,收藏慢慢看

    这是Mysql系列第10篇. 环境:mysql5.7.25,cmd命令中进行演示. MySQL 数值型函数 函数名称 作 用 abs 求绝对值 sqrt 求二次方根 mod 求余数 ceil 和 ce ...

  5. 【HANA系列】【第四篇】SAP HANA XS使用服务器JavaScript Libraries详解

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列][第四篇]SAP HANA XS ...

  6. 【HANA系列】SAP HANA XS使用服务器JavaScript Libraries详解

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA XS使用服务器 ...

  7. 【公众号系列】超详细SAP HANA JOB全解析

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[公众号系列]超详细SAP HANA JOB全解 ...

  8. 如何在云端部署SAP HANA实战, Azure 上的 SAP HANA(大型实例)概述和体系结构

    什么是 Azure 上的 SAP HANA(大型实例)? Azure 上的 SAP HANA(大型实例)是一种针对 Azure 的独特解决方案. 除了提供 Azure 虚拟机以用于部署和运行 SAP ...

  9. 前端工程师技能之photoshop巧用系列第五篇——雪碧图

    × 目录 [1]定义 [2]应用场景 [3]合并[4]实现[5]维护 前面的话 前面已经介绍过,描述性图片最终要合并为雪碧图.本文是photoshop巧用系列第五篇——雪碧图 定义 css雪碧图(sp ...

随机推荐

  1. 函数参数-undefined-默认值-可选参数

    1.函数参数为undefined时,触发参数默认值 2.实参数量 < 形参数量,多余的形参值为 underfined 3.设置可选参数 1)JS中: 检测 undefined :function ...

  2. 用memcache来同步session

    用memcache来同步session是还是不错的,当然也可以通过redis来保存session,可以php开启并将Session存储到Redis缓存,下面是设置利用memcache在web集群中同步 ...

  3. Acwing-252-树(点分治)

    链接: https://www.acwing.com/problem/content/254/ 题意: 给定一个有N个点(编号0,1,-,N-1)的树,每条边都有一个权值(不超过1000). 树上两个 ...

  4. 交换机配置——VTP管理交换机的VLAN配置

    一.实验目的:将S1配置成VTP-Server,S2配置成VTP-Transparent,S3配置成VTP-Client,S4配置成VTP-Client 二.拓扑图如下 三.具体步骤: (1)S1交换 ...

  5. 生成CA免费证书

    环境 OpenSSL 1.0.2k FireFox 60.0 64位 Chrome 66.0.3359.181 (正式版本)(32位) Internet Explorer 11.2248.14393. ...

  6. typedef简化

    /*** mystrcat: ***/ #include<stdio.h> #include<string.h> char *mystrcat(char *s1,char *s ...

  7. Linux Shell脚本,删除旧文件,保留最新的几个文件

    删除某一目录下文件,只保留最新的几个 #!/bin/bash #保留文件数 ReservedNum= FileDir=/home/dev/saas_test/testcases/report/html ...

  8. linux 查看内网IP和外网IP

    centos7 查看内网的ip,使用ifconfig 或在后面加上参数,都可以查看内网的ip,下面的10.105.33.17 即是内网的ip [root@VM_33_17_centos ~]#ifco ...

  9. C与C++ 中 struct和typedef struct

    总体分两块 1 首先://注意在C和C++里不同在C中定义一个结构体类型要用typedef: typedef struct Student { int a; }Stu; 于是在声明变量的时候就可:St ...

  10. (转)linux中wget未找到命令

    转:https://blog.csdn.net/djj_alice/article/details/80407769 在装数据库的时候发现无法使用wget命令,提示未找到命令,如图所示 那是因为没有安 ...