ABAP基础知识 传输请求处理(三 传输)

前言

传输请求是ABAP开发的一个很重要的工具,主要负责把开发的对象或配置的内容从源系统(开发系统)传输到目标系统(测试/生产系统).

按照传输请求的生命周期,把相应的功能分为以下几组

  • 记录(把开发的对象或配置的内容记录在特定的传输请求中)

  • 管理(管理传输请求中的相关内容)

  • 传输(把传输请求中记录的内容传递到目标系统)

本文主要介绍传输请求传输的相关功能

基本概念

讲解传输请求的传输传输之前, 先介绍一下相关的基本概念.

  • 资源库对象 : 通过ABAP工作台创建的开发对象(数据字典,程序,函数,类等).资源库对象与集团无关,同一个系统所有集团都能访问资源库对象.

  • 集团不相关配置: 配置表没有MANDT关键字. 配置的内容在同一个系统的所有集团都能查看

  • 集团相关配置: 配置表有MANDT关键字,配置的内容在同一个系统只有特定的集团能查看.

特例: SMARTFORM 严格来讲,算资源库对象,但是和集团相关. (在200集团创建的,300集团无法访问). 估计还有些特殊的资源库对象类似于SMARTFORM.

传输分类

根据系统/集团范围把传输区分为两种

  • 同系统跨集团间传输

  • 跨系统传输

同系统跨集团传输

同系统跨集团传输的本质是把请求中指定的表内容从源集团复制到目标集团

针对集团相关的对象: 集团相关的配置表,SMARTFORM,授权体系的角色等.

资源库对象,集团不想关配置无需同系统跨集团传输,因为同系统的所有集团都能访问.

01

传输方式A

标准功能:事务代码 SCC1

指定源集团, 目标集团是当前登录集团

请务必勾选将任务包含在请求中(释放的请求无需勾选,释放任务后,会建立任务包含对象于请求的关系).

点击立即启动,系统会读取源集团中指定主键的内容同步到当前集团.

22ba32ba47c6416d8e66470012e39065.png

02

传输方式B

根据同系统跨集团传输的基本原理,所有可以跨集团复制数据的工具都可以作为配置的传输工具.

比如之前发布的数据同步平台. 

详见链接.

无峰,公众号:ABAP 技巧与实战SAP工具箱 数据同步平台( 一 简介 )

详见链接

无峰,公众号:ABAP 技巧与实战SAP工具箱 数据同步平台( 二 配置 )

增强了源/目标的概念后, 可以用来作为配置表内容的传输工具.

如下图, 可以把指定表的内容从当前系统的指定源集团传到到当前系统的指定目标集团.这个工具也可以跨系统传输配置内容

f886c7dd3b545fc5def0ad0c62caee6c.png

跨系统传输配置

把传输请求中的所有对象从开发系统传输到目标系统.跨系统传输之前需要先配置TMS(传输管理系统).

TMS配置似乎需要在集团000中执行,配置TMS不是很困难的事情, 因为没有环境. 这里只能截取几张已经配置好的图片, 大致了解一下配置过程. 示例的传输系统是标准的三系统体系(开发/测试/生产). 复杂的传输TMS配置,可以把多个系统构成系统组,传输请求会进入这个系统组的每个系统.

01

建立传输域

在一个系统创建传输域,一般在开发系统中配置TMS,创建相应的传输域

efbe6734e166f81487942baa8677298c.png

02

引入相关系统

在传输域中添加相关的系统

b10bf99d50ff0030d593b045b71bd5e6.png

03

配置传输路径

为这些系统指定传输的路径

190de3b8ee4bd0f556a33654697c6de2.png

04

相关参数

双击引入系统中的系统. 可以看到该系统相关的传输参数

参数的搜索帮助可以找到所有可用的参数. 

几个有用的参数

  • NO_IMPORT_ALL 1       关闭全部导入功能(该功能可能由于失误点击,导致系统灾难)

  • SP_TRANS_SYNC OFF    关闭组件刷新, 提高STMS加载性能

8dc19dfefd5f2eceb9ab1fa8bbcfe566.png

c27151cf9b480031fd60affb47652f0b.png

跨集团传输步骤

跨系统传输包含了如下几个步骤. 其中复制文件/添加导入队列 在自动处理时顺序需要调换一下.

  • 释放

  • 复制文件

  • 添加导入队列

  • 导入

01

释放

在源系统中把相应的传输请求释放(SE10).先释放任务,再释放请求.

释放的传输请求会在指定的目录下产生两个和传输请求相关的文件

比如传输请求 S4DK936078

/usr/sap/trans/data/R936078.S4D

/usr/sap/trans/cofiles/K936078.S4D

释放的传输请求,根据TMS路径配置, 系统会自动把传输请求添加到目标系统的TMS队列中

46fe3f23050a4626cb9fd3068700ec9b.png

02

复制文件

复制文件的动作不是必须的.

