*&---------------------------------------------------------------------*
*& Report ZRICO_TEST26
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
report zrico_test26.
data:gv_taskname() type c, "task name(同时运行的任务名称必须保持唯一)
gv_classname type rzlli_apcl, "Server Group Name
gv_applserver type rzllitab-applserver. "RFC Serve Group
data:gv_lin type char10,
gv_job type i,
gv_end type c,
gv_mess() type c. "并发执行出错信息
data:begin of wa_tab,
num1 type vbap-kwmeng,
num2 type vbap-kwmeng,
num3 type vbap-kwmeng,
flg type c,
exflg type c,
taskname type string,
end of wa_tab.
data:gt_tab like table of wa_tab.
field-symbols:
<fs_tab> like wa_tab. start-of-selection. call 'C_SAPGPARAM' "#EC CI_CCALL
id 'NAME' field 'rdisp/myname'
id 'VALUE' field gv_applserver. select single classname
from rzllitab
into gv_classname "Server Group Name
where applserver = gv_applserver
and grouptype = 'S'. "S:服务器组,空:登陆组 "shift gv_classname left deleting leading space. do times.
gv_lin = gv_lin + .
call function 'CONVERSION_EXIT_ALPHA_INPUT'
exporting
input = gv_lin
importing
output = gv_lin. append initial line to gt_tab assigning <fs_tab>.
<fs_tab>-num1 = sy-index.
concatenate 'TASK' gv_lin into <fs_tab>-taskname.
condense <fs_tab>-taskname no-gaps.
unassign <fs_tab>.
enddo. loop at gt_tab assigning <fs_tab>.
clear:gv_end. write:/ <fs_tab>-taskname,'BEGIN'. call function 'ZRICO_NEW_TARK'
starting new task <fs_tab>-taskname
destination in group gv_classname
performing frm_subroutine_done on end of task
exporting
i_num = <fs_tab>-num1
exceptions
communication_failure = message gv_mess
system_failure = message gv_mess
resource_failure = .
if sy-subrc = .
<fs_tab>-exflg = 'Y'.
gv_job = gv_job + .
else.
<fs_tab>-exflg = 'N'.
endif. write:/ <fs_tab>-taskname,'END'. endloop. loop at gt_tab assigning <fs_tab>.
write:/ <fs_tab>-num1,<fs_tab>-num2,<fs_tab>-flg,<fs_tab>-exflg,<fs_tab>-taskname.
endloop. form frm_subroutine_done using gv_taskname.
data:lv_num type vbap-kwmeng.
field-symbols:
<fs_tab> like line of gt_tab. receive results from function 'ZRICO_NEW_TARK'
importing
e_num = lv_num. loop at gt_tab assigning <fs_tab>
where taskname = gv_taskname.
<fs_tab>-num2 = lv_num.
<fs_tab>-flg = 'X'.
endloop. gv_end = 'X'.
endform.

