HANA系统的XS引擎提供了定时执行你的任务的功能。你可以让HANA定期地完成一些你指定的操作。

你将在本文中看到如何编写一个简单的XS应用并调度一个XS Job来执行它。这个应用会向特定的表里插入一条记录。

1. 前提条件

1.1 这个功能从HANA SPS07开始有效,所以请确保你的HANA是Revision 70之后的版本。

1.2 确保XSEngine正常运行。
在你的Web Browser里输入http://<Web_Server_Host>:80<HANA_instance>/sap/hana/xs/admin/,如果能看到下面的界面就说明XSEngine一切正常。

(如果是项目内basis创建的 就登入自己对应的ip+端口号即可)

1.3 HANA上的必要配置
你可以把下面这些和XSengine相关的角色赋给用户(这里我们使用的用户是”DEMO_USER”)。

该用户的Schema权限也要赋给用户_SYS_REPO。

此处大家也可以点开

这样就如下面那些图片一样了

在xsengine.ini里添加section “schedule”和参数”enabled”如下。

如果需要向表里写数据,你必须把”sqlscript mode”改成”UNSECURE”(如下图),否则你只能在procedure里使用select语句。

2. Procedure

2.1 新建XS project。

当要给project指定一个workspace时,你可以新建一个workspace或者使用缺省的workspace。
这里我们使用缺省的workspace。

你可以在Project Explorer里看到新建的project。

同时你也可以在Web Browser里看到它。

2.2 新建数据库object。
这里我们新建个表来做测试。

2.3 新建XS JavaScript和XS Job。

按下面的步骤新建XS JavaScript。

.xsjs文件生成之后,如下新建一个JavaScript function。

我们向表DEMO_TABLE里插入一条包含时间戳的记录。

function my_js() {

var sql = “INSERT INTO DEMO_USER.DEMO_TABLE VALUES (‘inserted by javascript job’, NOW())”;

var conn = $.db.getConnection();

var pstmt = conn.prepareStatement(sql);

pstmt.execute();

conn.commit();

conn.close();

}

然后新建一个XS Job。

.xsjob文件生成之后,可以在XS Job文件里定义任务了。

在”action”里指定刚才新建的XS JavaScript文件里的function。

在”schedules”中指定调度时间,其中的”xscron”同Linux环境的”crontab”的语法类似,这里我们指定每5秒钟执行一次。

{

“description”: “my first JS job”,

“action”: “XS_JOB_DEMO:my_js.xsjs::my_js”,

“schedules”: [

{

“description”: “run every 5 seconds”,

“xscron”: “* * * * * * 0:59/5”

}

]

}

2.4 新建HANA Procedure和XS job。

按下面的步骤新建XS Procedure。

.hdbprocedure文件生成之后,如下新建一个HANA Procedure。

我们也向表DEMO_TABLE里插入一条包含时间戳的记录。

PROCEDURE “DEMO_USER”.”XS_JOB_DEMO::my_procedure” ( )

LANGUAGE SQLSCRIPT

SQL SECURITY INVOKER

DEFAULT SCHEMA DEMO_USER

AS

BEGIN

/*****************************

Write your procedure logic

*****************************/

INSERT INTO DEMO_TABLE VALUES(‘inserted by procedure job’, NOW());

END;

然后同样新建一个XS Job来执行这个Procedure。

请注意“action”的语法,和刚才的XS JavaScript是不同的。
这里我们指定每10秒钟执行一次。

{

“description”: “my first Procedure job”,

“action”: “XS_JOB_DEMO::my_procedure”,

“schedules”: [

{

“description”: “run every 10 seconds”,

“xscron”: “* * * * * * 0:59/10”

}

]

}

2.5 在Web Browser里启动任务。

你可以在HANA XS Administration Tool里看到刚才新建的两个XS Job。

输入”User”和”Locale”,勾选”Active”,然后 按下”Save”之后XS Job就开始执行了。

你也可以在此监控任务。

在basis搭建中启动任务(相似)

从下图可见JavaScript的任务每5秒执行一次,HANA Procedure的任务每10秒执行一次。

本文转载地址:https://blogs.sap.com/2015/10/26/%E5%A6%82%E4%BD%95%E5%88%9B%E5%BB%BAxs-job%E6%9D%A5%E5%AE%8C%E6%88%90%E5%AE%9A%E6%97%B6%E4%BB%BB%E5%8A%A1/

