点击蓝字 关注我们

前言

前文介绍了一个通用导入程序及怎么配置通用导入程序的导入模板

通用导入程序

无峰,公众号:ABAP 技巧与实战SAP工具箱 通用导入程序

公众号交流群有人回复通用导入程序只能导入单表,用处不大.因为大部分单据,主数据的都是多表结构.

这里说明一下:

大部分配置表都是单表结构(文本表可以单独导入),可以直接导入数据.

之前介绍的通用导入程序只能导入到一个表中. 如果目标数据不是单表结构, 则需要创建一个临时存储表,先把数据导入到临时存储表中, 再调用处理程序写入正式表.这个更符合多表处理的实际情况.

本文主要介绍通用导入程序的升级版: ZUPLOAD_TABLE_CONTENT_MUL.可以同时处理多表的导入

场景描述

本文的示例场景中有三个表

ZTBCD_H                       补差单-抬头

ZTBCD_I                         补差单-明细(补差规则)

ZTBCD_I2                       补差单-补差结果明细

需要通过程序同时把数据导入到这三个表中.

这个场景需要忽略掉三个表的相关性数据校验. 因为这个相关校验逻辑个性化太强,很难通过配置实现.

配置过程

多个相关表同时导入需要先配置,才能执行

01

创建事务代码

  • 创建事务代码ZUP_BCD_MUL 调用多表导入程序:ZUPLOAD_TABLE_CONTENT_MUL

  • 创建事务代码ZUP_BCD_H 调用单表导入程序: ZUPLOAD_TABLE_CONTENT

  • 创建事务代码ZUP_BCD_I  调用单表导入程序: ZUPLOAD_TABLE_CONTENT

02

配置多表关系

在配置表ZTBC001D - EXCEL导入导出模板支持多表单(最多允许20个) 中配置事务代码和多表的关系.

每个TCODE 最多只能配置20个相关表.

多表关系可以直接配置表名,也可以配置TCODE ,通过配置ZTBC001获取表名.

下图的配置中:

  • ZUP_BCD_H  通过TCODE关联ZTBC001中的表

  • ZUP_BCD_I   通过TCODE关联ZTBC001中的表

  • ZTBCD_I2  直接使用表.

顺序字段内容控制了表在EXCEL中的标签顺序及导入后的屏幕界面呈现时的标签顺序

03

配置ZTBC001

在ZTBC001中维护TCODE 及相关的检查函数,出错保存等信息.

ZUP_BCD_MUL 表示总体处理的TCODE

ZUP_BCD_H  表示抬头表处理的TCODE

ZUP_BCD_I    表示行项目表出差的TCODE

因为ZTBCD_I2在ZTBC001D中直接配置的表名. 所以无需在ZTBC001中配置

04

配置每个表的模板

在配置表ZTBC001A为每个单独的表配置模板, 如果没有配置,则使用该表的全部字段.

具体配置方式详见链接

无峰,公众号:ABAP 技巧与实战SAP工具箱 配置导入模板

需要注意的是:

如果ZTBC001D中配置的是表名,则单表的模板, 字段ZTBC001A-TABNAME 中只能填写表名.

如果ZTBC001D中配置的是TCODE, 单表模板配置里可以填写事务代码或表名.

如下图,只为两个表配置了模板字段,个别字段加了非空检查,关键字段设置了重复性检查

执行多表导入

执行的过程与单表导入的过程差不多. 界面样式稍有差异.

01

调用TCODE

调用之前创建的TCODE  ZUP_BCD_MUL 表名位置会填ZTBC001- FILENAME(模板文件名).

02

产生模板

勾选产生模板,然后执行产生EXCEL模板,产生的模板中包含了三个表的字段模板(其中,前两个是根据配置表获取, 第三个表没有配置,获取所有表中字段)

03

导入数据

在模板中输入需要导入的数据,保存后, 在程序选择屏幕去掉产生模板复选框.执行导入数据

04

显示导入的数据

导入的数据会呈现在屏幕上,通过标签页区分不同的表

根据选择屏幕上的复选框 'X' 错误数据和正确数据一起显示 '' 错误数据单独显示

控制报错数据的显示方式

  • 图一 报错数据单独显示

  • 图二 报错数据和正常数据一起显示

图一

图二

05

保存数据

点击保存后 ,数据会分别写入相应的表ZTBCD_H/ZTBCD_I/ZTBCD_I2

总结

程序ZUPLOAD_TABLE_CONTENT_MUL 是在程序ZUPLOAD_TABLE_CONTENT的基础上,增加了同时处理多表的功能. 两个程序同时支持模板配置中的所有显示规则,检查规则. 具体的配置逻辑可以理解为先为每个单表完成配置

详见链接

无峰,公众号:ABAP 技巧与实战SAP工具箱 配置导入模板

然后在多个单表配置的基础上, 再通过ZTBC001D配置表把所有单表配置的TCODE整合到一个多表TCODE中.

需要注意的是:

单表TCODE,调用ZUPLOAD_TABLE_CONTENT

多表TCODE,调用

ZUPLOAD_TABLE_CONTENT_MUL

目前尚未在项目中实际使用过这个多表导入.

究其原因是实际很少有多表同时导入的场景.因为表间关系比较复杂,往往需要先把多表数据导入一个临时表(主从表),再通过程序处理写入多表.

THE

END

约定

如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.

(如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程. 越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.)

公众号 : syjf1976_abap

          ABAP开发技巧

