什么是ABAP?
1.什么是ABAP ?
了解一下ABAP的發展歷史是必要的,ABAP產生的最初的目的是用以生成簡單打印報表程序,我們知道SAP最初是為解決財務實時數據處理問題的,ABAP(Advanced Business Application Programming->高級業務應用編程語言)現在用于編寫SAP AG的幾乎全部產品源代碼。
嚴格地講,ABAP/4不僅僅是一個開發工具,而且是一套完整的client/server開發環境,這很好理解,微軟的Visiual Studio是一開發環境,VB,VC++等是開發工具.ABAP開發環境包含支持程序開發的一些函數和包等。
SAP開發環境的三層(多層)概念也不新鮮,比如在安裝SAP時也可將DB instance安在一臺server, Central instance在另一臺所謂的Application server(我想這應是相關SAP基礎系統包括各種應用程序所在),而通常客戶端安裝的SAP Logon Front End,SAP會話管理器等是所謂的表示層,它通過TCP/IP,SAP演示協議或RFC和應用服務器進行數據傳輸,用戶看到的只是處理后的數據返回。
和Delphi的三層邏輯相近,在應用層包含多個組件象ABAP開發平臺,身份驗證,系統管理維護等用以處理會話,更新,排隊,網關,數據層處理native和Open SQL等(這是從內部機制方面看),SAP各模塊應用的業務邏輯都在應用層被處理(從用戶角度)然后結果被返回。
SAP Logon,[1]表示應用服務器(通常企業為了節省成本和方便管理可能會將應用服務器和數據庫安裝在同一起),[2]System number,舉個實例,開發和測試服務共用一臺服務器,開發使用system number00,而測試使用system number 01,通過system number邏輯地將一臺physical server邏輯地分成了兩臺application server。
學習ABAP并不難,有人說SAP系統重在管理思想,不在技術,通常對有編程經驗的讀者不用任何培訓參考一些相關資料就可立即上手。
簡單介紹下ABAP/4的一些特征:
1.和SAP緊密結合,尤其在開發報表方面,坦率地講,除了和SAP集成的好處,.我定認為ABAP在報表開發上比Crystal report Tool要高效簡單。
2.和VB一樣,ABAP是解釋形的,如讀者精通VB,學習ABAP應該豪不費力,倒是既然SAP是企業管理解決方案,ABAPer必須對企業管理流程熟悉。
解釋性的另一好處是可以很好跟蹤程序邏輯(使用/H),這對了解業務邏輯的實和追蹤錯誤很有效. 和VB不同的是,VB跟蹤時允許程序運行指針隨意往回或往全拉而ABAP程序去不行,但是ABAP程序允許在運行時修改變量的值,這是編譯程序不能做到的.當然通常編譯比解釋執行的速度會更快。
ABAP程序執行并不直接讀取源代碼,而是執行內部經過“生成”的描述,對于ABAP/4字典的修改激活后將觸發內部描述的重新生成,如程序并沒激活就執行原版本,或者出現錯誤(程序沒激活可能造成ABAP Dumping ABAP)。
3.在對數據庫處理方面,除了可直接執行SQL(使用native sql,缺點是錯誤處理很難控制,相當于有開發環境將SQL語句直接傳給DB去執行),SAP在ABAP開發環境層還提供了一套Open SQL訪問底層數據庫。
4. 程序員都知道Windows平臺下開發都支持事件驅動,Windows系統本身也支持事件驅動,ABAP也提供了事件驅動,這表現在Dialog編程方面,但是ABAP在此方面并不強,而且相對講也比較難于掌握(在后面會討論)。
5.基于面向對象的風靡,ABAP在此方面也有相當反應,在SAP強大的軟件包中提供了大量可重復使用的程序,讀者也可定義類并使用它快速建立新的對象。
6.類似Java,ABAP開發的程序能運行于任何操作系統(Java有Java虛擬機,ABAP也有ABAP processor),多種數據庫(比如在ABAP字典中實現了透明表對各種底層數據庫表的映射,這樣在ABAP層看到的透明表就和具體數據庫無關),各種網絡系統。