【HANA系列】【第五篇】SAP HANA XS的JavaScript API详解

前言部分
大家可以关注我的公众号,公众号里的排版更好,阅读更舒适。
正文部分
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详解的更多相关文章
- 【HANA系列】SAP HANA XS的JavaScript API详解
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA XS的Java ...
- 【HANA系列】【第二篇】SAP HANA XS使用JavaScript编程详解
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列][第二篇]SAP HANA XS ...
- 【HANA系列】SAP HANA XS使用JavaScript编程详解
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA XS使用Jav ...
- Mysql高手系列 - 第10篇:常用的几十个函数详解,收藏慢慢看
这是Mysql系列第10篇. 环境:mysql5.7.25,cmd命令中进行演示. MySQL 数值型函数 函数名称 作 用 abs 求绝对值 sqrt 求二次方根 mod 求余数 ceil 和 ce ...
- 【HANA系列】【第四篇】SAP HANA XS使用服务器JavaScript Libraries详解
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列][第四篇]SAP HANA XS ...
- 【HANA系列】SAP HANA XS使用服务器JavaScript Libraries详解
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA XS使用服务器 ...
- 【公众号系列】超详细SAP HANA JOB全解析
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[公众号系列]超详细SAP HANA JOB全解 ...
- 如何在云端部署SAP HANA实战, Azure 上的 SAP HANA(大型实例)概述和体系结构
什么是 Azure 上的 SAP HANA(大型实例)? Azure 上的 SAP HANA(大型实例)是一种针对 Azure 的独特解决方案. 除了提供 Azure 虚拟机以用于部署和运行 SAP ...
- 前端工程师技能之photoshop巧用系列第五篇——雪碧图
× 目录 [1]定义 [2]应用场景 [3]合并[4]实现[5]维护 前面的话 前面已经介绍过,描述性图片最终要合并为雪碧图.本文是photoshop巧用系列第五篇——雪碧图 定义 css雪碧图(sp ...
随机推荐
- HDU - 4992 Primitive Roots (原根)
模板题,可用于求一个数的所有原根. #include<bits/stdc++.h> using namespace std; typedef long long ll; ,inf=0x3f ...
- windows10家庭版远程桌面连接报错:CredSSP加密oracle修正
转 原地址:https://www.cnblogs.com/lindajia/p/9021082.html Windows10远程桌面连接 报错信息 : 网上找到方法 但是奈何是 "Win1 ...
- PHP swoole TCP服务端和客户端
服务端 <?php $server = ,SWOOLE_PROCESS,SWOOLE_SOCK_TCP); $server->set(array( , )); $server->on ...
- jquery实现在光标位置(input、textarea)插入内容的方法
通过扫码枪扫码.按钮点击事件在光标处插入文本,这是前台js常用的功能.但是在input输入框和textarea文本框定位光标,插入数据是有点不同的 首先最简单的,适用于input输入框的方法 HTML ...
- qt一些函数
sleep(n); 休息ns msleep(1000); 休息1000毫秒 usleep(1000000); //休息n微妙
- pytorch tensor 维度理解.md
torch.randn torch.randn(*sizes, out=None) → Tensor(张量) 返回一个张量,包含了从标准正态分布(均值为0,方差为 1)中抽取一组随机数,形状由可变参数 ...
- 在py文件中运行flask cli命令
主要是打包成exe之后,用于运行命令行. 命令行是 @app.cli.command() def mock(): ... 这样定义的 本来是用flask mock 这样方式运行的 打包后,希望用 ap ...
- ngx_http_auth_request自用
server { listen 80; server_name www.php12.cn php12.mama1314.com; root /var/www/shf; location / { ind ...
- C++中void和void*指针的含义 (指针类型的含义)
转载自:http://blog.csdn.net/lee_shuai 指针有两个属性:指向变量/对象的地址和长度,但是指针只存储地址,长度则取决于指针的类型:编译器根据指针的类型从指针指向的地址向后寻 ...
- python递归获取目录下指定文件
获取一个目录下所有指定格式的文件是实际生产中常见需求. import os #递归获取一个目录下所有的指定格式的文件 def get_jsonfile(path,file_list): dir_lis ...