HANA 如何创建XS Job来完成定时任务相关推荐

  1. 如何创建XS Job来完成定时任务

    HANA系统的XS引擎提供了定时执行你的任务的功能.你可以让HANA定期地完成一些你指定的操作. 你将在本文中看到如何编写一个简单的XS应用并调度一个XS Job来执行它.这个应用会向特定的表里插入一 ...

  2. 使用HANA studio创建XS project

    新建一个project: 类型选择SAP HANA->Application Development->XS Project: Access Object的两个勾都打上: 要获取更多Jer ...

  3. 解读SAP HANA轻量级应用服务器——XS引擎

    SAP HANA XS Engine即SAP推出的基于HANA的扩展应用服务引擎,尽管XS的缩写并没有完全包含"Extended Application Services"的全部, ...

  4. SAP S/4 HANA BP创建客户/供应商的一点想法

    更多内容关注公众号:SAP Technical 关于这一点我之前也写过,感兴趣的朋友可以看一下 正文部分 在通过MDS_LOAD_COCKPIT从客户/供应商转换为业务合作伙伴的S/4 HANA期间, ...

  5. SAP HANA中创建时间相关的数据时候需要Variant Schema

    在创建Generate Time Data时,我们需要选择Variant Schema 这个选项主要是跟我们同步SAP中的表T009和T009B,我们将这两张表放在哪个schema中,那么下拉的地方就 ...

  6. S4/HANA ME21N创建PO 输出控制消息按钮丢失解决方法(切换EDI 输出模式BRF+至NAST模式)

    =>切换方法可直接看章节3 1. 问题 S4/HANA使用ME21N创建PO无输出控制消息按钮 菜单栏:转到->消息(Ctrl + F9) 为灰色 2. 原因 S4/HANA下使用新的BR ...

  7. mysql创建xs表_mysql中表的应用

    .创建数据库 create database 库名 create database if not exists 库名 创建库的同时指定字符集,校对规则 create database mydb cha ...

  8. SAP HANA中创建与时间相关的数据及Time Attribute View(Gregorian)

    This document provides the general functionality and idea about the "Generate Time Data" w ...

  9. [Step By Step]SAP HANA中创建分析视图(Analytic View)

    1. 在Modeler视图中点击新建Analytic View 2. 设置分析视图的属性 Name: 分析视图的技术名称 Description: 分析视图的描述信息 Package: 分析视图所属的 ...

最新文章

  1. SAP B/P 初步研究(二)
  2. python画图程序-python画图之“小海龟”turtle
  3. python有什么作用-Python中的闭包到底有什么用
  4. 1.1机器学习基础-python深度机器学习
  5. 微软高性能计算服务器pdf,微软高性能计算HPCserver2008技术概览.pdf
  6. 作为一个php程序员要学会的技能
  7. 求一个整数的各位累加和
  8. 完美的xslt数值函数与字符串函数
  9. 关于C++中的继承感悟
  10. win7 右键无法新建txt
  11. 系列学习 Gateway 之第 4 篇 —— 网关限流
  12. 多多参谋:拼多多推广怎么出价?该怎么做好推广?
  13. 笨拙的手指(暴力枚举)
  14. 【golang】处理jpeg图片压缩后方向发生变化问题
  15. echarts图表的x轴和y轴的配置
  16. 那个经常加班的人后来怎么样了?
  17. 大三了,软件工程专业女生能走哪个方向呢?
  18. 【消息队列笔记】chp2-如何选择消息队列
  19. 流行的通讯库/消息中间件
  20. java读取通达信day_Go读取通达信历史日线数据

热门文章

  1. 在access中记录的末尾标志是什么_access习题--报表和页
  2. [前端框架]-VUE(下篇)
  3. 如何查看Isilon节点的硬件信息?
  4. ABAP Cross-client 和 Client-specific 的区别
  5. Qt QTreeWidget/QTreeView去焦点(虚线框)
  6. 源码分析Dubbo监控中心实现原理
  7. Dubbo监控中心的介绍与安装
  8. 在html页面填入字符串,\n换行不起作用,怎么办?
  9. 信息系统基础知识---信息系统工程
  10. excel冻结窗口_Excel工作学习超高频实用技巧