具體描述
編輯推薦
權限對象設計、數據字典應用、Dialog屏幕設計、SAP增強開發、數據的導入及導齣、模級實用開發分析。SAP實施顧問與開發人員進階寶典。結閤企業實際業務,深入剖析SAP開發要點。通過典型案例引導讀者逐步掌握SAP開發關鍵技術。 內容簡介
SAP源自德國,是目前世界上最優秀的ERP管理軟件之一。《SAP實用程序開發進階》以介紹SAP開發技術為主,內容涵蓋瞭SAP開發相關的基本配置、常用語法的匯總、SAP輔助開發工具的應用,以及實際模組業務的分析及編程等。
本書共4篇16章,第1篇為係統設置,包括SAP用戶頁麵的設置、SAP開發環境的設置、SAP用戶權限控製設置及開發;第2篇為ABAP語法匯總及分析,包括SAPABAP開發語法要領、SAP選擇屏幕的開發要領、SAPDialog屏幕常用組件開發;第3篇為SAP常用開發輔助工具,包括SAP數據字典的應用、ABAP程序的調試及性能監控、SAP數據的批量維護、SAP數據的導齣、SAP的增強開發;第4篇為業務需求的分析及開發,包括SAPFICO的開發應用、SAPMM的開發應用、SAPSD的開發應用、SAPHR的開發應用、SAPPI的應用及開發簡介。在講解過程中,對一些關鍵性的案例及操作均提供瞭詳細的操作步驟,並提供瞭完整的插圖及源碼,有助於讀者的深入理解及模擬操作。
本書內容典型實用,所有的案例均從實際業務中精選而來,所有代碼均在SAPECC6.0環境下進行瞭測試和驗證,確保案例的完整性和準確性。本書適用於SAP開發人員、SAP實施顧問及廣大SAP用戶,也可以作為各大院校SAP學習的參考用書。 目錄
第1篇 係統設置
第1章 SAP用戶頁麵的設置
1.1 用戶個性化菜單的維護
1.1.1 建立用戶收藏夾
1.1.2 在菜單中顯示事務代碼
1.2 定製本地布局
1.3 建立SAP GUI初始頁麵個性化圖片
1.3.1 在SAP數據庫中創建自定義的圖像
1.3.2 配置SAP頁麵全局管理參數
1.4 區域菜單的建立與維護
1.4.1 創建自定義區域菜單
1.4.2 為區域菜單分配文件夾及事務
1.4.3 將自定義區域菜單添加到係統
默認菜單中
第2章 SAP開發環境的設置
2.1 SAP開發環境介紹
2.1.1 SAP開發語言ABAP
2.1.2 ABAP開發平颱ABAP Workbench
2.1.3 SAP倉庫對象及開發類彆
2.1.4 關於ABAP編輯器
2.1.5 ABAP編輯器用戶特性設置
2.2 SAP TMS
2.2.1 新建TMS傳輸域
2.2.2 設置TMS傳輸路徑
2.3 SAP開發類
2.3.1 開發類的創建
2.3.2 為新建ABAP程序分配開發類
2.4 TMS傳輸請求的導入
2.4.1 傳輸請求的管理
2.4.2 TMS請求概覽
2.4.3 傳輸請求隊列清單
2.4.4 傳輸請求的導入
2.5 傳輸請求在係統內部的傳輸
第3章 SAP用戶權限控製設置及開發
3.1 用戶賬戶的維護
3.1.1 創建用戶賬戶
3.1.2 賬戶信息的維護
3.2 權限角色
3.2.1 新建自定義權限角色
3.2.2 為角色分配權限菜單
3.2.3 為角色配置權限數據
3.2.4 將角色分配給用戶
3.2.5 權限角色在係統間的傳輸
3.3 自定義權限對象
3.3.1 權限字段的維護
3.3.2 對象類及權限對象的維護
3.4 權限對象的分配
3.5 權限對象在ABAP程序中的調用
3.5.1 新建ABAP程序
3.5.2 插入權限檢查代碼
3.5.3 對於內錶數據的權限檢查
3.5.4 通過自定義Function封裝權限檢查功能
3.5.5 通過ABAP程序讀取權限對象的權限值
3.6 用戶權限缺失的檢查
3.6.1 執行事務時的權限檢查錯誤提示
3.6.2 通過事務SU53打開權限評估檢查報錶
3.7 按條件查找權限角色
第2篇 ABAP語法匯總及分析
第4章 SAP ABAP開發語法要領
4.1 常用類型定義的關鍵字
4.1.1 DATA定義變量
4.1.2 DATA定義數據結構及錶
4.1.3 CONSTANTS定義常量
4.1.4 TYPES自定義數據類型
4.1.5 TABLES引用係統錶
4.1.6 TYPE-POOLS引用類型池
4.1.7 RANGES建立選擇型的內錶
4.2 ABAP中常用字符串的處理辦法
4.2.1 SEARCH搜索指定字符串
4.2.2 字符串的截取
4.2.3 獲取字符串的長度
4.2.4 字符串的閤並
4.2.5 字符串的拆分
4.2.6 清除字符串前後的空格
4.2.7 字符串的按條件替換
4.2.8 字符串的大小寫轉換
4.3 ABAP程序中指針的使用及動態程序的實現
4.3.1 定義一個指嚮變量類型的指針
4.3.2 將內錶的值動態賦值給指針
4.3.3 動態獲取內錶中指定字段的值
4.3.4 動態獲取內錶字段的名稱
4.3.5 通過指針實現字符與16進製碼的轉換
4.4 常用Open SQL控製語句
4.4.1 SELECT
4.4.2 UPDATE
4.4.3 INSERT
4.4.4 DELETE
4.4.5 MODIFY
4.5 動態Open SQL的實現
4.5.1 在Open SQL中使用動態錶名
4.5.2 定義動態的WHERE條件
4.5.3 Native SQL的使用
4.6 通過RFC實現跨係統間數據的查詢
4.6.1 配置係統間的RFC通信連接
4.6.2 遠程調用RFC程序的實現
4.7 ABAP程序的代碼編寫技巧及注意事項
4.7.1 內錶、字符串及循環的處理
4.7.2 Open SQL編寫中的注意事項
4.8 SAP常用開發輔助工具
4.8.1 自動編號工具SNRO
4.8.2 SAP數據集維護工具
4.8.3 程序代碼版本控製工具
第5章 SAP選擇屏幕的開發要領
5.1 屏幕基本輸入域對象的創建及相關屬性
5.1.1 屏幕元素創建的基本語法
5.1.2 動態定義輸入域的參考對象
5.1.3 屏幕輸入域顯示參數控製
5.1.4 輸入值的控製
5.1.5 屏幕對象的F1/F4輸入幫助功能
5.1.6 PARAMETER 屏幕元素的特性功能開發
5.2 SAP屏幕框架的創建
5.2.1 創建包含文本的基本框架
5.2.2 實現屏幕元素間的換行
5.2.3 在屏幕上輸齣直綫
5.2.4 在屏幕上輸齣自定義文本及圖標
5.2.5 在屏幕中實現按鈕效果
5.2.6 子屏幕的創建
5.2.7 定義或修改本地屏幕元素的注釋
5.2.8 在工具欄上新增功能按鈕
5.2.9 在屏幕上創建頁簽
5.3 屏幕事件的控製
5.3.1 INITIALIZATION事件
5.3.2 START-OF-SELECTION事件
5.3.3 END-OF-SELECTION事件
5.3.4 AT SELECTION-SCREEN事件
5.3.5 屏幕元素屬性的控製
5.3.6 屏幕事件的中止
5.4 屏幕中的描述文本及圖標定義
5.4.1 程序的文本元素對象
5.4.2 屏幕中框綫的標題文本定義
5.4.3 在文本元素中加入圖標
第6章 SAP Dialog屏幕常用組件開發
6.1 屏幕邏輯流的控製
6.1.1 屏幕輸入字段的檢查
6.1.2 屏幕退齣事件
6.1.3 屏幕中輸入幫助的實現
6.2 子屏幕的應用
6.3 在屏幕中使用數據錶格
6.4 選項卡控件的創建
6.5 在屏幕中創建ALV控件
6.5.1 ALV組件的創建
6.5.2 實現ALV數據的即時更新
6.5.3 控製ALV每行的顯示顔色
6.5.4 ALV工具欄按鈕及行項目雙擊事件的控製
6.6 在屏幕中創建多行文本輸入框
6.6.1 多行文本輸入框的創建
6.6.2 文本數據的讀取與保存
第3篇 SAP常用開發輔助工具
第7章 SAP數據字典的應用
7.1 物理錶的可維護性功能的設置
7.1.1 新建一個可維護錶
7.1.2 為可維護錶分配TCode
7.2 通過SE16N來維護錶數據
7.3 類型組(Type Group)的維護
7.3.1 新建類型組對象
7.3.2 在ABAP程序中引用類型組
7.3.3 在RFC中引用類型組
7.4 搜索幫助對象的維護
7.4.1 通過參考錶創建一個搜索幫助對象
7.4.2 通過齣口函數創建搜索幫助
7.4.3 創建集閤搜索幫助
7.4.4 在程序中使用搜索幫助
7.4.5 為Data Element分配搜索幫助
7.4.6 在物理錶中分配搜索幫助
7.5 鎖對象的維護
7.5.1 創建自定義的鎖對象
7.5.2 鎖對象在ABAP程序中的使用
7.5.3 係統中被鎖對象的查看
7.6 係統標準錶的結構增強
7.7 通過SE14調整物理錶
第8章 ABAP程序的調試及性能監控
8.1 ABAP程序的調試
8.1.1 程序中斷點的設置
8.1.2 查看程序執行中的參數
8.1.3 實現調試功能的其他方法
8.2 通過SE30來測試程序執行效率
8.3 通過ST05分析程序執行路徑
8.4 後颱程序的設定
8.4.1 直接設置程序在後颱執行
8.4.2 後颱作業排程的查看
8.4.3 通過SM36定義後颱作業
8.4.4 查看後颱作業的輸齣
第9章 SAP數據的批量維護
9.1 SAP BDC的應用
9.1.1 BDC的錄製
9.1.2 産生程序及數據文件
9.1.3 指定讀取本地數據的BDC
9.2 CATT的應用
9.3 LSMW的應用
9.3.1 基本對象的創建
9.3.2 LSMW基本屬性的維護
9.4 BAPI的應用
9.4.1 BAPI的查找
9.4.2 通過BAPI修改資産數據實例
9.4.3 其他業務相關BAPI
第10章 SAP數據的導齣
10.1 ALV的應用
10.1.1 ALV的應用簡介
10.1.2 ALV報錶開發的相關參數及屬性
10.1.3 在程序中輸齣ALV
10.1.4 ALV的功能增強
10.2 SmartForms的應用
10.2.1 創建SmartForms實例
10.2.2 SmartForms打印參數的控製
10.2.3 SmartForms文本編輯模式管理
10.2.4 為SmartForms使用自定義圖像
10.2.5 將SmartForms的輸齣結果另存為PDF格式
10.3 定義打印機紙張類型
10.3.1 假脫機管理工具
10.3.2 自定義頁格式
10.3.3 定義格式類型
10.3.4 分配設備類型
10.4 通過Excel輸齣數據
10.4.1 通過函數GUI_DOWNLOAD下載Excel數據
10.4.2 通過OLE控製Excel文件格式
第11章 SAP的增強開發
11.1 基於源代碼的增強
11.1.1 通過係統IMG信息查找基於源碼的用戶齣口
11.1.2 通過開發類來查找基於源碼的用戶齣口
11.1.3 基於源碼的用戶齣口的應用
11.1.4 如何查找基於源碼的用戶齣口的默認參數
11.1.5 通過源碼齣口來增強VA功能簡例
11.2 基於函數的齣口CMOD
11.2.1 齣口所對應函數的查找
11.2.2 通過函數來查找齣口對象
11.2.3 齣口對象的查看和維護
11.2.4 通過CMOD實現銷售訂單控製增強實例
11.2.5 通過程序查找CMOD齣口
11.3 SAP BADI的應用
11.3.1 自定義BADI對象的創建及維護簡例分析
11.3.2 如何查找係統中的BADI
11.3.3 通過BADI實現客戶主數據控製功能的建立
11.4 關於SAP增強開發的應用小結
第4篇 業務需求的分析及開發
第12章 SAP FICO的開發應用
12.1 FICO簡介
12.2 FICO常用錶
12.3 FICO常用名詞解釋
12.4 SAP FICO相關報錶的開發
12.4.1 固定資産報錶的開發
12.4.2 客戶餘額查詢報錶的開發
12.4.3 通過FICO報錶繪製器製作資産負載報錶
12.4.4 關於損益錶的開發
12.5 關於FICO報錶繪製器所創建程序的權限控製
第13章 SAP MM的開發應用
13.1 MM簡介
13.2 MM常用錶
13.3 庫存報錶的開發
13.3.1 關於商品庫存的基礎概念
13.3.2 SAP庫存關聯錶信息
13.3.3 庫存計算報錶實例
13.4 商品憑證查詢報錶
13.5 商品調撥數據的導入
第14章 SAP SD的開發應用
14.1 SD簡介
14.2 SD常用錶
14.3 SAP SD相關報錶的開發
14.3.1 銷售明細報錶的查詢
14.3.2 如何實現銷售價格的查詢
14.3.3 客戶主數據的查詢
第15章 SAP HR的開發應用
15.1 SAP HR簡介
15.2 SAP HR常用錶
15.3 SAP HR基礎報錶的開發
15.3.1 關於SAP HR邏輯數據庫的應用
15.3.2 獲取組織結構信息
15.3.3 人員花名冊開發實例
15.3.4 考勤報錶開發實例
15.3.5 薪資報錶的開發
第16章 SAP PI的應用及開發簡介
16.1 PI簡介
16.1.1 關於PI
16.1.2 PI實施的企業背景
16.1.3 PI的結構概括
16.2 ESR的配置
16.3 ID的配置
16.4 SAP端ABAP Proxy的設置及開發
16.5 在ABAP代碼中調用OUTBound類型的
接口對象
16.6 關於PI實施的建議 前言/序言
《雲端賦能:企業級應用架構與實踐》 一、 導論:邁嚮卓越的雲原生應用開發 在數字經濟浪潮席捲全球的今天,企業級應用已不再是冰冷的後颱係統,而是驅動業務創新、連接客戶、優化運營的核心引擎。而“雲原生”——這一革命性的理念,正以前所未有的力量重塑著應用開發的範式。它不僅僅是一種技術趨勢,更是一種思維方式,一種擁抱變化、追求彈性和韌性的戰略選擇。本書《雲端賦能:企業級應用架構與實踐》正是基於這樣的時代背景,旨在為廣大開發者、架構師、技術管理者提供一套全麵、深入、實用的企業級應用雲原生架構與開發指南。 我們深知,傳統單體應用在麵對快速變化的業務需求、海量並發訪問以及日益增長的彈性伸縮要求時,常常顯得力不從心。微服務架構的興起,雖然帶來瞭模塊化、獨立部署的便利,但也引入瞭分布式係統的復雜性。容器化技術(如Docker)和容器編排係統(如Kubernetes)的齣現,為解決這些復雜性提供瞭強大的工具,但如何設計、構建、部署和運維一套健壯、高效、安全的雲原生應用,仍然是擺在許多企業麵前的嚴峻挑戰。 本書將跳齣單一技術工具的束縛,從宏觀的架構設計齣發,深入到微觀的代碼實現,再到貫穿始終的運維實踐,為讀者描繪一幅完整的雲原生應用開發藍圖。我們不迴避技術細節,更強調架構的全局觀和工程的最佳實踐。無論是初次接觸雲原生概念的開發者,還是尋求深化實踐的資深工程師,都能從中汲取寶貴的知識和經驗。 二、 架構篇:設計可靠、可擴展的雲原生基石 現代企業級應用,其復雜性遠超以往。如何設計一個能夠應對業務快速迭代、高可用、高性能、低成本的架構,是成功的關鍵。本篇將深入探討企業級應用雲原生架構的核心要素。 微服務架構精髓與落地: 我們將詳細解析微服務架構的設計原則,包括服務拆分策略(按業務領域、按技術能力、按數據模型等)、服務間的通信方式(RESTful API、gRPC、消息隊列等)、服務注冊與發現機製(Consul, Eureka, Nacos等),以及如何有效管理服務間的依賴關係。同時,我們將重點關注如何避免微服務帶來的“分布式單體”陷阱,以及如何實現服務的自治與協調。 容器化與容器編排: Docker作為容器化技術的代錶,其鏡像構建、網絡、存儲等核心概念將被深入淺齣地講解。在此基礎上,我們將聚焦Kubernetes(K8s)這一事實上的容器編排標準。從Pod、Deployment、Service、Ingress到StatefulSet、DaemonSet等核心資源對象的詳解,到Kubernetes集群的搭建、維護和監控,再到其高級特性如Helm包管理、Operators模式的應用,都將提供詳實的指導。我們將探討如何利用Kubernetes實現應用的自動化部署、彈性伸縮、滾動更新與迴滾,以及故障自愈。 API網關與服務治理: 在微服務架構下,API網關扮演著至關重要的角色,負責請求路由、認證授權、限流熔斷、日誌聚閤等橫切關注點。本書將分析各種API網關的優劣勢(如Spring Cloud Gateway, Kong, Apisix等),並提供實用的配置與集成案例。同時,服務治理是保證微服務係統健康運行的生命綫,我們將深入講解服務間的熔斷(如Hystrix, Resilience4j)、降級、限流、灰度發布等關鍵技術,以及如何構建一個高效、可觀測的服務治理體係。 事件驅動架構與異步通信: 隨著係統復雜度的增加,同步通信帶來的性能瓶頸和耦閤問題日益凸顯。本書將詳細介紹事件驅動架構(EDA)的設計理念,以及如何利用消息隊列(如Kafka, RabbitMQ, RocketMQ)實現服務間的異步解耦。我們將探討事件的設計、消息的可靠投遞、順序性保證、冪等性處理等關鍵問題,並分析在不同場景下選擇何種消息中間件的依據。 數據管理在分布式係統中的挑戰: 分布式事務、數據一緻性、CAP定理在分布式係統中的權衡,將是本篇的重點。我們將介紹包括兩階段提交(2PC)、TCC(Try-Confirm-Cancel)、Saga模式等在內的分布式事務解決方案,並分析它們的適用場景與局限性。同時,我們將探討如何利用數據庫讀寫分離、分庫分錶、緩存策略等手段,優化數據訪問性能,並保持數據的一緻性。 三、 開發篇:構建高質量、可維護的雲原生應用代碼 優秀的架構需要高質量的代碼來支撐。本篇將聚焦於雲原生應用開發中的具體實踐,從編程模型到開發工具,再到代碼質量保證,提供一套完整的開發方法論。 現代Java開發框架在雲原生中的應用: Spring Boot作為Java生態中最流行的微服務開發框架,我們將深入剖析其核心特性,如自動配置、starter機製、Actuator監控等。在此基礎上,我們將重點介紹Spring Cloud係列組件(Eureka, Config, Feign, Hystrix/Resilience4j, Stream等)如何在微服務架構中發揮作用。同時,我們將探討基於響應式編程(Reactive Programming)的Spring WebFlux等框架,如何構建高性能、非阻塞的雲原生應用。 麵嚮雲原生的編程範式: 除瞭傳統的麵嚮對象編程,函數式編程、響應式編程等範式在雲原生應用開發中展現齣獨特的優勢。我們將深入講解Lambda錶達式、Stream API等Java 8+特性,以及如何利用響應式流(Reactive Streams)構建事件驅動、高吞吐量的應用。 DevOps與CI/CD流水綫構建: DevOps文化與實踐是實現快速、可靠交付的關鍵。本書將詳細介紹CI/CD(持續集成/持續交付)流水綫的構建過程,包括代碼版本控製(Git)、自動化構建(Maven, Gradle)、自動化測試(JUnit, Mockito)、自動化部署(Jenkins, GitLab CI, GitHub Actions)等環節。我們將探討如何將微服務應用的構建、測試、打包、部署集成到統一的流水綫中,實現端到端的自動化。 容器化開發與本地開發環境: 在雲原生時代,容器不再是生産環境的專屬。我們將指導讀者如何利用Docker Compose等工具,搭建本地的微服務開發環境,模擬生産環境的復雜性,提升開發效率。學習如何編寫Dockerfile,構建高效、安全的容器鏡像。 代碼質量與安全實踐: 代碼的可讀性、可維護性和安全性是企業級應用不容忽視的方麵。本書將介紹靜態代碼分析工具(如SonarQube)、代碼審查流程、單元測試、集成測試、契約測試等保證代碼質量的方法。同時,我們將探討在雲原生應用中如何進行身份認證與授權(OAuth2, JWT)、敏感信息管理、安全編碼實踐,以及如何進行漏洞掃描與修復。 可觀測性(Observability)設計: 在復雜的分布式係統中,能夠深入瞭解應用的運行狀態至關重要。本書將介紹日誌(Log)、指標(Metrics)、追蹤(Trace)這三大可觀測性支柱。我們將講解如何集成ELK Stack(Elasticsearch, Logstash, Kibana)、Prometheus+Grafana等工具,實現日誌的集中管理與分析,係統資源的監控,以及分布式鏈路追蹤,幫助開發者快速定位和解決問題。 四、 運維篇:保障生産環境的穩定、高效與安全 應用開發完成後,其在生産環境的穩定運行、高效支撐以及安全保障,是價值實現的關鍵。本篇將深入探討雲原生應用的運維挑戰與解決方案。 Kubernetes集群的部署與管理: 除瞭理解Kubernetes的基本概念,本書將提供生産級Kubernetes集群的部署方案,包括高可用部署、網絡插件選擇(Calico, Flannel)、存儲方案(Ceph, NFS)等。我們將深入探討集群的安全加固、版本升級、故障排查與恢復等實踐。 自動化部署與滾動更新: 利用Kubernetes的Deployment、StatefulSet等資源對象,結閤CI/CD流水綫,實現應用的自動化部署。我們將詳細講解藍綠部署、金絲雀發布等策略,如何實現平滑的滾動更新,最小化對用戶的影響。 性能監控與容量規劃: Prometheus作為事實上的雲原生監控標準,我們將深入講解其數據模型、PromQL查詢語言,以及如何通過Exporter收集各種應用和係統的指標。Grafana則作為強大的可視化工具,我們將展示如何構建富有洞察力的監控儀錶盤。同時,基於監控數據進行容量規劃,預測資源需求,是保障係統穩定性的重要環節。 日誌管理與故障排查: 集中化的日誌管理對於快速定位問題至關重要。我們將深入講解ELK(Elasticsearch, Logstash, Kibana)或EFK(Elasticsearch, Fluentd, Kibana)方案的部署與使用,如何對海量日誌進行采集、存儲、查詢與分析。 事件驅動的故障處理與自愈: Kubernetes的事件機製、Pod的生命周期管理、Health Check(Liveness Probe, Readiness Probe)等,是實現應用自愈的基礎。我們將探討如何利用Kubernetes自身的機製,以及結閤外部的告警與自動化運維工具,實現故障的自動發現、隔離與恢復。 安全加固與閤規性: 雲原生環境的安全攻防是一個持續的挑戰。本書將重點關注Kubernetes集群的安全配置(RBAC, Network Policy)、容器鏡像的安全掃描、運行時安全檢測、敏感數據加密、安全審計等。同時,我們將探討如何滿足不同行業和地區的閤規性要求。 成本優化與資源管理: 在雲原生環境中,資源的管理與優化是降低運營成本的關鍵。我們將探討如何進行Kubernetes的資源配額(Resource Quotas)、限製(Limit Ranges)配置,如何利用Horizontal Pod Autoscaler(HPA)、Vertical Pod Autoscaler(VPA)實現資源的動態伸縮,以及如何利用Spot Instances、Reserved Instances等雲服務商的成本優化策略。 五、 結語:持續演進的雲原生之路 雲原生技術日新月異,本書所涵蓋的內容僅僅是一個起點。我們鼓勵讀者在理解核心理念與實踐的基礎上,保持持續學習的熱情,不斷探索新的技術與工具。本書旨在為你打下堅實的雲原生應用開發與運維基礎,讓你能夠自信地駕馭復雜的雲端環境,構建齣真正能夠賦能業務、驅動創新的卓越企業級應用。 通過深入研讀本書,你將不僅掌握一套強大的技術工具箱,更將獲得一種麵嚮未來的工程思維模式,為你的職業生涯在數字化浪潮中開闢更廣闊的天地。