ABAP 通过sumbit调用另外一个程序使用job形式执行-简单例子
涉及到两个程序:

======================
REPORT ztest_zuma02.
DATA: lv_jobnum TYPE btcjobcnt.
DATA: gv_jobname TYPE btcjob VALUE 'ZUMATESTJOB'. "Step1. open a job define a job_name(whatever you want), and return a jobnumber.
CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobname = gv_jobname
IMPORTING
jobcount = lv_jobnum
EXCEPTIONS
cant_create_job =
invalid_job_data =
jobname_missing =
OTHERS = . "Step2. Submit a program which you want to run in background as job.
SUBMIT ztest_zuma VIA JOB gv_jobname NUMBER lv_jobnum AND RETURN.
"ztest_zuma 的代码
"DATA col TYPE i VALUE 0.
"DO 8 TIMES.
" MESSAGE 'JOB HERE' TYPE 'S'.
"ENDDO. "Step3-Option. This is option step, for some special requirment modify job name instead of sy-uname.
" in this step first call BP_JOB_READ to read the job information and then call BP_JOB_MODIFY to modify
" the user name.
PERFORM modify_job_name USING lv_jobnum gv_jobname. IF sy-subrc = .
"Step4. To release the job which you were opened in step1.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = lv_jobnum
jobname = gv_jobname
strtimmed = 'X'
EXCEPTIONS
cant_start_immediate =
invalid_startdate =
jobname_missing =
job_close_failed =
job_nosteps =
job_notex =
lock_failed =
OTHERS = .
IF sy-subrc NE .
MESSAGE 'Job error' TYPE 'E'.
ELSE.
MESSAGE 'Job success' TYPE 'S'.
ENDIF.
ENDIF.
*&---------------------------------------------------------------------*
*& Form MODIFY_JOB_NAME
*&---------------------------------------------------------------------*
* Modify user name for job owner
*----------------------------------------------------------------------*
* -->P_LV_JOBNUM text
* -->P_GV_JOBNAME text
*----------------------------------------------------------------------*
FORM modify_job_name USING p_lv_jobnum
p_gv_jobname.
DATA: ls_jobhead TYPE tbtcjob,
lt_jobstep TYPE STANDARD TABLE OF tbtcstep.
CALL FUNCTION 'BP_JOB_READ'
EXPORTING
job_read_jobcount = p_lv_jobnum
job_read_jobname = p_gv_jobname
job_read_opcode = ''
IMPORTING
job_read_jobhead = ls_jobhead
TABLES
job_read_steplist = lt_jobstep
EXCEPTIONS
invalid_opcode =
job_doesnt_exist =
job_doesnt_have_steps =
OTHERS = . IF sy-subrc <> . ENDIF. ls_jobhead-sdluname = 'BATCH_CM'. CALL FUNCTION 'BP_JOB_MODIFY'
EXPORTING
dialog = 'N'
jobcount = p_lv_jobnum
jobname = p_gv_jobname
new_jobhead = ls_jobhead
opcode = ''
IMPORTING
modified_jobhead = ls_jobhead
TABLES
new_steplist = lt_jobstep
EXCEPTIONS
cant_derelease_job =
cant_enq_job =
cant_read_jobdata =
cant_release_job =
cant_set_jobstatus_in_db =
cant_start_job_immediately =
cant_update_jobdata =
eventcnt_generation_error =
invalid_dialog_type =
invalid_new_jobdata =
invalid_new_jobstatus =
invalid_opcode =
invalid_startdate =
job_edit_failed =
job_modify_canceled =
job_not_modifiable_anymore =
nothing_to_do =
no_batch_on_target_host =
no_batch_server_found =
no_batch_wp_for_jobclass =
no_modify_privilege_given =
no_release_privilege_given =
no_startdate_no_release =
target_host_not_defined =
tgt_host_chk_has_failed =
invalid_targetgroup =
conflicting_targets =
OTHERS = . IF sy-subrc <> . ENDIF.
ENDFORM.
ABAP 通过sumbit调用另外一个程序使用job形式执行-简单例子的更多相关文章
- iOS调用另一个程序
在 iOS 里,程序之间都是相互隔离,目前并没有一个有效的方式来做程序间通信,幸好 iOS 程序可以很方便的注册自己的 URL Scheme,这样就可以通过打开特定 URL 的方式来传递参数给另外一个 ...
- wxWidgets一个界面与数据分离的简单例子
/*************************************************************** * Name: MyApp.h * Purpose: Defines ...
- [Machine-Learning] 一个线性回归的简单例子
这篇博客中做一个使用最小二乘法实现线性回归的简单例子. 代码来自<图解机器学习> 图3-2,使用MATLAB实现. 代码link 用到的matlab函数 由于以前对MATLAB也不是非常熟 ...
- 在C#中调用另一个应用程序或命令行(.exe 带参数)<zz>
在.net中使用system.diaglostics.Process可以用来调用另一个命令行或程序. using System.Diagnostics; 如果是dos Proces ...
- 在小程序中修改上一个页面里data中的数据调用上一个页面的方法
//获取已经打开的页面的数组 var pages = getCurrentPages(); //获取上一个页面的所有的方法和data中的数据 var lastpage = pages[pages.l ...
- ABAP RFC远程调用
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- SAP ABAP exporting list to memory ...SUBMIT 程序传输屏幕参数
SUBMIT report EXPORTING LIST TO MEMORY AND RETURN. submit 关键字的作用就是在程序内部调用一个程序,and retur ...
- windows下调用外部exe程序 SHELLEXECUTEINFO
本文主要介绍两种在windows下调用外部exe程序的方法: 1.使用SHELLEXECUTEINFO 和 ShellExecuteEx SHELLEXECUTEINFO 结构体的定义如下: type ...
- 【Web前端】---js调用本地应用程序
最近进入了一个项目组,向大牛们一起学习如何搞开发,可谓是边开发边学习.就在前两天,我们的项目被领导们验收了一次,顺便给我们提了点新的需求,要求我们能够使用外在设备拍照上传.君要臣死,臣不能不死.更何况 ...
随机推荐
- APUE学习笔记(1):APUE运行环境
APUE全称<Advanced Programming in the UNIX Environment>(UNIX环境高级编程) 书中例子大都使用作者自己写的头文件,所以需要解决一下,还好 ...
- CF - 96D - Volleyball
题意:一个无向图,有n个点,m条边,每条边有距离w,每个点有两个属性(1.从这点出发能到的最远距离,2.从这点出发的费用(不论走多远都一样)),一个人要从点x到点y,问最小费用是多少. 题目链接:ht ...
- js操作cookie方法
cookie cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密).定义于RFC2109和2965都已废弃,最 ...
- 百度地图SDK for Android v2.1.3全新发布
2013年8月1日 Android SDK:V2.1.3产品上线 新增: 增加短串分享接口(poiDetailShareURLSearch.poiRGCShareURLSearch) 驾车路线检索增加 ...
- QTP中DataTable操作大全
序曲 假设现在有一个Excel文件:D:\data.xls,里面的具体内容如下:有两个Sheet,第一个叫Login,第二个叫InsertOrder: 当前QTP的Test中有两个Action:Log ...
- asp.net MVC2.0学习笔记
asp.net;与mvc都是不可替代的:只是多一种选择:(解决了许多asp.net的许多缺点) model:充血模型.领域模型:很大程度的封装: 控制器:处理用户的交互,处理业务逻辑的调用,指定具体的 ...
- 数据访问层的改进以及测试DOM的发布
数据访问层的改进以及测试DOM的发布 在上一篇我们在宏观概要上对DAL层进行了封装与抽象.我们的目的主要有两个:第一,解除BLL层对DAL层的依赖,这一点我们通过定义接口做到了:第二,使我们的DAL层 ...
- HDU 4630、BOJ 某题
两道离线线段树. 比赛时候没想到.... 扫描数组,i从1到n,线段树维护从1到i每一个约数(1~50000)的出现的最近位置,线段树存储的是约数的最大值 #include<cstdio> ...
- (转载)Log4Net 在多层项目中的使用小记
(原创)Log4Net 在多层项目中的使用小记 这几天刚好在调整一个项目,把一些自己不是很清楚的东西先试验一下,这篇文章主要是对我在项目中需要使用Log4Net的一些记录.网上有很多相关的教程,但是各 ...
- Confluence, JIRA, Fisheye
[tools]迁移Confluence, JIRA, Fisheye [背景] 原先的Confluence, JIRA, Fisheye都部署在一台服务器(192.168.200.203)上,导致 ...