公众号: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. input和textarea的区别

    区别: <textarea>标签是成对的,有结束标签进行闭合,标签的内容写在标签对中间:<input>是单个标签,标签的内容通过 value 属性设置: <textare ...

  2. Java 解析自定义XML文件

    这里我用 maven项目 作为 演示 配置pom.xml文件 完整的pom.xml文件信息 <?xml version="1.0" encoding="UTF-8& ...

  3. printf格式输出

    参考:http://www.cplusplus.com/reference/cstdio/printf/ C string that contains the text to be written t ...

  4. nginx日志、变量

    日志格式类型等 包含两类:access_log  error.log log_format log只能在http模块下配置 下图是一个典型error_log配置 warn表示默认日志级别为‘’警告‘’ ...

  5. 阅读之web应用安全

    一.三种坏人与servlet安全 认证可以防止“假冒者”攻击,授权可以防止“非法升级者”攻击,机密性和数据完整性可以防止“窃听者”攻击. 二.认证与授权 Web容器进行认证与授权的过程: 客户端:浏览 ...

  6. 【学习备份】ajax添加小例子

    实现目的:保存模板编号.模板名称到数据库 1.js引用 <script src="../../../../../../../js/jquery-1.10.2.min.js"& ...

  7. python---win32gui、win32con、win32api:winAPI操作

    python操作winAPI 窗口操作: import sys from PyQt5.QtWidgets import QApplication, QWidget from lianxi import ...

  8. vs2015显示代码行数

    打开visual studio 2015,在菜单中点击“工具” --> "选项" -->“文本编辑器” --> "所有语言" -->勾选 ...

  9. java中的“指针”

    java中的"指针" 通常我们说java中没有指针,但是java中的"引用"就相当于指针,只是不称为指针而已. 错误例子 public List<Clus ...

  10. SpringMVC——返回值类型

    1.void作为返回值类型 如果你的方法写成了Void就跟原来Servlet含义是差不多的 @RequestMapping("/index*") public void first ...