根据TMS及文件系统的配置(相关的服务器如果通过共享目录使用同一个/usr/sap/trans目录, 则无需复制文件.

未复制文件的请求, 在STMS中的导入队列中,可以看到下图的图标. 可以手工点击按钮复制, 也能通过导入功能自动触发复制.

c3dc2d3c9130962e13e44277f3eb30a3.png

03

手工复制

之前曾经介绍过一个工具, 传输请求处理大师(曾经的幼稚,起了这个名字). 这个工具可以方便的导入/导出传输请求到本地.

详见链接

无峰,公众号:ABAP开发技巧SAP工具箱之开发代码转移(乾坤大挪移)

标准导入,导出工具,需要指定传输请求的文件名

CG3Y  导出服务器文件

CG3Z  导入服务器文件

e1dc799174078e3fc6d5f7fa72fc9c39.png

0d3f24c08994498e7afaa429e11dedd8.png

04

自动加入导入队列

在TMS管理范畴的系统中. 传输请求会自动按照如下逻辑写入目标系统的导入队列

开发系统释放后, 写入测试系统的导入队列.

测试系统导入后,无论是否报错,写入生产系统的导入队列

05

手工加入导入队列

进入STMS指定的系统的导入队列 附加->其它请求->添加. 可以手工添加传输请求到导入队列中.前提是指定系统的传输目录中存在该请求的相关文件.

b91dec14fd165c2d2038a699e9c2d2ba.png

06

导入

执行STMS(同一个传输域的任意系统进入)

选择导入概览

ab21f42f129e1e2bd88f3589a6fac7a4.png

双击系统,进入导入队列. 选中请求, 点击导入按钮即可.

61e1ca20042e23ab4e0ce224c225066e.png

07

导入日志

可以在导入日志中查看报错的具体信息. 一般的报错都是传输中漏掉了对象,在新的请求中包含遗漏的对象,传输到目标系统后, 重新导入即可解决问题

c80bc920d2bbd44c7a63d388704ad20d.png

08

跨系统执行导入

可以在传输域的任意一台服务器上执行. 如果导入的系统和当前登录的系统不一致, 可能需要二次登录导入的系统. 一个解决方案是在SM59中修改传输请求自动产生的RFC目标, 比如 TMSSUP@S4Q.DOMAIN_S4D ,填上登录用户后, 跨系统执行导入就无需二次登录了.

1acba1de79070d322cbfa26e673dec1b.png

底层处理

SE10释放,STMS添加队列,导入等操作都调用了底层操作系统的命令 TP 和R3TRANS.  新版本的ECC/S4的STMS功能完善了许多. 基本上无需再通过操作系统命令行解决问题了. 

但是如果确实碰到什么意外. 也可以尝试使用操作系统的命令行执行TP/R3TRANS 来处理一些极端情况的传输报错问题.

总结

系统标准的传输体系已经相当的完善了. 如果非要挑剔, 只能找到如下槽点

  • 传输请求文件导出/导入到本地系统很不方便

  • 系统没有提供一键处理,在开发系统中快速把请求传到生产系统.

  • SE10/STMS非ALV的清单方式不利于排序,过滤等操作.

  • ......

这些槽点将在一个传输请求增强处理工具中解决. 

下篇文章会介绍一下这个工具.

约定

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

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

4b1a44f20b9e69ffce07107293193bbd.png

公众号 : syjf1976_abap

          ABAP开发技巧

微信号 : 392077

请微信联系管理员: 

syjf1976 

sharry_xlp  

Yannick_Duan 

申请进入公众号讨论群提问或者参与话题讨论

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ABAP是SAP系统的编程语言,可以用于开发和维护SAP系统。在ABAP中,可以使用HTTP请求来与外部系统进行通信和维护请求参数。 要在ABAP中调用HTTP维护请求参数,可以按照以下步骤进行操作: 1. 首先,创建一个HTTP客户端对象,可以使用类`cl_http_client`来实现。使用`CREATE`关键字创建该对象,然后可以设置相关的属性,如请求URL、请求方法、请求头等。 2. 设置请求参数,可以使用`SET_REQUEST_HEADER`方法来设置请求头信息,如设置`Content-Type`为`application/x-www-form-urlencoded`,然后使用`SET_FORM_FIELD`方法来设置具体的请求参数。 3. 发送HTTP请求,可以使用`SEND`方法来发送HTTP请求。可以使用同步或异步的方式发送请求,根据具体需求选择适合的方法。 4. 获取响应数据,可以使用`RECEIVE`方法来接收HTTP响应。可以使用`GET_RESPONSE_HEADER`方法获取响应头信息,使用`GET_FORM_FIELD`方法获取具体的响应参数。 5. 处理响应数据,根据响应结果进行相应的处理。可以将响应数据存储到内部表或者使用其他方式进行处理。 完成以上步骤后,就可以在ABAP中调用HTTP维护请求参数了。根据具体的需求,可以进行进一步的代码优化和错误处理以确保请求和响应的正确性。 总之,ABAP可以通过创建HTTP客户端对象、设置请求参数、发送HTTP请求、接收响应数据和处理响应结果等步骤来调用HTTP维护请求参数。使用ABAP进行HTTP调用可以实现与外部系统的数据交互和参数维护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值