SAP ABAP生成后台JOB和删除后台JOB

后台JOB的相关函数在函数组BTCH下

1、生成后台JOB

  • 参数 prdhours和prdmins为设置的周期性,比如每多少分钟或者多少小时跑一次后台JOB。
  • 参数strtimmed为X时表示立即执行后台JOB
  • 函数JOB_OPEN会生成一个JOB,已计划状态,未设置周期,没有释放
  • 实例代码如下:

DATA:lv_name LIKE tbtcjob-jobname,
lv_number TYPE tbtcjob-jobcount.
DATA:lv_prdhours LIKE tbtcjob-prdhours, "一个批作业的持续时间 (以小时计算)
lv_prdmins LIKE tbtcjob-prdmins. "一项批作业的持续时期(以分钟计算)

lv_name = ‘ZYS001’.
*
CALL FUNCTION ‘JOB_OPEN’
EXPORTING
jobname = lv_name
IMPORTING
jobcount = lv_number
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3.
IF sy-subrc EQ 0.
lv_prdhours = 1.
lv_prdmins = ‘30’.
SUBMIT zys001

  • WITH s_lgnum IN s_lgnum
  • WITH p_batch = ‘X’
    USER sy-uname AND RETURN
    VIA JOB lv_name NUMBER lv_number.
    IF sy-subrc EQ 0.
    CALL FUNCTION ‘JOB_CLOSE’
    EXPORTING
    jobcount = lv_number
    jobname = lv_name
    prd
<think>好的,我现在需要帮用户解决在SAP ABAP中创建管理后台作业的问题。首先,我得回忆一下相关的知识,并结合提供的引用内容来组织回答。用户提到了后台作业的创建与调度,所以重点应该放在步骤方法上,可能还需要包括调度策略的优化。 首先,创建后台作业的基本步骤。根据引用[2][3],后台作业涉及到定义作业名称、类型、步骤,以及调度选项。需要分步骤说明,比如事务代码SM36,作业类,作业步骤可以是ABAP程序或外部命令。调度部分需要解释开始时间周期设置,比如每天、每周等,这里引用[3]提到了准点调度的问题,可能需要提醒用户注意延迟的影响。 然后是作业监控管理,使用SM37。这部分需要说明如何查看作业状态、日志进行修改或删除操作。用户可能想知道如何处理失败的任务,所以需要提到日志分析的重要性。 接下来是优化调度策略,引用[2][3]提到了用户权限分配准点调度。比如建议为不同类型的作业设置不同的用户,如BJ_AUTOBJ_IF,这样便于管理。准点调度方面,可能需要使用引用[3]中提到的增强工具来减少延迟,比如使用固定间隔或准点触发。 代码示例部分,用户可能需要ABAP提交作业的例子。记得用$$包裹代码块,符合格式要求。同时,要确保代码正确,比如使用SUBMIT语句JOB_CLOSE来提交作业。 最后,生成相关问题。根据用户的问题,可能的扩展问题包括权限管理、异常处理、性能优化、自动创建的方法,以及如何与其他模块集成。这些问题需要自然相关,帮助用户深入理解。 需要注意的是,引用中的内容要适当融入回答中,比如调度器的角色(引用[1]),作业用户的分类(引用[2]),准点调度的改进(引用[3])。同时,保持回答结构清晰,分步骤说明,语言简洁。 检查是否符合所有系统级指令:行内公式用$,独立公式用$$(虽然这里可能用不到数学公式),正确的中文回答,生成相关问题,引用标识正确。确保没有使用Markdown,代码块用四个空格缩进。最后,确认引用位置正确,比如在提到调度器时引用[^1],作业用户设置引用[^2],准点调度引用[^3]。</think>在SAP ABAP中创建管理后台作业主要涉及事务代码操作、参数配置及调度策略管理。以下是详细实现方法: ### 一、后台作业创建步骤 1. **进入作业定义界面** 使用事务码`SM36`进入作业定义界面,输入作业名称(如`ZJOB_DEMO`)并选择作业类(A/B/C类,决定优先级)[^1]。 2. **配置作业步骤** - 添加ABAP程序:指定需要执行的程序名称及变量 - 支持外部命令:调用操作系统脚本或第三方程序 - 示例配置: ``` 步骤类型:ABAP程序 程序名称:ZREPORT_DEMO 变量值:P_DATE=$'20231001'$ ``` 3. **设置调度参数** - **启动条件**:立即/指定日期时间/周期性(每天/每周/每月) - **周期设置**: $$周期公式 = 基准日期 + 间隔天数 \times n$$ 支持按分钟/小时/天等维度设置 ### 二、作业调度管理 1. **作业监控(SM37)** - 查看状态:已计划/就绪/运行中/已完成 - 分析日志:通过作业日志定位ABAP DUMP等异常 - 操作控制:手动释放/终止异常作业 2. **调度优化策略** - **用户隔离**:按引用[2]建议,为不同作业类型分配专属用户 ```ABAP " 自动单据类 AUTHORITY-CHECK OBJECT 'S_JOB' ID 'JOB_USER' FIELD 'BJ_AUTO' " 接口类 AUTHORITY-CHECK OBJECT 'S_JOB' ID 'JOB_USER' FIELD 'BJ_IF' ``` - **准点调度**:通过引用[3]的增强方案解决延迟问题,采用固定间隔+时间补偿机制 ### 三、代码实现示例 ```abap DATA: l_jobcount TYPE tbtcjob-jobcount, l_jobname TYPE tbtcjob-jobname VALUE 'ZJOB_DEMO'. CALL FUNCTION 'JOB_OPEN' EXPORTING jobname = l_jobname IMPORTING jobcount = l_jobcount EXCEPTIONS cant_create_job = 1 invalid_job_data = 2. SUBMIT zreport_demo WITH p_date = sy-datum VIA JOB l_jobname NUMBER l_jobcount AND RETURN. CALL FUNCTION 'JOB_CLOSE' EXPORTING jobcount = l_jobcount jobname = l_jobname strtimmed = 'X'. ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值