摘 要: 主要分析SAP系統底層軟件傳輸架構,通過了解SAP系統底層傳輸機制,達到能夠清楚分析傳輸故障的目的,并擴展傳輸使用范圍,通過傳輸系統進行SAP系統補丁升級和實現手動傳輸的具體方法。
關鍵詞: SAP;系統管理;傳輸管理
SAP公司的ERP(Enterprise Resource Planning)軟件以其強大的行業解決方案、靈活的配置和開放性的接口等諸多優點正逐步成為各企業的首選ERP軟件。其ERP產品線非常全,從小型企業的SAP Business One到大型企業的SAP Business Suite都提供了強大的行業解決方案。從底層技術架構上看,所有產品都離不開SAP軟件的基座:SAP NetWeaver。而本文所要闡述的傳輸管理系統就是基于SAP NetWeaver的一項功能。通過傳輸管理系統,SAP系統管理員(BASIS)不僅可以將開發人員的程序、數據庫表、Customazing配置從開發機傳輸到測試、生產機,還可以傳輸用戶、角色、Notes補丁等。而且管理員在安裝SAP ERP系統的語言包、Support Package、Add-On、Notes等基礎功能時,傳輸系統是必須使用的工具,由此可見傳輸系統的重要性。本文就SAP ERP軟件的傳輸功能進行深入分析,探討其工作原理,并引申使用多種傳輸方法實現其傳輸功能。
1 SAP ERP軟件系統結構及傳輸介紹
1.1 SAP NetWeaver系統結構
SAP NetWeaver是一種可以隨時用于業務運作,服務源于架構SOA(Service Orinted Architecture)的軟件平臺,適用于SAP的所有解決方案。SAP NetWeaver7.0產品在SOA的基礎上,推出面向企業級服務的SAP企業服務信息系統基礎架構ESA(Enterprise Service Architecture)。其組件包括門戶、應用服務器、商務智能解決方案以及系統整合和數據整合技術,貫穿始終的是組合應用的框架和產品生命周期管理。在底層還可以擴展.NET、WebSphere和其他第三方專業系統,并為客戶提供管理不同基礎設施、降低復雜層度和消減總體擁有成本的靈活性[1],SAP NetWeaver架構如圖1所示。
1.2 SAP ERP軟件Domain傳輸域的構成
構建Domain傳輸域是SAP ERP系統之間實現傳輸的前提。Domain傳輸域包含了所有加入到當前域的SAP ERP系統。在一個Domain傳輸域中只能有一個SAP ERP系統作為傳輸域控制器(一般按照系統的安裝順序,先裝DEV系統則定義DEV為傳輸域控制器),其他系統安裝配置好后加入到當前傳輸域。傳輸域中的SAP ERP系統按照一定順序構建成一個或多個傳輸路徑,這些傳輸路徑和路徑上的SAP ERP系統就組成了Landscape。因此一個Domain內可以有多個Landscape存在,典型的傳輸域模型如圖2所示。
圖2中,整個系統組成Domain傳輸域,包括3個Landscape傳輸路徑:DEV—TEST—PROD,DEV—SAND,DEV—TEST—TRAIN。在某個Landscape傳輸路徑下,還可以存在多個不同集團之間的傳輸。例如開發、配置系統分別為集團100和200,SAND系統為800,則Landscape傳輸路徑DEV—SAND可以有DEV(100)—SAND(800)和DEV(200)—SAND(800)兩條傳輸路由(Transport Routes)。
圖2中所示的DEV為開發系統,作用是進行程序開發和配置。按照SAP的標準,在DEV系統中,應該是盡量避免有客戶數據。開發完成后,所有正確的配置應該傳輸到測試系統中進行測試;TEST為測試用系統,其作用是驗證開發系統中所開發的程序和配置是否正確。為了完成測試,應該在這個系統中輸入少量客戶數據。如果測試的結果是某項配置沒有達到目的,應該返回開發系統修改后再進行測試,如此循環直到配置完成;PROD為正式上線的生產系統。生產系統完全就是為了生產。為了保證系統的安全,生產系統不允許有任何與生產無關的數據;SAND為沙盒系統(又被稱為playground),主要給顧問做程序開發測試使用;TRAIN為培訓系統,主要給關鍵用戶和最終用戶學習培訓使用。
1.3 三種常見的Landscape結構
根據SAP ERP企業用戶各自的情況,傳輸域配置各不一樣。大多數用戶由于資金預算限制,一般會節省SAND、TRAN等系統而采用圖3所示的幾種Landscape結構。
1-system Landscape為一套硬件服務器安裝SAP R3系統,再通過不同集團(Client)區分DEV、TEST、PROD子系統,分別用作SAP的開發、測試和生產系統。
2-system Landscape為兩套硬件服務器,其中一般將性能大的單獨安裝為PROD用作生產系統,性能小的用作開發、測試系統。
3-system Landscape為3套硬件服務器,分別安裝單獨的SAP系統用作開發、測試、生產系統,各系統底層硬件可以不同,但SAP軟件系統版本高度一致。
3種Landscape架構各有優劣,其中1-system Landscape最為省錢,畢竟只用了1套硬件系統,通過Client的方式實現了開發、測試、生產3套系統軟隔離。但是缺點是不能實現真正意義的傳輸,而且3套系統共用同1套SAP底層數據庫,如果操作系統或SAP底層軟件故障,3套系統都將不能訪問和使用。3-system Landscape最安全且方便管理。通過獨立的3套系統,分別建立RFC連接后,獨立的硬件系統即可實現各套系統之間各種數據的傳輸。2-system Landscape介于1-system Landscape和3-system Landscape兩種架構之間,是一種折中的架構方式。
1.4 集團相關數據(Client-specific)和跨集團數據(Cross-client)的區別
在圖3中,不論是何種Landscape形式,DEV、QAS、PROD都表現為上層獨立模塊,彼此間數據各自獨立,此部分為集團相關數據。而跨集團數據則為底層共用數據部分,只能通過獨立安裝SAP ERP軟件來分隔,在圖中為“跨集團客戶定制”和“集成知識庫”。
集團相關數據包括權限、賬號、角色、業務數據等。如果傳輸請求的內容是這部分,傳輸一定要選對目標集團,傳輸請求只對目標集團有效。
跨集團客戶定制數據包括開發類數據、ABAP程序、表定義、各種程序補丁等。如果傳輸請求的內容為跨集團客戶定制數據,傳輸目標集團可以任選一個(包括SAP系統安裝后生成的000、001、066),傳輸請求內容變更到該SAP ERP系統的所有集團。
1.5 SAP ERP系統傳輸域部署方法
按照實際項目要求及資金預算考慮,選擇何種Landscape進行部署。同時還要考慮特殊要求。比如有些公司開發機、測試、生產機分別部署在不同城市。但總的來說,SAP ERP系統的傳輸域部署是在SAP ERP系統軟件部署完成后進行配置的。
進入TMS(Transport Management System)建立傳輸域。首先登錄SAP GUI(SAP Graphic User Interface)客戶端后使用T-code(Transaction-code)事物代碼:STMS進入TMS管理配置界面。當SAP ERP系統安裝完成,首次進入TMS進行配置時系統會提示配置傳輸域。配置完成如圖4所示。
配置完傳輸域后即進入配置Landscape階段。點擊菜單Overview的System選項將各套系統添加到Domain,點擊菜單Overview選擇Transport Routes選項進入Landscape傳輸平臺配置,然后點擊菜單Configuration的Standard Configuration選項選擇并配置需要的系統架構即可。圖5為3-system Landscape配置完成圖。
2 SAP系統軟件傳輸的作用和功能
2.1 SAP系統軟件傳輸的作用
SAP系統的配置和開發過程是一個持續改進的過程,即配置、開發到測試到正式使用,然后客戶在使用的過程中遇到問題,顧問繼續修改部分不足,重復以上的測試到正式使用的步驟。以上每一次在開發系統中的創建和修改工作都會生成多個請求號,跨系統操作則需要傳輸來完成。一旦顧問完成配置和開發,即進行請求號釋放(事物代碼SE01,釋放之前顧問可以將多個請求號合并,減少傳輸工作量),釋放之后系統后臺會產生傳輸文件,并將傳輸請求號加入到目標系統的傳輸隊列中(對應SAP自有表TRBAT和TRJOB)。在目標系統中經過刷新請求號隊列,系統會檢查有沒有后續傳輸路徑,如果有且當前系統傳輸完畢,請求號又會自動產生新的傳輸文件,重復上面的操作。當然,如果事先不配置好傳輸路徑,即傳輸的目標系統,那么就不會生成傳輸文件了。
事物代碼SPAM用來安裝Support Package,事物代碼SAINT用來安裝Add-On,事物代碼SNOTE則用來打NOTES補丁。雖然各自的功能不同,只要是在開發系統中進行安裝時生成了請求號,最終都可以調用SAP的傳輸系統,將補丁直接傳輸到測試和開發系統中,而不用分別安裝3套系統。既然有請求號,其底層傳輸動作就跟配置和程序的傳輸一樣,只是傳輸的內容變成了補丁。
以上傳輸過程是建立在2-system Landscape及以上Landscape架構上的。如果用戶因特殊原因選擇1-system Landscape架構,傳輸就只是同系統不同集團Client之間傳輸。對應圖3中1-system Landscape為“跨集團客戶定制”的改變,事物代碼為:SCC1。
2.2 SAP軟件傳輸功能分析
當系統配置完TMS和Landscape后,SAP即在服務器上關聯了傳輸路徑和連接方式等相關內容,用戶的所有前臺傳輸操作都將按照配置進行傳輸。這些配置參數保存在Transport profile文件中,文件名為tp_<domain>.PFL,其中<domain>是配置在TMS中的傳輸域名。
配置和程序的傳輸部署在操作系統層就是tp軟件的動作。tp是SAP應用層面反應到操作系統層面進行傳輸的程序,支持UNIX系統和Windows系統之間的傳輸。當BASIS管理員通過SAP客戶端進行請求號傳輸時,tp首先建立需要傳輸的傳輸號列表,然后通過RFC連接到遠程系統,建立連接后按列表進行傳輸。在OS層面,tp在進行數據以及版本升級補丁的傳輸時,也會調用另外一個傳輸程序R3trans,SAP的標準文檔并沒有給出R3trans底層的傳輸過程,涉及到系統升級相關的內容SAP不建議手動操作。傳輸的目錄文件默認情況下在/usr/sap/trans/cofiles和/usr/sap/trans/data兩個目錄下,文件名稱跟TMS實際傳輸列表一致(TMS傳輸請求號類似DEVK123456,則文件名字類似K123456.DEV)。管理員能監控目標系統的該兩個目錄的變化來監控傳輸[2]。
3 軟件傳輸功能的應用實例分析
經過以上對傳輸動作的逐層分析,了解了SAP系統傳輸的底層操作步驟后,SAP系統管理員完全可以直接跳開SAP傳輸管理界面,對開發顧問生成的傳輸請求在操作系統層面進行手動傳輸。以某公司的SAP項目為例,前期配置2-system Landscape架構,后期增加預算調整為3-system Landscape后,系統中已經有部分配置和開發程序傳輸到PROD中。這就需要手動傳輸來補QAS系統的傳輸請求。傳輸請求的傳輸有一些是必須按照先后順序來傳輸的。只需要按照請求號從低到高的排列順序進行傳輸就可以了。
3.1 具體實現步驟
?。?)首先需要進入TMS將現有Landscape打亂。具體方法為添加一個Virtual System代替中間節點,這樣各套系統中的傳輸記錄不會丟失,現有系統的Landscape又獨立出來。完成后分別從DEV、QAS、PROD看傳輸域類似圖6所示。
?。?)進入開發系統的操作系統,轉到傳輸所使用的目錄地址:/usr/sap/trans/cofiles(控制文件)和/usr/sap/trans/datafile(數據文件)兩個目錄下,同時找到需要傳輸的請求號所對應的文件。在目標系統(測試或生產)系統的操作系統,查看以上兩個傳輸目錄,確定需要傳輸的請求號不在其中。
?。?)通過rcp(remote file copy)命令或ftp進行手動傳輸文件拷貝(注意ftp在進行傳輸的時候使用ASIC傳輸模式)。拷貝完成后還要將屬組進行調整,讓傳輸文件能被系統中的SAP用戶訪問,命令為:chown<sap用戶>:<sap管理組>文件名。
(4)在/usr/sap/trans/bin目錄中執行以下命令:
tp connect <SID>
tp addtobuffer DEVK123456 <SID>
tp import DEVK123456<SID>Client 800
其中<SID>為目標系統的實例號,800為目標系統Client號。
tp命令格式:tp<command>[argument(s)][option(s)]。tp命令<command>參數包括Exporting、Importing、Buffer Actions、Disk Space、Information、Special Functions功能,通過正確使用帶參數的tp能完成所有SAP客戶端中的TMS傳輸工作。
?。?)如果是補丁升級和實際數據傳輸,tp還會調用R3Trans,命令格式:R3trans[<options>]<control_file>。R3Trans命令<options>參數可以是以下內容:
-c f1 f2:帶字符集轉換拷貝文件f1到文件f2。
-d:連接數據庫,測試SAP數據庫是否可用。
-i file:不使用控制文件導入文件。
-l file:列出日志文件清單。
-m file:列出允許使用tp創建cofile的內容清單。
-t:測試。回滾所有數據變更操作。
-t4:跟蹤級別4,開啟開發跟蹤。
-u<int>:無條件模式
-v:冗余。寫入更多細節到日志文件。
-w file:指定日志文件。默認為“trans.log”。
-x:連接數據庫但不訪問SAP表[3]。
(6)手動傳輸完成后,還需要將TMS的Landscape重新恢復到正常狀態,刷新TMS檢查傳輸號是否已經傳輸成功。
3.2 手動傳輸的后繼操作
手動傳輸能解決很多SAP傳輸問題,例如開發進程超前,傳輸卡死等。但是手動傳輸也有新問題。SAP系統的客戶端進行的傳輸自動記錄了傳輸動作,而手動則沒有。當系統發生了手動傳輸后,客戶端刷新是要對比傳輸記錄的。SAP系統通過將整個Landscape中各套系統的/usr/sap/trans/下的相關目錄文件進行列表對比,以顯示已發生和將要發生的傳輸清單。手動傳輸后SAP系統需要更新這部分內容。而SAP的自動更新將會非常緩慢。為了解決這個問題,SAP的TMS給出了兩種解決方法:
?。?)進行一致性檢查。包括:consistancy;crital objects;transport tools 3個工具。
?。?)進行校正。運行事物代碼:STMS后進入某個系統的Import Queue,使用Queue菜單中的Adjust進行校正。如開發定制的請求號多,該步驟比較慢,可以新開客戶端用Import Monitor進行監控。
傳輸請求的內容有可能是一段程序,也有可能是對某張數據表的修改。在進行程序傳輸的時候如果發現傳輸程序一致處于運行狀態“RUNNING EXECUTION OF REPORTS AFTER PUT”,這也有可能是數據表的問題。一種可能是數據表正在被訪問,而傳輸的請求是更改該數據表,則必須事先查看是否有人正在使用該表;另外一種情況是數據表所需要的空間不夠,雖然sap和oracle都能自動擴容空間,但如果所擴容空間的增量跟不上傳輸需求,就會導致傳輸卡死的情況。通過事物代碼SE16N查看TMSTLOCK表,該表中的記錄鎖定了傳輸故障的傳輸請求條目。如強制解鎖,還要監控另外兩張傳輸相關的表TRBAT和TRJOB。TRBAT記錄傳輸工作列表,TRJOB記錄傳輸狀態列表。
在使用以上幾種方法進行檢查和校正需要停止一切tp和R3Trans軟件的訪問活動。因此操作之前先用事物代碼SM02發個消息,通知所有有權限的顧問,避免與其他開發人員或管理員的操作發生沖突。
SAP的BASIS管理員主要負責系統的安裝、配置、管理、監控、維護、調優工作。這些工作都需要掌握傳輸系統才能很好的完成。正常情況下管理員只需要通過TMS傳輸管理系統或Solution Manager管理機進行傳輸的管理維護。但當傳輸系統出現卡死,項目開發硬件不到位后期調整Landscape等情況時,手動傳輸就變得尤為重要。掌握底層傳輸技術手段,SAP系統管理員能將應用層面的傳輸工作轉到OS層面進行,繞開SAP R3系統對傳輸過程的監控,不僅效率更高,而且能繞開應用層面的傳輸報錯等情況進行傳輸,這不僅為系統管理員提供了解決傳輸問題的途徑,也提高了管理員進行系統維護的效率。不論是整個項目的開發和業務應用都將在此受益。因此作為SAP系統管理員,掌握底層傳輸機制也是非常重要的。
參考文獻
[1] 石堅燕.SAP NetWeaer--SAP新一代業務平臺[M].北京:東方出版社,2005.
[2] 周旋.SAP R/3技術與實現[M].北京:機械工業出版社,2010.
[3] 希格里德·哈格曼,藍·威爾.SAP R/3系統管理[M].北京:東方出版社,2006.