transport request 实现原理

简介: transport request 实现原理

通常情况下,对于单纯的报表类型的简单构造的源代码,我们很容易实现其在不同系统之间的共享,COPY and PASTE 然后创建激活就可以了,但是对于不是由纯字符型构成的开发对象,比如说一个包含了很多DYNPRO的复杂程序或者是很多嵌套结构从而需要依次分别手动创建的大型程序,要实现从一个系统到另一个系统的共享就不是特别的直观。

SAPLink(http://wiki.sdn.sap.com/wiki/display/ABAP/SAPlink)就是为了这个目的而开发的一个开源工具,但是在使用之前我们必须先安装这个工具,这又造成了一些不方便,假设我们开发了一些工具,需要在不同的项目中使用,如果我们每次都要先安装一个SAPLink,再用SAPLink来安装我们的工具的话,就会显得特别麻烦。

下面将会向大家介绍一个完全使用SAP标准功能来实现这个功能的具体步骤,假设的场景是我们有两个演示系统RS6和CM1,我们在系统RS6上开发了很多ABAP对象,现在希望能够将RS6上的ABAP对象快速的移植到CM1上面来(RS6和CM1完全不相关,也没有传输路径)。


登录原始系统RS6, 运行事务代码 SE01,我们可以看到需要移植的ABAP对象。

[外链图片转存失败(img-v9Bkzo8M-1563802788174)(https://user-images.githubusercontent.com/5669954/32713250-65a65b40-c883-11e7-85e8-659263887996.png)]

2.下一步是Release这个CR (change request)RS6K907449, 这一步完成之后我们

就会看到在Application Server上两个文件已经生成了(T_CODE; AL11)。

第一个文件, Cofiles: /usr/sap/trans/cofiles/K907449.RS6

[外链图片转存失败(img-Zf2uPDBb-1563802788176)(https://user-images.githubusercontent.com/5669954/32713251-65dee0e6-c883-11e7-8b83-764e0830a49a.png)]

第二个文件, Data: /usr/sap/trans/data/R907449.RS6

[外链图片转存失败(img-X31rL8ji-1563802788176)(https://user-images.githubusercontent.com/5669954/32713252-6615fcd4-c883-11e7-9631-42b263aeefdb.png)]

3.然后我们使用CG3Y这个事务代码将这两个文件下载到本地,他们就会在后面的传输中被用到.

[外链图片转存失败(img-hw6htkBt-1563802788177)(https://user-images.githubusercontent.com/5669954/32713253-664c6a8a-c883-11e7-967d-c1a8039c9111.png)]

*对于另外一个文件R907449.RS6执行同样的操作即可

得到这两个文件之后,我们在RS6系统上的工作就完成了,现在登录到另外一个系统CM1,接下来的一步是使用事务代码CG3Z来讲这两个文件上传到Application Server上指定的目录,这个目录就是每个SAP系统专门用于存放传输文件的目录。每个系统的路径也许会不一样,此处的路径在其他系统上不一定起作用。

[外链图片转存失败(img-AIYvEjyJ-1563802788178)(https://user-images.githubusercontent.com/5669954/32713254-6682bc98-c883-11e7-8c76-2641f51ed0cc.png)]

*对于文件R907449.RS6, 将路径改为‘\SAPCM01\sapmnt\trans\data\R907449.RS6′.即可

5.文件上传之后我们需要使用事务代码STMS将这个CR RS6K907449导入到Import Queue中。

[外链图片转存失败(img-vlXMK7fD-1563802788179)(https://user-images.githubusercontent.com/5669954/32713255-66bba8b4-c883-11e7-8eb6-b4804143ddfe.png)]

在弹出的对话框中输入这个CR:

[外链图片转存失败(img-qRuTDLDn-1563802788179)(https://user-images.githubusercontent.com/5669954/32713257-66eef32c-c883-11e7-84dc-5e2a88059dbd.png)]

6.在CR被添加到Import Queue里面后,我们就可以正式开始导入了:

[外链图片转存失败(img-Z3JQaCyr-1563802788180)(https://user-images.githubusercontent.com/5669954/32713259-672556a6-c883-11e7-8e40-d819c33a2e55.png)]

7.导入成功后我们双击这个CR就可以看到所有的ABAP对象都被移植到了新的系统

[外链图片转存失败(img-bDxCLd7M-1563802788180)(https://user-images.githubusercontent.com/5669954/32713261-67b57592-c883-11e7-9e37-c4a521fc3786.png)]

可以看到采用SAP标准功能实现复杂ABAP对象的迁移是比较简单的,我们不需要安装任何的第三方工具,我们所要做的仅仅是创建一个CR将所有对象包含,然后Release这个CR, 得到两个文件( KXXXXXX.SystemId & RXXXXXX.SystemId ),最后按照传输步骤导入到新系统即可.这种方法对于很多可重用的对象的迁移是非常有帮助的,同时由于我们使用的是SAP标准功能,所以对于几乎所有类型的ABAP对象都有很好的支持。

tcode CG3Y, CG3Z

each time you release a TR, system creates 2 files for it.

cofile: metadata of a TR

data file: a content of TR itself

/usr/sap/trans/cofiles/K.XXX

/usr/sap/tran/data/R.XXX


BAdI for TR release

[外链图片转存失败(img-kk35aPTE-1563802788181)(https://user-images.githubusercontent.com/5669954/33642514-46b13a6c-da75-11e7-8e2e-cf4913bafad0.png)]


相关文章
|
存储
HTTP的PUT请求是干什么的?底层原理是什么?
HTTP的PUT请求是干什么的?底层原理是什么?
1079 3
|
7月前
|
存储
使用 ABAP 代码创建 TR - Transport Request(传输请求)
使用 ABAP 代码创建 TR - Transport Request(传输请求)
45 0
|
Apache Android开发
解决Failed resolution of: Lorg/apache/http/client/methods/HttpEntityEnclosingRequestBase的方案
解决Failed resolution of: Lorg/apache/http/client/methods/HttpEntityEnclosingRequestBase的方案
252 0
解决Failed resolution of: Lorg/apache/http/client/methods/HttpEntityEnclosingRequestBase的方案
|
11月前
|
Java 索引
Transport Client 客户端的使用
Transport Client 客户端的使用
|
搜索推荐 数据库
HTTP协议中的Session是什么?底层原理是什么?
HTTP协议中的Session是什么?底层原理是什么?
|
前端开发 Python
解决报错:Websocket connection to‘ws://127.0.0.1:5000/socket.io/?EIO=4&transport=websocket’failed:Error
报错全文为:Websocket connection to‘ws://127.0.0.1:5000/socket.io/?EIO=4&transport=websocket’failed:Error during Websocket handshake:Unexpected response code:400。如下图所示。
解决报错:Websocket connection to‘ws://127.0.0.1:5000/socket.io/?EIO=4&transport=websocket’failed:Error
|
编解码 缓存 网络协议
Netty应用:快速了解http各版本的特性 HttpServer的小demo
Netty应用:快速了解http各版本的特性 HttpServer的小demo
Netty应用:快速了解http各版本的特性 HttpServer的小demo
|
应用服务中间件
Netty的http client连接池设计
Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。本文转载自 hetaohapp 的CSDN博客。将为大家分享使用Netty作为http的客户端的场景下,pool该如何进行设计。
13649 0
使用ABAP代码释放某个传输请求 -transport request
使用ABAP代码释放某个传输请求 -transport request
156 0
http client 实现 keep-alive 源码探究
前几天在分享"实现自己的wget"的时候,因为我们的请求是一次性的,http 头里设置的`Connection: Close`。在`HTTP/1.1`为了提升`HTTP 1.0`的网络性能,增加了`keepalive`的特性。那么浏览器在请求的时候都会加上...
841 1