1、后台作业基本概念
1.1使用后台作业条件:
Ø 运行的程序耗时冗长并且具有资源密集的特点
Ø 自动的需要周期性的执行例行任务
系统配置文件中 rdisp/max_wprun_time 默认600秒 , ZYP 1800秒
后台工作进程分配内存方面 ,根据需要自动扩展
1.2时间控制的作业程序:
时间控制的作业调度程序: 为后台工作进程配置的R/3系统的每个实例都有一个时间控制的
作业调度程序,
作用: 这一程序在定义的时间间隔内检查是否有后台作业正在处理
实例配置文件中: rdisp/btctime 作业调度程序变成活动的时间间隔 默认60秒
SAP调度器,定期自动运行,由这个参数指定运行时间间隔
Ø 两次作业调度运行程序之间的时间间隔可能造成启动作业时的延迟,如果延迟太长可以减小时间间隔
Ø 如果一个job被定义了,那么它会存在数据库层面一个专门定义的表里面,
后台调度程序(ABAP program) 就会searcher 表里的这些job的开始时间,哪些job时间快开始了,或者哪些job 定义时间已经过去了。
background scheduler run time , rdisp/btctime 默认60秒 ,
Ø 如果定义的job将要被执行,并且后台工作进程是可用的,那么background scheduler就会把这个job 传递到可用的后台进程去处理,轮流执行job.
Ø 如果rdisp/btctime这个参数设置为0 ,后台作业调度程序就不能工作,所以基于具体时间定义的job就不能执行。
后台作业和BATCH JOB的区别:
SM35:批导入既可以用交互的方式,也可以用后台的方式。
SM37:用于检查所定义的后台JOB的状态, 但是后台作业里可以定义更多的作业
而不仅是批导入方式。
1.3事件控制的作业调度程序
基于事件的控制作业,同样可以被前台来进行,
定义instance 参数 rdisp/btcname = <server_name> in (DEFAULT.PFL)
可以定义你想要响应的事件
事件控制用于在R/3系统之间传递对象,TP程序分好几个阶段执行,在实际data import 时候, 单独的objects 不得不生成或被激活,相应得一旦 data import 结束,就会触发一个事件 SAP_trigger_rddimpdp
TP程序触发事件 SAP_trigger_rddimpdp,作业RDDIMPDP会在后台自动运行
所以有传输系统得SAP,至少要配置两个background process
Event Types:
Ø System events: Defined by SAP and triggered automatically by system changes, such as the activation of a new operation mode. You cannot modify system events.
Ø User events: Defined by users. These events must be triggered from ABAP or from external programs. For example, use an external program to trigger a background processing user event to signal the arrival of external data to be read into the SAP System.
触发事件的三种方式:
Trigger event:: 触发事件 SM64
ABAP 函数模块: BP_EVENT_RAISE
外部程序: sapevt 从一个外部程序内部触发一个R/3事件
1.3.1 用户自定义触发事件
1) Transaction SM62 Define events
Sm62à BckProcEvntsàcreate
在SAP系统里有很多标准的 trigger event,为了区分心创建的最好以Z开头
2) Sm36àstart condition àafter event
定义一个事件以后,本身不起任何作用, 我们需要在SM36 为这个事件做配置
3)Transaction SM64 -- Trigger events within SAP
在操作系统级别触发一个事件
SAPEVT.exe is part of the R/3 Kernel and located under the
/usr/sap/SID/SYS/exe/run 在CI 上
sapevt语法:
sapevt <EventID> [-p <parameter>] [-t]
pf=<profile>|name=<R/3_System_name> nr=<R/3_System_number>
-p option to pass on a parameter that specifies an R/3 module (such as FI)
-t option causes the system to write a log file, dev_evt, in the sapevt call directory
pf=<Path_to_Default_Profile>
Example:
sapevt SAP_TRIGGER_RDDIMPDP name=ZYM nr=00
triggers event SAP_TRIGGER_RDDIMPDP in R/3 system ZYM
在操作系统上执行用户,不要用root , 用<SID>ADM