微信号 : 392077

请微信联系管理员:

syjf1976

sharry_xlp

Yannick_Duan 申请进入公众号讨论群

SAP工具箱 多表导入程序相关推荐

  1. SAP更新数据表的程序执行需要SE38后执行

    SAP更新数据表程序: 1:RVKRED88,SD:模拟:更新错误后SD信贷数据重组 2:RVKRED77,SD:更新错误后SD信贷数据重组 3:SDRQCR21,SDRQCR21: Recovery ...

  2. SAP工具箱 行表转列表的通用类

    点击蓝字 关注我们 一 前言 前一篇文章介绍行表转列表的实现方式. 详见链接 无峰,公众号:ABAP 技巧与实战ABAP基础知识 行表与列表的转换 文末提到会可以把转换过程封装到一个通用方法中, 这样 ...

  3. SAP工具箱 自动生成发出接口程序(二 接口定义表)

    点击蓝字 关注我们 一 前言 前文介绍了发出接口程序的执行原理及怎么自动生成发出接口程序. 详见链接 无峰,公众号:ABAP 技巧与实战SAP工具箱 自动生成发出接口程序(一) 本文主要介绍生成发出接 ...

  4. SAP工具箱 自动生成发出接口程序(三 配置表)

    点击蓝字 关注我们 一 前言 前文讲了自动生成发出接口程序的基本操作及接口定义表的用处 详见链接 无峰,公众号:ABAP 技巧与实战SAP工具箱 自动生成发出接口程序(一) 详见链接 无峰,公众号:A ...

  5. SAP工具箱 配置导入模板

    点击蓝字 关注我们 一 前言 前文介绍了通用导入程序 详见链接 无峰,公众号:ABAP 技巧与实战SAP工具箱 通用导入程序 本文主要介绍怎么给特定表的导入配置模板及数据检查 为了讲解的更清楚,更有条 ...

  6. SAP工具箱 数据同步平台(九 与PO整合)

    点击蓝字 关注我们 一 前言 数据同步平台是在ABAP中开发的一个数据同步工具,类似于LTRC,通过配置实现任意两个数据库的数据同步(ABAP需要配置相关的外部数据库连接). 数据同步平台的底层通过调 ...

  7. SAP支持包、插件程序和附件

    SAP支持包.插件程序和附件 Support package支持包:增强sap系统功能的程序或纠正sap系统错误的程序 1.  导入support package支持包,tcode:SPAM 在用sp ...

  8. html加了文档声明之后页面错乱,为登陆页面扩展和配置设计导入程序

    为登陆页面扩展和配置设计导入程序 此部分介绍如何针对登录页面配置和扩展(如果需要)设计导入程序.登陆页面中介绍了导入后使用登陆页面. 使设计导入程序提取自定义组件 以下是使设计导入程序识别自定义组件的 ...

  9. java excel 导入 关闭,excel关联别的表格数据库-java实现excel表导入,有的字段数据库中没有,需要关......

    excel中我想用另一张表的内容我数据库,当我在一个... 用VLOOKUP函数,=VLOOKUP(lookup_value,table_array,col_index_num,range_looku ...

  10. SAP abap内表分类与增删改查操作

    SAP abap内表分类与增删改查操作 1.内表的分类 1.1.标准表 (standard table ) 系统为该表每一行生成一个院级索引.填表是可以将数据附加在现有行之后,也可以插入到指定的位置, ...

最新文章

  1. Go 学习笔记(18)— 函数(04)[闭包定义、闭包修改变量、闭包记忆效应、闭包实现生成器、闭包复制原对象指针]
  2. 了解关于Hadoop的12个事实
  3. 洛谷 P3376 【模板】网络最大流
  4. Python 实现有道翻译命令行版
  5. 我在神策做研发 | 与客户难题“对抗”的百余天
  6. 了解 JavaScript (4)– 第一个 Web 应用程序
  7. emqx—mqtt消息服务器
  8. java 窗口 单例_java单例模式实现面板切换
  9. loadrunner java_如何使用LoadRunner开发JAVA Vuser
  10. python sys.path.append()添加路径_Python调用CST进行天线建模仿真:环境搭建指南
  11. dropbox离线安装版下载方法
  12. HTTP请求头,应答头类型相关问题
  13. 技术圈儿007---Redis 生产架构选型解决方案
  14. mysql触发器报错_mysql触发器实例:莫名其妙的错误?
  15. 机器学习——概率模型
  16. 步进电机基础(4.2)-步进电机的技术要点之磁性材料、绝缘材料与线圈、轴承、减速器
  17. 找了这么多毕业设计题目,反而不知道选什么了
  18. 大城市灯红酒绿,海伦司靠一杯酒如何建起护城河?
  19. 中国婚博会PHP高级工程师、安全顾问汤青松:浅析Web安全编程
  20. 最快的计算机操作,世界十大最快的超级计算机

热门文章

  1. office visio 2007 画流程图
  2. [Threejs]环境光与HDR贴图
  3. formData上传音乐文件
  4. 玩转3D全息图像!AI即刻生成
  5. android 自动校准时间,Android客户端怎么同步校准服务器上的时间
  6. sql优化的几种方式
  7. 这三个博弈论新趋势,正深刻影响深度强化学习道翰天琼认知智能未来机器人接口API
  8. 欧姆龙编程软件SysmacStudio卸载方法
  9. Java指纹识别开源代码SourceAFIS使用入门
  10. java batik_batik详解1