通常情況下,對于單純的報表類型的簡單構造的源代碼,我們很容易實作其在不同系統之間的共享,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)]