课程:基于事件的作业调度
课程概述
在本课中,您将了解基于事件的作业调度。
课程目标
完成本课程后,您将能够:
• 安排与事件相关的作业
• 定义和触发事件
业务示例
管理员调度后台作业,监控系统后台处理的正确进程。
基于事件的调度
事件是给后台处理系统的信号,表明 SAP 系统中已达到特定状态。后台处理系统接收事件,然后启动与该事件链接的所有作业。
图 127:作业的事件相关启动
可以使用以下三个启动条件之一来安排与事件相关的作业:
活动结束后
该作业在 SAP 系统接收到定义的事件后开始。
在操作模式
使用此选项,您可以在调度作业时将作业链接到操作模式的激活。
工作后
通过这种方式,您可以创建简单的作业链,其中可以使后续作业的执行取决于前一作业的状态。
活动
新事件由系统管理员在 CCMS(事务 SM64)中定义。这样做时,管理员会区分系统事件和用户事件。系统事件是 SAP 预定义的事件,您不应或不能修改或触发这些事件。
图 128:事件的定义和触发事件可以通过多种方式触发:
• 在 CCMS 中手动进行测试(事务 SM64)
• 使用 ABAP 程序 BTC_EVENT_RAISE 或在 ABAP 程序中(通过使用功能模块 BP_EVENT_RAISE 或 CL_BATCH_EVENT 类的 RAISE 方法)
• 在操作系统级别的 SAP 系统之外使用程序 sapevt。
也可以在触发事件时传输参数。这样,您可以将等待事件发生的作业与指定的参数一起定义。您可以通过事件历史记录(事务 SM62)访问事件历史记录。
sapevt 程序的语法是:
sapevt <参数>
<Parameters> 是以下几个单开关:
sapevt <parameters>
<Parameters> are several single switches from the following:
{<EventID> | event=<EventID>} [{-p <EventParam>} | param=<EventParam´<>][-t[0|1|2][a]]
[-v]
{[name=<SystemName>] [msserv=<MsServ>]
[mshost=<MsHost>] [pf=<Profile>]}{[timeout=<TimeOut>]}
[-? | /? | -help | /help]
例如:sapevt event=MYEVENT name=DEV
mshost=twdf5000.wdf.sap.corp. sapevt 在跟踪中输出
调用 sapevt 的目录中的文件 dev_evt。
为了能够对外部事件做出反应,SAP 系统必须处于活动状态。否则,由外部程序触发的事件将丢失。
解决方案 25:事件相关作业
任务:事件和事件相关作业
创建等待触发相应事件的事件和作业。
1. 创建客户事件 EVENT_##。
a) 启动事务 SM64。
b) 选择创建。
c) 在事件下输入 EVENT_##,在描述下输入任何文本。不要选择系统复选框并保存事件。
2. 将您在上一个练习中创建的作业 TIME-## 复制到 EVENT-##。
a) 调用事务 SM37 并输入相关数据以查看作业 TIME-##。
b) 选择作业 TIME-## 并选择作业 → 复印。
c) 输入 EVENT-## 作为新作业名称并选择复制。
3. 将作业 EVENT-## 定期安排到事件 EVENT_##。
a) 调用事务 SM37 并输入相关数据以查看作业 EVENT-##(显示状态为 Sched. 的作业)。
b) 选择作业 EVENT-## 并选择发布。
c) 选择 After Event 按钮并选择事件 EVENT_##。将 Parameter 字段留空并选中 Periodic Job 复选框。保存发布。
d) 如果发布后系统在作业概览中未显示作业 EVENT-##,则必须更改事务 SM37 初始屏幕上的条目: 在事件下或之后的作业开始条件区域中,选择 EVENT_## (或也*)。
4. 使用 CCMS 工具在新会话中触发事件 EVENT_## 并刷新作业概览。
a) 启动事务 SM64 并选择您的事件 EVENT_##。
b) 选择触发器,将参数字段留空,然后再次选择触发器。
c) 刷新作业概览后,作业 EVENT-## 应该已成功运行并已重新安排。
5. (可选)在 SAP 系统的操作系统级别触发事件 EVENT_## 并刷新作业概览。
a) 如果您还没有这样做,请在操作系统级别登录到您的 SAP 系统。
b) 打开命令提示符(“DOS 框”)。
c) 执行以下命令:sapevt event=EVENT_## name=<SID> mshost=twdfXXXX.wdf.sap.corp,
其中 ## 代表您的组号,<SID> 代表您的
系统名称(DEV 或 QAS),服务器编号为 XXXX
(例如:sapevt event=EVENT_00 name=DEV mshost=twdf0042.wdf.sap.corp)。
d) 查看在当前目录中创建的跟踪文件 dev_evt(使用 SAPpad 或命令 more dev_evt)。您将在此文件末尾找到最后(最新)条目。
e) 刷新作业概览后,作业 EVENT-## 应该已成功运行并已重新安排。
结果
恭喜!您现在可以创建和触发事件以在它们处启动计划的作业。
原文下载: