ABAP动态生成经典应用之Table数据Upload 程序
开发说明:在CBO的程序开发过程中,需要为Table准备大量的测试数据,手动录入效率低,不专业,我们可以采用其他的高级编辑工具(例如:EXCEL,EditPlus)按照Table数据存储结构准备好数据,最后保存为ASC的文本文件,通过执行下面开发的程序,下面的程序执行的功能就是把编辑好的文本文件上的数据上载到SAP对应的Table中,小程序非常实用,也适用于我们大量更新Table数据时使用,ABAPer们的手头必备啊!
* (Copyright @2006 Mysingle Digital System Co.Ltd.
* All Rights Reserved|Confidential)
* System Module : ABAP CBO
* Program Description : Table Upload & Download
* Developer : ZOU XIN
* Develop Date : 2006.01.01
* Use Status : Release 1.0
*******************************************************************
REPORT z_cbo_abap_01 NO STANDARD PAGE HEADING.
fcode(4),
END OF tab.
DATA : BEGIN OF itab OCCURS 0,
chk(1) TYPE c, " check box
tabname LIKE dd03l-tabname, " Table name
fieldname LIKE dd03l-fieldname, " Feld Name
position LIKE dd03l-position, " Table
keyflag LIKE dd03l-keyflag, " Primary Key
datatype LIKE dd03l-datatype, " Data Type
intlen LIKE dd03l-leng,
END OF itab.
DATA itab1 LIKE itab OCCURS 0 WITH HEADER LINE.
DATA : BEGIN OF uptab OCCURS 0,
text(72) TYPE c,
END OF uptab.
DATA: BEGIN OF error_message,
line1(72),
line2(72),
line3(72),
END OF error_message.
DATA : cnt1(8) TYPE c,
fcode LIKE sy-ucomm,
changed LIKE s38e-buf_varied,
prog(8) TYPE c,
msg(120) TYPE c,
er_include LIKE sy-repid,
er_line LIKE sy-index,
er_off LIKE sy-tabix,
er_subrc LIKE sy-subrc.
SET PF-STATUS 'ZOUXIN'.
SELECT * INTO CORRESPONDING FIELDS OF TABLE itab FROM dd03l
WHERE tabname = tabname
AND as4local = 'A'
ORDER BY position.
itab-chk = 'X'.
PERFORM generate_upload_code.
PERFORM edit_generator_code.
IF sy-ucomm = 'EDIT'.
PERFORM edit_generator_code.
ELSEIF sy-ucomm = 'EXEC'.
PERFORM chcek_syntax_error.
PERFORM dyn1 IN PROGRAM (prog).
ENDIF.
*& Form generate_upload_code
*&---------------------------------------------------------------*
REFRESH uptab.
uptab-text = 'REPORT ZUP19800526.'.
APPEND uptab.
CONCATENATE 'TABLES :' tabname '.' INTO uptab-text
SEPARATED BY space.
APPEND uptab.
uptab-text = 'DATA : BEGIN OF UPTAB OCCURS 0,'.
APPEND uptab.
LOOP AT itab WHERE chk = ''.
CLEAR uptab.
CONCATENATE ' ' itab-fieldname '(' itab-intlen ')' ' TYPE C ,'
INTO uptab-text+10(80).
APPEND uptab.
ENDLOOP.
uptab-text+6(82) = 'END OF UPTAB.'.
APPEND uptab.
uptab-text = 'DATA : BEGIN OF RESULT OCCURS 0.'.
APPEND uptab.
CLEAR uptab.
CONCATENATE 'INCLUDE STRUCTURE' itab-tabname '.'
INTO uptab-text+10(80) SEPARATED BY space.
APPEND uptab.
uptab-text = 'DATA : END OF RESULT.'.
APPEND uptab.
uptab-text = 'FORM DYN1.'.
APPEND uptab.
CLEAR uptab.
uptab-text+2(88) = 'CALL FUNCTION ''UPLOAD'''.
APPEND uptab.
CLEAR uptab.
uptab-text+4(86) = 'EXPORTING'.
APPEND uptab.
CLEAR uptab.
uptab-text+6(84) = 'FILENAME = ''C:/'''.
APPEND uptab.
uptab-text+6(84) = 'FILETYPE = ''DAT'''.
APPEND uptab.
uptab-text+4(86) = 'TABLES'.
APPEND uptab.
CLEAR uptab.
uptab-text+6(84) = 'DATA_TAB = UPTAB.'.
APPEND uptab.
uptab-text+2(88) = 'LOOP AT UPTAB.'.
APPEND uptab.
CLEAR uptab.
uptab-text+4(86) = 'CLEAR RESULT.'.
APPEND uptab.
uptab-text+4(86) = 'MOVE-CORRESPONDING UPTAB TO RESULT.'.
APPEND uptab.
uptab-text+4(86) = 'APPEND RESULT.'.
APPEND uptab.
uptab-text+2(88) = 'ENDLOOP.'.
APPEND uptab.
CLEAR uptab.
CONCATENATE 'INSERT' itab-tabname 'FROM TABLE RESULT.'
INTO uptab-text+2(88) SEPARATED BY space.
APPEND uptab.
uptab-text = 'ENDFORM.' .
APPEND uptab.
CLEAR uptab.
ENDFORM. " generate_upload_code
*& Form edit_generator_code
*&---------------------------------------------------------------*
CALL FUNCTION 'EDITOR_APPLICATION'
EXPORTING
application = 'BF'
display = ' '
name = 'Source Code.....'
IMPORTING
fcode = fcode
changed = changed
TABLES
content = uptab.
LOOP AT uptab.
WRITE:/1 uptab-text.
ENDLOOP.
ENDFORM. " PRINT_GENERATOR_CODE
*& Form chcek_syntax_error
*&---------------------------------------------------------------*
CALL FUNCTION 'EDITOR_SYNTAX_CHECK'
EXPORTING
i_global_check = ' '
i_global_program = ' '
i_program = 'ZUP19800526'
i_r2_check = ' '
i_r2_destination = ' '
i_trdir = ' '
IMPORTING
o_error_include = er_include
o_error_line = er_line
o_error_message = error_message
o_error_offset = er_off
o_error_subrc = er_subrc
TABLES
i_source = uptab.
IF er_subrc <> 0.
er_line = er_line - 2.
WRITE:/1 'Error Line : ',er_line.
WRITE:/1 error_message-line1,error_message-line2,
error_message-line3.
STOP.
ENDIF.
ENDFORM. " chcek_syntax_error
1.程序初始界面,输入Upload的table名.
2.程序运行第一界面,显示程序自动生成的上载程序代码
3.程序运行第二界面,确认程序自动生成的上载程序代码,执行
4.程序运行第三界面中小界面,程序执行提示输入上在数据具体路径
5.OK,数据上载成功
补充1:上载数据文件格式,*.TXT DAT格式文件,俗称纯文本文件
补充2:SAP Table格式,注意不要理会Mandt Client字段,其他字段数据对应
ABAP动态生成经典应用之Table数据Upload 程序相关推荐
- ABAP动态生成经典应用之Dynamic SQL Excute 程序
开发说明:在SAP的系统维护过程中,有时我们需要修改一些Table中的数据,可是很多Table又不能直接在Tcode:SE16中修改,使用的SAP ID又没有调试数据修改权限,这时我们应该怎么样修改数 ...
- JS实现动态生成表格并提交表格数据向后端 表格中数据转为json
原文地址 需求:在web页面上动态的生成表格,并可以对表格中的数据进行编辑,然后把表格中的数据提交至后端服务器保存. 首先动态生成表格. 1.首先我们需要导入JS库文件.jQuery 2.然后在页面d ...
- Skywalking-09:OAL原理——如何通过动态生成的Class类保存数据
OAL 如何通过动态生成的 Class 类,保存数据 前置工作 OAL 如何将动态生成的 SourceDispatcher 添加到 DispatcherManager // org.apache.sk ...
- layui table动态选中_layui后台管理—table 数据表格详细讲解
1.layui介绍 layui是一款采用自身模块规范编写的前端UI框架,遵循原生HTML/CSS/JS 的书写与组织形式,门槛极低,拿来即用,非常适合界面的快速开发.layui区别于那些基于MVVM底 ...
- 动态生成JSP文件,并调用JSP程序
2019独角兽企业重金招聘Python工程师标准>>> 下面这个JSP程序,动态生成可一个testDynamicInclude.inc.jsp,然后在后面调用它. 在JSP的动态生成 ...
- ABAP动态生成内表的三种方法
动态内表的创建和使用主要有以下几点: 动态内表的创建,首先要定义动态结构,然后再根据定义的动态结构利用系统一个标准的method:"cl_ALV_table_create=>creat ...
- 前端——动态生成表格
案例分析 因为表格数据是不断更新的,我们需要js 动态生成. 这里我们模拟数据,自己定义好数据. 数据我们采取对象形式存储. 所有的数据都是放到tbody里面的行里面. 因为行很多,我们需要循环创建多 ...
- JavaScript网页——动态生成表格
1.创建学生数据 分析:因为里面的学生数据都是动态的,我们需要js动态生成.这里我们模拟数据,自己定义好数据.数据我们采取对象形式存储. var students = [{name:'吕小布',sub ...
- java在linux生成pdf文件,从 Java 应用程序动态生成 PDF 文件
简介: 如果您的应用程序需要动态生成 PDF 文档,那么您需要 iText 库.开源的 iText 库使得 PDF 的创建变得轻松易行.本文介绍了 iText 并提供了一个使用它从 Java 技术应用 ...
最新文章
- Leetcode 207.课程表
- 一劳永逸关闭Windwos默认共享
- 没想到这家老牌AI公司越来越不“纯粹”了
- 正则表达式抓取文件内容中的http链接地址
- 基础算法 —— 贪心算法
- ES6新特性之修饰器
- 【锁相环系列3】QPSK解调之Costas锁相环去小频偏(重点环路滤波器参数设置和迭代核心代码详解)
- MapReduce计数器
- 传播路由_什么路由器穿墙效果好?购买防骗知识
- php 订单状态如何_如何编写程序实现图书管理系统当中的借书功能
- git 中怎样查看未传送(git push)到远程代码库的(git commit)提交?
- 电子技术基础——基本共射放大电路
- php + redis 实现延迟队列
- 初等数论及python应用
- 计算机显示没有可以的ip地址,电脑连不上WiFi,手机可以访问,出现黄色感叹号,没有有效的ip配置...
- 《人性的弱点》-[美]戴尔·卡耐基
- meta-inf文件夹以及MANIFEST.MF文件的作用
- 美业选择会员系统的原因
- 红外额温枪方案开发技术支持
- 前端三要素:HTML、CSS、JavaScript介绍以及三者的关系理解