ABAP-多线程处理的更多相关文章

  1. ABAP单元测试最佳实践

    本文包含了我在开发项目中经历过的实用的ABAP单元测试指导方针.我把它们安排成为问答的风格,欢迎任何人添加更多的Q&A's,以完成这个列表. 在我的项目中,只使用传统的ABAP report. ...

  2. ABAP实现屏幕自己刷新和跳转功能

    ABAP开发工程中,有时候需要让跳转出的屏幕自动实现跳转和刷新的功能,该功能的实现需要在屏幕PBO 里面调用相应的事件执行. 关键代码为: SET TITLEBAR ' 屏幕自动程序'. IF g_c ...

  3. 一步步实现ABAP后台导入EXCEL到数据库【3】

    在一步步实现ABAP后台导入EXCEL到数据库[2]里,我们已经实现计划后台作业将数据导入数据库的功能.但是,这只是针对一个简单的自定义结构的导入程序.在实践应用中,面对不同的表.不同的导入文件,我们 ...

  4. 一步步实现ABAP后台导入EXCEL到数据库【2】

    前文:http://www.cnblogs.com/hhelibeb/p/5912330.html 既然后台作业只能在应用服务器运行,那么,我们可以先将要上传的数据保存在应用服务器中,之后再以后台作业 ...

  5. 让ABAP开发者愈加轻松的若干快捷键

    引言 ABAP是一种和当代编程语言在许多方面有着相当不同的编程语言.ABAP的某些方面可能会让我们奇怪,为什么它会如此复杂?而它的某些方面又是那么杰出,给予了ABAP开发者们比其它任何语言更多的便利. ...

  6. ABAP游标的使用

    在Oracle,SQLServer中游标的使用是经常的,所以在ABAP不懂是不行的......     1.声明游标 OPEN CURSOR [WITH HOLD] <c> FOR SEL ...

  7. 一步步实现ABAP后台导入EXCEL到数据库【1】

    在SAP的应用当中,导入.导出EXCEL文件的情况是一个常见的需求,有时候用户需要将大量数据定期导入到SAP的数据库中.这种情况下,使用导入程序在前台导入可能要花费不少的时间,如果能安排导入程序为后台 ...

  8. ABAP关键字SUBMIT的简单例子和学习小记

    网上有关SUBMIT实现程序调用的例子稍显复杂,而相关的参考和解释则不是很完善.本文给出一个SUBMIT的小示例程序(代码见文末),实现了最简单的程序间调用及返回值,以及SAP官方文档中相关内容的翻译 ...

  9. ABAP 常见查询问题解决方法

    在ABAP 编程的时候会遇到查询单条语句的时候数能取对  但是条目数多了的话 会出现数不准确的问题   原因可能出现在查询使用了二分法查询方式  二分法查询下必须按排序的字段排序  还得按照排序的字段 ...

  10. 《C#本质论》读书笔记(18)多线程处理

    .NET Framework 4.0 看(本质论第3版) .NET Framework 4.5 看(本质论第4版) .NET 4.0为多线程引入了两组新API:TPL(Task Parallel Li ...

随机推荐

  1. spring4.0之五:@Conditional在满足特定条件下,才会实例化对象

    这篇文章介绍Spring 4的@Conditional注解. 一.在Spring的早期版本你可以通过以下方法来处理条件问题 3.1之前的版本,使用Spring Expression Language( ...

  2. DP Big Event in HDU

    Big Event in HDU Time Limit : 10000/5000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) T ...

  3. 学习笔记之Visual Studio Code & Clang

    Mac上XCode太占空间,卸载然后安装VSCode和Clang.在VSCode中再安装extension C/C++和Code Runner,配置Tasks: Configure Task,就可以开 ...

  4. 两种解决方法 PHP Warning: File upload error - unable to create a temporary file in Unknown

    原因:上传文件时,没有管理员权限的你不能读取临时文件夹; 解决方法(两种)找到临时文件夹并给当前访问用户所有权限; 方法一: 找到Apache默认的临时文件,步骤如下: 1.找到临时文件夹,一般在C: ...

  5. UE4 Sockets多线程TCP通信

    转自:https://blog.csdn.net/zilisen/article/details/75007447 一.简介 UE4引擎是提供了Sockets模块和Networking模块的,博主在研 ...

  6. curl 与wget的区别

    CURL与wget的区别 当想要直接通过linux 命令行下载文件,马上就能想到两个工具:wget 和 CURL.它们有很多一样的特征,可以很轻易的完成一些相同的任务,虽然它们有一些相似的特征,但它们 ...

  7. Servlet(API)生命周期

    一.最上层接口Servlet 查看Servlet接口源码: 有5个方法 访问过程(默认): 1.进行Servlet类加载 当Tomcat容器启动后,服务器寻找应用部署的描述文件(web.xml),从部 ...

  8. 第2章 GNS3和PacketTracer网络模拟器(1)_GNS3概述

    1. 安装和配置GNS3 1.1 GNS3概述 (1)GNS3是一款具有图形化界面,可运行在多平台(包括Windows.Linux.Mac OS等)上面的网络虚拟软件. (2)可以在虚拟环境中运行Ci ...

  9. c#语言集合分析

    集合的赋值: double fenshu = 0; al.Add(fenshu=double.Parse (Console .ReadLine ())); //如果是存数字,将来要比较大小,需要再添加 ...

  10. js中的substring

    "ABCDEFG".substring(2,3) 结果为"C"