ABAP開發服務
迪森科技SAP系統開發團隊,擁有豐富的SAP開發經驗,為企業客戶提供個性化的定制方案。我們在眾多項目中積累了一系列開發資產,能夠快速匹配客戶需求。
我們的專業團隊對客戶的個性化需求進行充分評估,并給出最佳的開發方案建議。開發方案同時會充分考慮系統地性能,確保各類定制化開發的性能最優,并提供完整的開發交付文檔。
ABAP 簡介
ABAP作為一種面向特定應用的第四代編程語言最早在20世紀80年代開發。它原本是作為一種報表語言應用在SAP R/2上,這是一個幫助大型公司在大型機上建立原材料管理和財務會計管理商務應用的平臺。ABAP本來也是德語AllgemeinerBerichtsaufbereitungsprozessor的縮寫,意思是“通用報表預處理器”。ABAP第一次引入了“邏輯數據庫”的概念,它在基本的數據庫層提供了更高級的抽象。
雖然SAP最早于1992年就發布了R/3,但ABAP仍可以用于為R/3系統編寫程序。在20世紀90年代,隨著計算機硬件的發展,越來越多的SAP的應用軟件和系統都用ABAP來實現。一直到2001年,幾乎所有的基本功能都是由ABAP編程實現的。在1999年,SAP在發布R/3 4.6版的同時也發布了一個對ABAP的面向對象擴展,叫做ABAP Objects;SAP最新的開發平臺NetWeaver同時支持ABAP和Java。
運行環境
所有的ABAP程序都駐留在SAP數據庫里。他們不像Java或者C++程序那樣存儲在一個單獨的外部文件里,在數據庫里所有的ABAP代碼都以兩種形式存在:可以用ABAP workbench查看和編輯的源代碼和由ABAP運行環境載入和解釋的“編譯”代碼(技術上更精確地說是“產生”代碼)。當一段ABAP源代碼第一次被調用時會隱含的進行代碼產生。如果稍后源代碼改變了或者程序訪問的對象改變了(比如數據庫的表添加了新的字段),產生代碼就會自動重新產生。
ABAP程序在運行時系統(SAP核心的一部分)的控制下運行在SAP應用服務器里。運行時系統負責處理ABAP語句,控制顯示的邏輯序列和響應事件(比如,用戶按一下屏幕上的一個按鈕)。ABAP運行時系統的一個關鍵組件是數據庫接口,它把ABAP的數據庫無關語句(“開放SQL”)變成底層數據庫管理系統可以理解的語句(“本地SQL”)。數據庫接口處理ABAP程序和關系數據庫之間所有的通信;它也有一些其他的作用,比如把經常訪問的數據緩存到應用服務器本地的存儲器里。
ABAP類型
模塊池
這些程序使用一系列的屏幕來定義更復雜的用戶交互模式。術語“屏幕”是指用戶看到的實際的物理圖像。每個屏幕還有一個“流邏輯”;這是指由屏幕觸發的ABAP代碼,比如初始化屏幕,響應用戶請求的應答和控制模塊池的屏幕之間的序列的邏輯。每個屏幕都有自己的流邏輯,每個流邏輯都分為“PBO”(輸出前處理)和“PAI”(輸入后處理)部分。在SAP的文檔中,術語“dynpro”(動態程序)用來表示這種屏幕和流邏輯的結合。
在線程序并不是通過名字調用的,而是和一段事務代碼聯系在一起。用戶可以通過自定義,角色依賴,事務菜單來觸發它們。除了報表和在線程序外,以類庫,功能庫和子程序池的形式開發共享代碼段也是可以的。
開發工具
ABAP Workbench有幾個不同的工具用于編輯容器對象。這些工具可以為你提供涵蓋整個軟件開發周期各階段的輔助。 創建和編輯容器對象的最重要的工具有:
ABAP Editer:編寫程序代碼
ABAP Dictionary:處理數據庫表定義,檢索全局類型
Menu Painter:設計用戶界面(包括菜單欄,標準工具欄,應用欄,配置功能鍵)
Screen Painter:為用戶對話框設計屏幕(動態程序)
Function Builder:顯示和處理功能模塊
Class Builder:顯示和處理ABAP對象類
語法特點
由各自獨立的語句構成。每個語句的第一個單詞必須是ABAP關鍵字。單詞之間至少要用一個空格分隔。每個語句結束必須要用句號。一個語句可以跨多行,只要不遇到句號,就認為是一個延續 的語句。
可以把多個語句放在一行。ABAP不區分大小寫,關鍵字和用戶操作數都一樣,為了便于閱讀,一般把關鍵字大寫,而操作數小寫。如果連續多行的第一個關鍵字相同,可以使用鏈語句方式減少輸入
™data: id type I.
™data: name type c.
™可寫為:
™data: id type I ,
™ name type c.
注釋:
注釋行由第一列的星號(*)開頭,并且必須寫在第一 列,前面不能有空格。
在行末的注釋用雙引號(”)作為前導。
™data: id type i. “ 定義一個對象num數據類型為I
技術架構
SAP的系統架構設計無疑是值得學習的,以下是我從網絡上收集的一些相關信息,也可以作為架構設計的參考。
1、實施、開發過程和維護過程管理細致,角色劃分清晰,即使在項目的開發過程中,仍然要配備BASIS人員,并對系統進行運維工作管理;
2、三種環境:開發、QA、生產,在三種環境下的整合開發過程;
3、注重權限、審計:所有的操作都和權限綁定,并對每項業務操作都進行日志記錄,數據庫記錄邏輯刪除,這對系統的體系結構和數據庫設計規范提出相應的要求,同時也對系統的實施和運維工作提出了要求;
4、應用服務器和數據庫服務器的層次定義:和J2EE體系架構不同,一方面保持應用的獨立性,另一方面保證數據庫服務器的穩定;
5、系統的穩定性壓倒一切:即使犧牲性能,也要確保系統的穩定;
6、模塊的質量保證:對測試的組織,完整的測試流程貫穿項目開發實施的全過程;
7、可維護性的表現:一方面是基于運維的,對于系統軟硬件各個部分的監控;另一方面是系統架構上,編程模式上能支撐二次開發;
8、可擴展性的表現:系統架構上和物理部署上的兩種體現;
9、可用性:界面操作標準化,有完善的文檔制作和交互式教學課件制作工具;
10、所有的一切處理操作都是事務代碼;操作可跟蹤、可追溯;
11、符合業務特點的數據庫表類型定義,即將數據庫開發的成功實踐固化在開發環境中。
我們的專業團隊對客戶的個性化需求進行充分評估,并給出最佳的開發方案建議。開發方案同時會充分考慮系統地性能,確保各類定制化開發的性能最優,并提供完整的開發交付文檔。
ABAP 簡介
ABAP作為一種面向特定應用的第四代編程語言最早在20世紀80年代開發。它原本是作為一種報表語言應用在SAP R/2上,這是一個幫助大型公司在大型機上建立原材料管理和財務會計管理商務應用的平臺。ABAP本來也是德語AllgemeinerBerichtsaufbereitungsprozessor的縮寫,意思是“通用報表預處理器”。ABAP第一次引入了“邏輯數據庫”的概念,它在基本的數據庫層提供了更高級的抽象。
雖然SAP最早于1992年就發布了R/3,但ABAP仍可以用于為R/3系統編寫程序。在20世紀90年代,隨著計算機硬件的發展,越來越多的SAP的應用軟件和系統都用ABAP來實現。一直到2001年,幾乎所有的基本功能都是由ABAP編程實現的。在1999年,SAP在發布R/3 4.6版的同時也發布了一個對ABAP的面向對象擴展,叫做ABAP Objects;SAP最新的開發平臺NetWeaver同時支持ABAP和Java。
運行環境
所有的ABAP程序都駐留在SAP數據庫里。他們不像Java或者C++程序那樣存儲在一個單獨的外部文件里,在數據庫里所有的ABAP代碼都以兩種形式存在:可以用ABAP workbench查看和編輯的源代碼和由ABAP運行環境載入和解釋的“編譯”代碼(技術上更精確地說是“產生”代碼)。當一段ABAP源代碼第一次被調用時會隱含的進行代碼產生。如果稍后源代碼改變了或者程序訪問的對象改變了(比如數據庫的表添加了新的字段),產生代碼就會自動重新產生。
ABAP程序在運行時系統(SAP核心的一部分)的控制下運行在SAP應用服務器里。運行時系統負責處理ABAP語句,控制顯示的邏輯序列和響應事件(比如,用戶按一下屏幕上的一個按鈕)。ABAP運行時系統的一個關鍵組件是數據庫接口,它把ABAP的數據庫無關語句(“開放SQL”)變成底層數據庫管理系統可以理解的語句(“本地SQL”)。數據庫接口處理ABAP程序和關系數據庫之間所有的通信;它也有一些其他的作用,比如把經常訪問的數據緩存到應用服務器本地的存儲器里。
ABAP類型
模塊池
這些程序使用一系列的屏幕來定義更復雜的用戶交互模式。術語“屏幕”是指用戶看到的實際的物理圖像。每個屏幕還有一個“流邏輯”;這是指由屏幕觸發的ABAP代碼,比如初始化屏幕,響應用戶請求的應答和控制模塊池的屏幕之間的序列的邏輯。每個屏幕都有自己的流邏輯,每個流邏輯都分為“PBO”(輸出前處理)和“PAI”(輸入后處理)部分。在SAP的文檔中,術語“dynpro”(動態程序)用來表示這種屏幕和流邏輯的結合。
在線程序并不是通過名字調用的,而是和一段事務代碼聯系在一起。用戶可以通過自定義,角色依賴,事務菜單來觸發它們。除了報表和在線程序外,以類庫,功能庫和子程序池的形式開發共享代碼段也是可以的。
報表程序
報表程序遵循一個相對簡單的編程模型,用戶可選的輸入一系列參數(比如,在一個數據子集上的選擇),然后程序根據輸入的參數以一個交互式列表的形式產生一張報表。報表程序的輸出之所以是交互式的是因為它不是一個被動的顯示;它允許用戶使用ABAP語言通過深入挖掘功能以獲得某個數據更細節的視圖,或者通過菜單命令觸發更深入的處理,比如按不同的方式排序數據或者按某種選擇條件過濾數據。這種表現報表的方法有很大的優勢,特別是對于那些需要處理大量信息但又要以很靈活的方式來檢查這些信息的用戶,這樣他們就不會再被限制到一種固定的顯示形式或者大小上無法管理的列表形式的報表中了。這種方便的開發交互式報表的方式是ABAP語言的一大重要閃光點。開發工具
ABAP Workbench有幾個不同的工具用于編輯容器對象。這些工具可以為你提供涵蓋整個軟件開發周期各階段的輔助。 創建和編輯容器對象的最重要的工具有:
ABAP Editer:編寫程序代碼
ABAP Dictionary:處理數據庫表定義,檢索全局類型
Menu Painter:設計用戶界面(包括菜單欄,標準工具欄,應用欄,配置功能鍵)
Screen Painter:為用戶對話框設計屏幕(動態程序)
Function Builder:顯示和處理功能模塊
Class Builder:顯示和處理ABAP對象類
語法特點
由各自獨立的語句構成。每個語句的第一個單詞必須是ABAP關鍵字。單詞之間至少要用一個空格分隔。每個語句結束必須要用句號。一個語句可以跨多行,只要不遇到句號,就認為是一個延續 的語句。
可以把多個語句放在一行。ABAP不區分大小寫,關鍵字和用戶操作數都一樣,為了便于閱讀,一般把關鍵字大寫,而操作數小寫。如果連續多行的第一個關鍵字相同,可以使用鏈語句方式減少輸入
™data: id type I.
™data: name type c.
™可寫為:
™data: id type I ,
™ name type c.
注釋:
注釋行由第一列的星號(*)開頭,并且必須寫在第一 列,前面不能有空格。
在行末的注釋用雙引號(”)作為前導。
™data: id type i. “ 定義一個對象num數據類型為I
技術架構
SAP的系統架構設計無疑是值得學習的,以下是我從網絡上收集的一些相關信息,也可以作為架構設計的參考。
1、實施、開發過程和維護過程管理細致,角色劃分清晰,即使在項目的開發過程中,仍然要配備BASIS人員,并對系統進行運維工作管理;
2、三種環境:開發、QA、生產,在三種環境下的整合開發過程;
3、注重權限、審計:所有的操作都和權限綁定,并對每項業務操作都進行日志記錄,數據庫記錄邏輯刪除,這對系統的體系結構和數據庫設計規范提出相應的要求,同時也對系統的實施和運維工作提出了要求;
4、應用服務器和數據庫服務器的層次定義:和J2EE體系架構不同,一方面保持應用的獨立性,另一方面保證數據庫服務器的穩定;
5、系統的穩定性壓倒一切:即使犧牲性能,也要確保系統的穩定;
6、模塊的質量保證:對測試的組織,完整的測試流程貫穿項目開發實施的全過程;
7、可維護性的表現:一方面是基于運維的,對于系統軟硬件各個部分的監控;另一方面是系統架構上,編程模式上能支撐二次開發;
8、可擴展性的表現:系統架構上和物理部署上的兩種體現;
9、可用性:界面操作標準化,有完善的文檔制作和交互式教學課件制作工具;
10、所有的一切處理操作都是事務代碼;操作可跟蹤、可追溯;
11、符合業務特點的數據庫表類型定義,即將數據庫開發的成功實踐固化在開發環境中。