SAP BC417 課程中文自學(xué)筆記_第1頁
SAP BC417 課程中文自學(xué)筆記_第2頁
SAP BC417 課程中文自學(xué)筆記_第3頁
SAP BC417 課程中文自學(xué)筆記_第4頁
SAP BC417 課程中文自學(xué)筆記_第5頁
已閱讀5頁,還剩417頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、SAP BC417 課程課程中文自學(xué)筆記中文自學(xué)筆記強(qiáng)晟強(qiáng)晟2007年年12月月6日日 v1.0E-mail:Blog:http:/SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components2前言前言 隨著 SAP 的發(fā)展和軟件開發(fā)技術(shù)的發(fā)展,ABAP 開始引進(jìn)面向?qū)ο蟮母拍?,BAPI 則是在這個(gè)轉(zhuǎn)換過程中融合了面向過程和面向?qū)ο髢煞N開發(fā)方式的產(chǎn)物。 為了兼容過去的開發(fā)方式,SAP 把 BAPI 的方法調(diào)用組織在函數(shù)組和函數(shù)模塊中,使用傳統(tǒng)的面向過程的 ABAP 可以調(diào)用這些函數(shù)模塊來完成 BA

2、PI 的功能。同時(shí),BAPI 以業(yè)務(wù)對(duì)象的面目出現(xiàn),將逐漸轉(zhuǎn)變成可以被面向?qū)ο蟮?ABAP 或者 Java 調(diào)用的對(duì)象。同時(shí),它還具有遠(yuǎn)程函數(shù)調(diào)用的能力,可以被其他的軟件開發(fā)語言在其他平臺(tái)上調(diào)用。它已經(jīng)逐漸成為 SAP 開發(fā)的主流技術(shù)。強(qiáng)晟 2007年11月9日SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components3目錄目錄 第一單元:介紹 第二單元:BAPI 基礎(chǔ) 第三單元:創(chuàng)建一個(gè) RFC 函數(shù)模塊 第四單元:業(yè)務(wù)對(duì)象 第五單元:數(shù)據(jù)庫更新 第六單元:BAPI 調(diào)用 第七單元:增強(qiáng)和修正

3、 第八單元:使用 ALE 和 IDOC 的 BAPI 第九單元:集中數(shù)據(jù)傳輸 附錄:新的 BAPI 項(xiàng)目實(shí)施SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components4課程說明課程說明 課程目標(biāo) 創(chuàng)建、維護(hù)和使用 BAPI 學(xué)習(xí)本課程后應(yīng)該可以 說明 BAPI 開發(fā)的四個(gè)階段:分析、設(shè)計(jì)、測試和實(shí)現(xiàn) 設(shè)計(jì)和維護(hù) BAPI 查找或創(chuàng)建業(yè)務(wù)對(duì)象 增強(qiáng) SAP 提供的 BAPI 執(zhí)行對(duì) BAPI 的外部調(diào)用SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Developme

4、nt for Accessing SAP Components5第一單元:介紹第一單元:介紹 學(xué)習(xí)本單元后應(yīng)該可以 說明 SAP 業(yè)務(wù)框架 定義業(yè)務(wù)對(duì)象和列出它們的組件 說明 BAPI 的意圖和基本功能 說明業(yè)務(wù)場景 列出場景的階段和它們的意圖 說明 BAPI 的事務(wù)模型 列出事務(wù)步驟和它們的時(shí)間點(diǎn) 找出和訪問 BAPI 開發(fā)中用到的工具 使用可用工具來找出現(xiàn)存 BAPI 列出與 BAPI 及其組件相關(guān)的命名規(guī)范SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components6第一單元:介紹第一單元:

5、介紹 單元內(nèi)容 介紹 BAPI 的概念和使用 介紹業(yè)務(wù)場景 介紹 BAPI 事務(wù)模型 介紹工具和命名規(guī)范 練習(xí):查找和測試一個(gè)現(xiàn)有 BAPISAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components7第一單元:介紹第一單元:介紹 第一課:介紹第一課:介紹 BAPI 的概念和使用的概念和使用 本課概覽 SAP 創(chuàng)建了業(yè)務(wù)框架,讓 SAP 組件之間以及 SAP 和非 SAP 組件之間能夠?qū)崿F(xiàn)技術(shù)集成和交換業(yè)務(wù)數(shù)據(jù)。業(yè)務(wù)框架的一個(gè)主要組件就是業(yè)務(wù)應(yīng)用程序接口(BAPI),它能夠表示出組件邊界的可視化接

6、口,而屬性則把組件集成在一起。 這種集成可以包含本地網(wǎng)絡(luò)內(nèi)的組件或者通過互聯(lián)網(wǎng)相互連接的組件。BAPI 允許在業(yè)務(wù)層的集成,而不是技術(shù)層。這為連接提供了非常好的可伸縮性和對(duì)于未知通訊技術(shù)的獨(dú)立性。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components8第一單元:介紹第一單元:介紹 第一課:介紹第一課:介紹 BAPI 的概念和使用的概念和使用 本課目標(biāo) 說明 SAP 業(yè)務(wù)框架 定義業(yè)務(wù)對(duì)象并列舉它們的組件 說明某個(gè) BAPI 的意圖和基本功能 業(yè)務(wù)示例 在今天的業(yè)務(wù)環(huán)境中,對(duì)業(yè)務(wù)信息的即時(shí)性和

7、精確性要求比以往更加緊迫。僅僅知道信息存在在組織內(nèi)部某地已經(jīng)不夠了它必須是簡明的、精確的,并且以便于使用的形式快速獲取。此外,這個(gè)信息資源的用戶可能會(huì)分散在世界各地,并且操作著與保存數(shù)據(jù)系統(tǒng)不同的其他系統(tǒng)。可訪問性就成為一個(gè)主要的業(yè)務(wù)課題。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components9第一單元:介紹第一單元:介紹 第一課:介紹第一課:介紹 BAPI 的概念和使用的概念和使用 業(yè)務(wù)框架 SAP R/3 業(yè)務(wù)框架提供了一個(gè)基于 R/3 中功能性應(yīng)用組件(業(yè)務(wù)組件)和對(duì)象模型的結(jié)構(gòu)。業(yè)務(wù)

8、框架允許客戶和合作伙伴把他們自己的組件連接到 R/3 系統(tǒng)。面向?qū)ο蠹夹g(shù)和對(duì)象模型的使用降低了整個(gè)系統(tǒng)的復(fù)雜性。 業(yè)務(wù)框架架構(gòu)提供了開發(fā) SAP 業(yè)務(wù)組件的基礎(chǔ)。集成和通訊架構(gòu)可以表示如下:SAP R/3Application Link Enabling(ALE)應(yīng)用組件業(yè)務(wù)對(duì)象BAPIBAPIBAPI分布的業(yè)務(wù)處理業(yè)務(wù)處理的集成服務(wù)和業(yè)務(wù)對(duì)象的分布Remote Function Call (RFC)(D)COMCORBA通訊服務(wù)SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components10第一

9、單元:介紹第一單元:介紹 第一課:介紹第一課:介紹 BAPI 的概念和使用的概念和使用 業(yè)務(wù)框架的組成 SAP 業(yè)務(wù)框架的基本組件如下: 業(yè)務(wù)組件業(yè)務(wù)組件SAP 業(yè)務(wù)組件提供了自主的業(yè)務(wù)功能和一致的業(yè)務(wù)對(duì)象。例如,業(yè)務(wù)對(duì)象 Employee 和 Applicant 被分配給業(yè)務(wù)組件 Human Resource。業(yè)務(wù)處理或者在業(yè)務(wù)組件內(nèi)部實(shí)現(xiàn),或者跨多個(gè)組件實(shí)現(xiàn)(分布式業(yè)務(wù)處理)。 業(yè)務(wù)對(duì)象業(yè)務(wù)對(duì)象R/3 系統(tǒng)面向?qū)ο蟮慕Y(jié)構(gòu)基于業(yè)務(wù)對(duì)象。他們封裝了業(yè)務(wù)數(shù)據(jù)和功能,并且定義了業(yè)務(wù)組件的功能范圍和邊界。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Developme

10、nt for Accessing SAP Components11第一單元:介紹第一單元:介紹 第一課:介紹第一課:介紹 BAPI 的概念和使用的概念和使用 業(yè)務(wù)框架的組成(續(xù)) 業(yè)務(wù)應(yīng)用開發(fā)接口(業(yè)務(wù)應(yīng)用開發(fā)接口(BAPI)BAPI 是業(yè)務(wù)對(duì)象的接口,BAPI 跟業(yè)務(wù)對(duì)象一起從業(yè)務(wù)層定義和說明了接口標(biāo)準(zhǔn)。 集成服務(wù),應(yīng)用連接使能(集成服務(wù),應(yīng)用連接使能(ALE)ALE 集成服務(wù)允許業(yè)務(wù)處理在不同 R/3 系統(tǒng)或非 R/3 系統(tǒng)上執(zhí)行的集成。這個(gè)使用了 ALE 分布式模型的服務(wù)基于業(yè)務(wù)對(duì)象在系統(tǒng)范圍上的分布。 通訊服務(wù)通訊服務(wù)這些都是通訊技術(shù),例如,分布式組件對(duì)象模型(DCOM)和遠(yuǎn)程函數(shù)調(diào)用

11、(RFC),它們使用業(yè)務(wù)框架來訪問 BAPI。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components12第一單元:介紹第一單元:介紹 第一課:介紹第一課:介紹 BAPI 的概念和使用的概念和使用 SAP 業(yè)務(wù)對(duì)象(1) 業(yè)務(wù)對(duì)象技術(shù)和業(yè)務(wù)對(duì)象編程都基于業(yè)務(wù)對(duì)象的概念。例如,真實(shí)世界的對(duì)象,一個(gè)員工或者一份銷售訂單,在業(yè)務(wù)應(yīng)用系統(tǒng)(如 R/3 系統(tǒng))中都被模型化為業(yè)務(wù)對(duì)象。這個(gè)建模過程從定義業(yè)務(wù)對(duì)象類型開始。 業(yè)務(wù)對(duì)象類型,在 SAP R/3 系統(tǒng)表示一個(gè)業(yè)務(wù)實(shí)體,包含了這個(gè)實(shí)體的功能(以方法

12、的形式出現(xiàn))和數(shù)據(jù)(以屬性的形式出現(xiàn))。業(yè)務(wù)對(duì)象類型的實(shí)現(xiàn)細(xì)節(jié)則對(duì)用戶隱藏了。業(yè)務(wù)對(duì)象類型通過已經(jīng)定義好的功能(方法)來訪問。這就被稱為封裝。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components13第一單元:介紹第一單元:介紹 第一課:介紹第一課:介紹 BAPI 的概念和使用的概念和使用 SAP 業(yè)務(wù)對(duì)象(2) 業(yè)務(wù)對(duì)象類型用來把 SAP R/3 系統(tǒng)拆分成小的特定單元。由于降低了復(fù)雜性,系統(tǒng)的結(jié)構(gòu)也因而改善了。 業(yè)務(wù)對(duì)象類型構(gòu)成了 SAP R/3 系統(tǒng)的數(shù)據(jù)和功能的入口點(diǎn)。在業(yè)務(wù)對(duì)象類型

13、層,非 SAP 系統(tǒng)和各種 SAP 業(yè)務(wù)組件都可以互相通訊。 業(yè)務(wù)對(duì)象類型 SalesOrder 表現(xiàn)為某個(gè)客戶對(duì)公司的請(qǐng)求,具體包括在某個(gè)特定時(shí)間點(diǎn)提供一定數(shù)量的物料或者在某個(gè)時(shí)間點(diǎn)履行服務(wù)。一個(gè)特定的銷售訂單由它的銷售憑證號(hào)來標(biāo)識(shí)。該業(yè)務(wù)對(duì)象類型包含了一個(gè)銷售訂單的所有必要信息:售達(dá)方、銷售組織、憑證日期、凈重、銷售金額和分發(fā)憑證。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components14第一單元:介紹第一單元:介紹 第一課:介紹第一課:介紹 BAPI 的概念和使用的概念和使用 SAP

14、業(yè)務(wù)對(duì)象(3) 一個(gè)業(yè)務(wù)對(duì)象類型應(yīng)該可以理解為一個(gè)業(yè)務(wù)概念和它在 SAP R/3 系統(tǒng)中的實(shí)現(xiàn)概念。業(yè)務(wù)對(duì)象類型這個(gè)術(shù)語對(duì)應(yīng)于面向?qū)ο缶幊陶Z言中的術(shù)語類。 業(yè)務(wù)對(duì)象類型的某個(gè)特定的發(fā)生,例如實(shí)際存儲(chǔ)在系統(tǒng)中的一個(gè)銷售訂單,必須要跟業(yè)務(wù)對(duì)象類型本身區(qū)分開來。這個(gè)特定發(fā)生被稱作一個(gè)實(shí)例(面向?qū)ο缶幊陶Z言中的常規(guī)術(shù)語)或者一個(gè)業(yè)務(wù)對(duì)象。 編號(hào)為 102 的銷售訂單是業(yè)務(wù)對(duì)象類型 SalesOrder 的一個(gè)實(shí)例。這個(gè)銷售訂單由它的銷售和分發(fā)文檔號(hào) 102 來標(biāo)識(shí)。這個(gè)對(duì)象通過它的屬性來描述,包括售達(dá)方、銷售組織、憑證日期等等。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAP

15、I Development for Accessing SAP Components15第一單元:介紹第一單元:介紹 第一課:介紹第一課:介紹 BAPI 的概念和使用的概念和使用 SAP 業(yè)務(wù)對(duì)象(4) 業(yè)務(wù)對(duì)象類型的結(jié)構(gòu)業(yè)務(wù)對(duì)象類型的結(jié)構(gòu)下圖描繪了業(yè)務(wù)對(duì)象類型的概念:業(yè)務(wù)對(duì)象核心完整性接口訪問通過:內(nèi)部結(jié)構(gòu)特殊化一致性條件(對(duì)象特性)業(yè)務(wù)規(guī)則(環(huán)境特性)屬性BAPI,方法時(shí)間Internet(HTTP)COM/DCOMCORBAABAP(RFC)SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Compo

16、nents16第一單元:介紹第一單元:介紹 第一課:介紹第一課:介紹 BAPI 的概念和使用的概念和使用 SAP 業(yè)務(wù)對(duì)象(5) 上圖中包含一些重要的事項(xiàng): 業(yè)務(wù)對(duì)象類型的核心描述了內(nèi)部對(duì)象結(jié)構(gòu),換句話說就是它的數(shù)據(jù)和這些數(shù)據(jù)的結(jié)構(gòu)。 約束是確保一個(gè)對(duì)象一致性的規(guī)則(例如,對(duì)于不同的最低銷售數(shù)量可以分配不同的價(jià)格條件)。 業(yè)務(wù)規(guī)則要求一個(gè)對(duì)象必須遵守基本規(guī)則,確保對(duì)象在它的環(huán)境中保持內(nèi)在的一致性(例如,一個(gè)銷售組織只能銷售給存在這業(yè)務(wù)關(guān)系信息的客戶)。 接口提供了訪問業(yè)務(wù)對(duì)象類型的預(yù)定義的方法,它們可以是公共屬性,方法/BAPI 和事件。 對(duì)象可以通過 COM/DCOM 或者 CORBA(通用

17、對(duì)象請(qǐng)求代理架構(gòu))來訪問。在 ABAP 應(yīng)用中,業(yè)務(wù)對(duì)象可以被遠(yuǎn)程函數(shù)調(diào)用(RFC)訪問。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components17第一單元:介紹第一單元:介紹 第一課:介紹第一課:介紹 BAPI 的概念和使用的概念和使用 SAP 業(yè)務(wù)對(duì)象(6) 定義和實(shí)現(xiàn)一個(gè)對(duì)象類型定義和實(shí)現(xiàn)一個(gè)對(duì)象類型業(yè)務(wù)對(duì)象類型在業(yè)務(wù)對(duì)象知識(shí)庫(BOR)中描述,具有下列特性:對(duì)象類型基本數(shù)據(jù)接口鍵字段屬性方法事件程序字段引用虛擬屬性對(duì)象引用同步異步事務(wù)碼函數(shù)模塊報(bào)表ABAP 代碼API 方法關(guān)系屬性S

18、AP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components18第一單元:介紹第一單元:介紹 第一課:介紹第一課:介紹 BAPI 的概念和使用的概念和使用 SAP 業(yè)務(wù)對(duì)象(7) 對(duì)業(yè)務(wù)對(duì)象特性的說明 基本數(shù)據(jù)基本數(shù)據(jù)包含有助記憶的對(duì)象名字,對(duì)象類型的技術(shù)名稱,它的名稱(有意義的說明),它的短描述,發(fā)布狀態(tài),缺省方法,缺省屬性,以及包含了它的實(shí)現(xiàn)的程序名。 接口接口提供了一個(gè)對(duì)象預(yù)定義的接口(屬性、方法、事件)。接口類型通常不包含實(shí)現(xiàn)。 鍵字段鍵字段唯一標(biāo)識(shí)一個(gè)對(duì)象。 屬性屬性表現(xiàn)對(duì)象的性質(zhì)和特征。

19、 方法方法封裝了 R/3 的功能,可以是同步或異步方法。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components19第一單元:介紹第一單元:介紹 第一課:介紹第一課:介紹 BAPI 的概念和使用的概念和使用 SAP 業(yè)務(wù)對(duì)象(8) 對(duì)業(yè)務(wù)對(duì)象特性的說明(續(xù)) 事件事件預(yù)示業(yè)務(wù)對(duì)象狀態(tài)改變的事件。 業(yè)務(wù)對(duì)象鍵字段業(yè)務(wù)對(duì)象鍵字段每個(gè)業(yè)務(wù)對(duì)象類型都有一個(gè)或多個(gè)鍵字段。每個(gè)實(shí)例有一個(gè)唯一的鍵字段的值組合,由鍵字段中的特定值來標(biāo)識(shí)。這種唯一的值組合機(jī)制就能讓通過鍵字段中的值訪問一個(gè)特定的業(yè)務(wù)對(duì)象類型的實(shí)

20、例成為可能。鍵字段在業(yè)務(wù)對(duì)象設(shè)計(jì)時(shí)是需要重點(diǎn)考慮的。大多數(shù)情況下,對(duì)象類型的鍵字段也是包含了業(yè)務(wù)對(duì)象類型的表頭數(shù)據(jù)表的鍵字段。因?yàn)?BOR 運(yùn)行時(shí)對(duì)象是客戶端相關(guān)的,所以客戶端可以不作為一個(gè)鍵字段。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components20第一單元:介紹第一單元:介紹 第一課:介紹第一課:介紹 BAPI 的概念和使用的概念和使用 業(yè)務(wù)應(yīng)用程序接口(1) 業(yè)務(wù)應(yīng)用編程接口(BAPI)允許通過形式化、穩(wěn)定并且無需交互的接口來訪問 SAP 的函數(shù)。這些接口可以被由客戶和其他軟件合作

21、伙伴開發(fā)的外部應(yīng)用所使用,也可以被其他 SAP 應(yīng)用使用。 ABPI 是為業(yè)務(wù)應(yīng)用系統(tǒng)精確定義的處理和數(shù)據(jù)的接口,它做為業(yè)務(wù)對(duì)象知識(shí)庫(BOR)中的對(duì)象的接口來實(shí)現(xiàn)。 BAPI 定義成 SAP 業(yè)務(wù)對(duì)象類型的 API 方法。這些對(duì)象類型在業(yè)務(wù)框架中使用,允許組件之間基于對(duì)象的通訊。業(yè)務(wù)對(duì)象和它們的 BAPI 讓面向?qū)ο罂梢栽诠镜闹行男畔⑻幚碇斜皇褂?。例如,現(xiàn)存的函數(shù)和數(shù)據(jù)都能被重用,可以達(dá)到無障礙的技術(shù)協(xié)同工作能力,并且可以實(shí)現(xiàn)非 SAP 組件。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Compo

22、nents21第一單元:介紹第一單元:介紹 第一課:介紹第一課:介紹 BAPI 的概念和使用的概念和使用 業(yè)務(wù)應(yīng)用程序接口(2)基本特征 由于 BAPI 做為 R/3 系統(tǒng)的標(biāo)準(zhǔn)接口,它們需要特定的標(biāo)準(zhǔn)、認(rèn)同和可依賴的特征。在任何開發(fā) BAPI 的時(shí)候都必須考慮這些特征。這些特征包括: 面向?qū)ο竺嫦驅(qū)ο螅築API 做為在業(yè)務(wù)對(duì)象知識(shí)庫中定義的業(yè)務(wù)對(duì)象的對(duì)象方法來實(shí)現(xiàn)。 穩(wěn)定的接口穩(wěn)定的接口:BAPI 的接口是固定的。 內(nèi)部和外部使用內(nèi)部和外部使用:BAPI 可以從 R/3 內(nèi)部使用也可以從外部系統(tǒng)調(diào)用。 無表示層無表示層:BAPI 不提供用戶接口功能。顯示請(qǐng)求的結(jié)果是調(diào)用者的指責(zé)。 為消息使用

23、參數(shù)為消息使用參數(shù):成功和錯(cuò)誤消息在 RETURN 參數(shù)中處理。這可以是個(gè)結(jié)構(gòu)或是個(gè)表,由 BAPI 來決定。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components22第一單元:介紹第一單元:介紹 第一課:介紹第一課:介紹 BAPI 的概念和使用的概念和使用 業(yè)務(wù)應(yīng)用程序接口(3)集成 BAPI 可以用于下列的集成類型: 使用 SAP 業(yè)務(wù)連接器或者互聯(lián)網(wǎng)應(yīng)用組件(IAC)把 R/3 連接到互聯(lián)網(wǎng)上。 BAPI 還允許創(chuàng)建真實(shí)組件軟件,只要它們?cè)试S SAP 組件間的標(biāo)準(zhǔn)通訊。最終目標(biāo)是把 S

24、AP 系統(tǒng)的功能封裝到通過通用接口(BAPI)集成的獨(dú)立業(yè)務(wù)組件中。 新的 SAP 組件、非 SAP 軟件和遺留系統(tǒng)的集成。 實(shí)現(xiàn)使用應(yīng)用連接使能(ALE)異步連接的分布式 R/3 場景。 使用 PC 程序做為 R/3 系統(tǒng)的前臺(tái),這可以用 Visual Baisc(Microsoft)或者 Visual Age for Java(IBM)來開發(fā)。 擴(kuò)展超越系統(tǒng)邊界的工作流應(yīng)用。 客戶和合作伙伴的自主開發(fā)。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components23第一單元:介紹第一單元:介紹

25、 第一課:介紹第一課:介紹 BAPI 的概念和使用的概念和使用 業(yè)務(wù)應(yīng)用程序接口(4)集成和可用性目標(biāo) 當(dāng)實(shí)現(xiàn) BAPI 時(shí),應(yīng)該盡量避免以往接口的明信片效應(yīng)的缺點(diǎn):不區(qū)分內(nèi)容和傳輸。在明信片中,文本寫在卡片上,而卡片還充當(dāng)了信息媒介。如果信息媒介改變了,接收者就會(huì)以不同的方式讀到文本。這樣的結(jié)果是,對(duì)接口的更改會(huì)影響對(duì)類型的訪問。 在 BAPI 里,清晰的把業(yè)務(wù)內(nèi)容與潛在的通訊技術(shù)區(qū)分開來。這個(gè)過程可以跟一封在信封中的信來比較:把一封信放到一個(gè)新信封里非常容易,同樣的,使用一個(gè)新的和(或)不同的通訊技術(shù)如 COM/DCOM、CORBA 標(biāo)準(zhǔn)或新的互聯(lián)網(wǎng)標(biāo)準(zhǔn)時(shí)也同樣容易。信封本身與理解新的內(nèi)容

26、并不相關(guān)。在這個(gè)例子中,BAPI 相當(dāng)于信,也就是說它們與程序語言和通訊機(jī)制都完全無關(guān)。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components24第一單元:介紹第一單元:介紹 第一課:介紹第一課:介紹 BAPI 的概念和使用的概念和使用 業(yè)務(wù)應(yīng)用程序接口(5)通訊 為了允許它們?cè)谌魏吻樾蜗露寄苁褂?,BAPI 必須支持所有通訊形式并能被所有類型的參與者使用。 支持同步和異步通訊 BAPI 可以對(duì) SAP 組件進(jìn)行同步或異步調(diào)用。如果調(diào)用是同步的,BAPI 就被做為遠(yuǎn)程函數(shù)調(diào)用(RFC)來調(diào)用。

27、當(dāng) BAPI 在發(fā)送者系統(tǒng)被調(diào)用,就生成一個(gè) IDoc 并分配給接收者系統(tǒng)。當(dāng) IDoc 到達(dá)接收者,相應(yīng) BAPI 的參數(shù)就會(huì)用 IDoc 數(shù)據(jù)自動(dòng)填充,BAPI 再同步調(diào)用。 支持機(jī)器到機(jī)器和人到機(jī)器的通訊SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components25第一單元:介紹第一單元:介紹 第一課:介紹第一課:介紹 BAPI 的概念和使用的概念和使用 業(yè)務(wù)應(yīng)用程序接口(6)通訊 BAPI 可以用在應(yīng)用系統(tǒng)集成和連接到各種前端上。 應(yīng)用系統(tǒng)的集成可以稱為機(jī)器到機(jī)器的通訊。它在交換大量數(shù)據(jù)

28、和需要很高系統(tǒng)性能時(shí)使用。這種情況下的 BAPI 應(yīng)用將提供很少的細(xì)節(jié)信息。 各種前端的集成是人到機(jī)器的通訊。這時(shí)的 BAPI 使用有很多的細(xì)節(jié),它們必須設(shè)計(jì)為允許更靈活的通訊以減少錯(cuò)誤。 對(duì)組件的通訊支持被精確連接并通過互聯(lián)網(wǎng)連接 除了在 CORBA 和 COM/DCOM 這樣的通訊技術(shù)下使用 BAPI 外,它還可以通過 SAP 業(yè)務(wù)連接器在互聯(lián)網(wǎng)上被訪問。業(yè)務(wù)連接器從 BAPI 調(diào)用生成 XML,或者傳遞一個(gè)內(nèi)含的 XML 文檔到 BAPI 調(diào)用中。這可以把 BAPI 調(diào)用分配成為 XML 文檔,允許通過互聯(lián)網(wǎng)連接的組件之間的通訊。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC

29、417: BAPI Development for Accessing SAP Components26第一單元:介紹第一單元:介紹 第一課:介紹第一課:介紹 BAPI 的概念和使用的概念和使用 業(yè)務(wù)應(yīng)用程序接口(7)優(yōu)點(diǎn) 使用 BAPI 具有如下優(yōu)點(diǎn): BAPI 表現(xiàn)為良好定義、內(nèi)部一致的單元,總是表示業(yè)務(wù)事實(shí),并且隱藏的數(shù)據(jù)庫狀態(tài)的一致性。 業(yè)務(wù)內(nèi)容可以被標(biāo)準(zhǔn)化,因?yàn)?BAPI 不僅在技術(shù)層面上允許 SAP 系統(tǒng)和其他軟件的集成,也在業(yè)務(wù)層面實(shí)現(xiàn)了集成。 BAPI 已經(jīng)成為業(yè)務(wù)系統(tǒng)間的通訊標(biāo)準(zhǔn),通過面向?qū)ο蠼涌诩夹g(shù)(例如 COM/DCOM)的訪問已經(jīng)成為可能。SAP 萬對(duì)象遵守 OAG(O

30、bject Application Group)的方針,并且適合于 OMG(Object Management Group)的 CORBA 標(biāo)準(zhǔn)。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components27第一單元:介紹第一單元:介紹 第一課:介紹第一課:介紹 BAPI 的概念和使用的概念和使用 業(yè)務(wù)應(yīng)用程序接口(8)優(yōu)點(diǎn) 使用 BAPI 具有如下優(yōu)點(diǎn): 當(dāng) SAP 發(fā)布 BAPI 時(shí)能夠保證其穩(wěn)定性和兼容性。它的接口定義和參數(shù)將長期保持不變,這意味著應(yīng)用程序即使在 SAP 軟件或數(shù)據(jù)發(fā)生更改

31、時(shí)也不受影響。如果給 BAPI 添加了向上兼容的增強(qiáng),現(xiàn)存應(yīng)用的穩(wěn)定性也不受影響。 BAPI 可以支持開放系統(tǒng),能被任何的開發(fā)平臺(tái)訪問。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components28第一單元:介紹第一單元:介紹 第一課:介紹第一課:介紹 BAPI 的概念和使用的概念和使用 業(yè)務(wù)對(duì)象知識(shí)庫(1) 定義定義業(yè)務(wù)對(duì)象知識(shí)庫(BOR)是 SAP 業(yè)務(wù)對(duì)象類型和它們的 BAPI 的中心訪問點(diǎn)。BOR 最初為 SAP 業(yè)務(wù)工作流開發(fā)。今天,除了存儲(chǔ) SAP 業(yè)務(wù)對(duì)象類型和它們的 BAPI 外

32、,BOR 還用于 ArchiveLink、輸出控制以及它們的一般對(duì)象服務(wù)。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components29第一單元:介紹第一單元:介紹 第一課:介紹第一課:介紹 BAPI 的概念和使用的概念和使用 業(yè)務(wù)對(duì)象知識(shí)庫(2)服務(wù) BOR 在 BAPI 上下文提供了下列服務(wù): 允許在 SAP 系統(tǒng)中所有數(shù)據(jù)和處理都以面向?qū)ο蟮慕嵌葋碛^察。 把各種業(yè)務(wù)對(duì)象類型根據(jù)組件層級(jí)來組織,讓函數(shù)能被迅速簡單的查詢和取得。 存儲(chǔ)所有相關(guān)信息。BOR 包含了 SAP 業(yè)務(wù)對(duì)象類型的所有相關(guān)

33、信息,它們的鍵字段、and their BAPI methods that are needed to integrate the correct object type definitions and BAPI calls in an application program(慚愧,這句硬是讀不通)。這使中間件集成(例如 DCOM 連接器、ActiveX 控件、CORBA 網(wǎng)關(guān)等等)成為可能。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components30第一單元:介紹第一單元:介紹 第一課:介紹

34、第一課:介紹 BAPI 的概念和使用的概念和使用 業(yè)務(wù)對(duì)象知識(shí)庫(3)服務(wù) BOR 在 BAPI 上下文提供了下列服務(wù): 確保接口穩(wěn)定。任何接口變更都在 BOR 中進(jìn)行,會(huì)執(zhí)行語法兼容性的自動(dòng)檢查,避免與 ABAP 字典中相關(guān)開發(fā)對(duì)象發(fā)生不一致。 以發(fā)行升級(jí)方式管理 BAPI。添加參數(shù)類的 BAPI 接口增強(qiáng)記錄在 BOR 中。以前的接口版本可以在任何時(shí)候重建。當(dāng) BAPI 創(chuàng)建時(shí),新 BAPI 的發(fā)行版本也記錄在 BOR 中。同樣,接口參數(shù)創(chuàng)建時(shí)也一樣。 創(chuàng)建 SAP 業(yè)務(wù)對(duì)象的實(shí)例。BOR 的運(yùn)行時(shí)環(huán)境從客戶端應(yīng)用接收創(chuàng)建運(yùn)行時(shí)對(duì)象的請(qǐng)求并且創(chuàng)建相應(yīng)的對(duì)象實(shí)例。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記

35、系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components31第一單元:介紹第一單元:介紹 第二課:介紹業(yè)務(wù)場景第二課:介紹業(yè)務(wù)場景 本課概覽 在編寫 BAPI 之前,應(yīng)該清楚的定義這個(gè) BAPI 將會(huì)使用到的過程和狀態(tài)。BAPI 應(yīng)該只在有意義的業(yè)務(wù)場景環(huán)境中實(shí)現(xiàn)。 本課目標(biāo) 說明業(yè)務(wù)場景 列出場景的步驟及其意圖 業(yè)務(wù)示例 如果你已經(jīng)參與過某個(gè)公司的新業(yè)務(wù)應(yīng)用的內(nèi)部開發(fā),就應(yīng)該知道分析現(xiàn)有系統(tǒng)的重要性。目標(biāo)是增加當(dāng)前沒有的新功能或者糾正和完善已知功能。只有在計(jì)劃好新功能并且知道它如何被使用后才可以恰當(dāng)?shù)耐瓿?。SAP 學(xué)習(xí)

36、筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components32第一單元:介紹第一單元:介紹 第二課:介紹業(yè)務(wù)場景第二課:介紹業(yè)務(wù)場景 說明場景(1)場景 業(yè)務(wù)步驟包含一系列獨(dú)立的業(yè)務(wù)功能。業(yè)務(wù)步驟的內(nèi)容應(yīng)該完全與技術(shù)細(xì)節(jié)分開描述。 在一個(gè)分支機(jī)構(gòu)中創(chuàng)建一個(gè)銷售訂單會(huì)需要在公司總部執(zhí)行一系列信用檢查。 要定義業(yè)務(wù)步驟,必須: 定義這個(gè)業(yè)務(wù)步驟的意圖和范圍。 在業(yè)務(wù)步驟中區(qū)分獨(dú)立的步驟。為此,可以使用一個(gè)過程模型或者用例工具。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Deve

37、lopment for Accessing SAP Components33第一單元:介紹第一單元:介紹 第二課:介紹業(yè)務(wù)場景第二課:介紹業(yè)務(wù)場景 說明場景(2)業(yè)務(wù)步驟 一個(gè)場景,是一個(gè)業(yè)務(wù)過程計(jì)算機(jī)化的執(zhí)行,描述了在參與組件之間的任務(wù)分布和交互。實(shí)現(xiàn)相同業(yè)務(wù)過程可以有幾個(gè)場景。 必須在不同 R/3 系統(tǒng)(中央財(cái)務(wù)、分散銷售和分銷)中創(chuàng)建需要信用檢查的銷售訂單。 定義場景的步驟包括: 確定相關(guān)的組件和它們執(zhí)行的任務(wù)。 決定是否應(yīng)用系統(tǒng)要集成在場景中,或者要連接其他前端。例如,這可以影響到步驟的粒度。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Developm

38、ent for Accessing SAP Components34第一單元:介紹第一單元:介紹 第二課:介紹業(yè)務(wù)場景第二課:介紹業(yè)務(wù)場景 說明場景(3)業(yè)務(wù)步驟 定義場景的步驟包括: 決定信息和過程流。這里必須要: 確定哪些步驟要在系統(tǒng)范圍處理,哪些步驟僅在一個(gè)組件內(nèi)處理。 確定哪些數(shù)據(jù)要與哪些組件進(jìn)行交換,和誰發(fā)起這個(gè)交換。 確定各個(gè)步驟的處理順序。 說明屬于一個(gè)獨(dú)立事務(wù)的步驟(工作邏輯單元或者 LUW)。 例如,開發(fā)者必須問自己,是否需要在一個(gè) LUW 中創(chuàng)建客戶然后在同一個(gè) LUW 里創(chuàng)建銷售訂單。 以比本地應(yīng)用更加精確和全面的方式處理錯(cuò)誤。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)

39、晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components35第一單元:介紹第一單元:介紹 第二課:介紹業(yè)務(wù)場景第二課:介紹業(yè)務(wù)場景 說明場景(4)業(yè)務(wù)步驟 必須決定場景的系統(tǒng)耦合是寬一些還是窄一些。應(yīng)該考慮諸如系統(tǒng)可用性、性能和場景的使用頻度等因素。 應(yīng)該確定必須被定義的所有關(guān)鍵步驟。 還應(yīng)該考慮場景能夠被哪些 R/3 版本支持。 對(duì)于每個(gè)場景,必須確定一個(gè)責(zé)任人來確保場景正確和及時(shí)。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Componen

40、ts36第一單元:介紹第一單元:介紹 第二課:介紹業(yè)務(wù)場景第二課:介紹業(yè)務(wù)場景 說明場景(5)業(yè)務(wù)對(duì)象類型和 BAPI 在場景中的每個(gè)組件必須提供服務(wù),以便跨組件步驟可以被執(zhí)行。必須設(shè)計(jì)出如何在業(yè)務(wù)對(duì)象類型和它們的 BAPI 之間為服務(wù)分發(fā)責(zé)任。例如,業(yè)務(wù)對(duì)象類型 SalesOrder 的 BAPI CreateFromData 用來根據(jù)一個(gè)外部應(yīng)用在 R/3 系統(tǒng)中創(chuàng)建一個(gè)銷售訂單。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components37第一單元:介紹第一單元:介紹 第二課:介紹業(yè)務(wù)場景

41、第二課:介紹業(yè)務(wù)場景 說明場景(6)業(yè)務(wù)對(duì)象類型和 BAPI 對(duì)于每個(gè)組件,必須首先確定需要的業(yè)務(wù)對(duì)象類型。應(yīng)該考慮下列問題: 在業(yè)務(wù)對(duì)象類型中封裝所需功能。這包括把整個(gè)系統(tǒng)拆分成獨(dú)立的職責(zé)。這個(gè)拆分和功能的封裝必須是顯式的并且完全區(qū)別開。 是否業(yè)務(wù)對(duì)象類型已經(jīng)存在于這些職責(zé)中? 是否設(shè)計(jì)模式已經(jīng)存在?找出是否問題已經(jīng)都被處理?例如,銷售訂單和采購訂單的表頭/行項(xiàng)目模式等。 與其他業(yè)務(wù)對(duì)象類型劃清指責(zé)。 確定在已定義責(zé)任上所提供的服務(wù)。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components3

42、8第一單元:介紹第一單元:介紹 第二課:介紹業(yè)務(wù)場景第二課:介紹業(yè)務(wù)場景 說明場景(7)業(yè)務(wù)對(duì)象類型和 BAPI 對(duì)于確定的每個(gè)業(yè)務(wù)對(duì)象類型,必須確定分配給它的服務(wù)如何用 BAPI 實(shí)現(xiàn)。應(yīng)該考慮下列問題: 每個(gè)服務(wù)被一個(gè)或多個(gè) BAPI(業(yè)務(wù)對(duì)象類型的方法)實(shí)現(xiàn)。 BAPI 讓一個(gè)業(yè)務(wù)對(duì)象類型的功能可以使用。應(yīng)該能夠在單獨(dú)的或不同的場景中獨(dú)立的使用它們。為了讓 BAPI 在不同場景中使用更方便,BAPI 處理應(yīng)該能夠根據(jù)應(yīng)用不同而各自分配 BAPI 參數(shù)和字段。 注意這種類型的場景可以影響 BAPI 的粒度。應(yīng)用系統(tǒng)的集成方式與不同前端的集成不太一樣。對(duì)于應(yīng)用系統(tǒng)集成對(duì)于應(yīng)用系統(tǒng)集成:應(yīng)用系

43、統(tǒng)集成一般包含程序?qū)Τ绦虻耐ㄓ?、自由的異步耦合、大?shù)據(jù)量的交換。這種情況下,業(yè)務(wù)對(duì)象類型和 BAPI 的主要需求是高性能,例如,盡量減少調(diào)用次數(shù)。結(jié)果是由寬泛的 BAPI 來實(shí)現(xiàn)粗粒度的應(yīng)用。例如,程序自動(dòng)生成銷售訂單,程序用業(yè)務(wù)對(duì)象類型 SalesOrder 和 BAPI CreateFromData,完整的銷售訂單在發(fā)送系統(tǒng)中創(chuàng)建,然后發(fā)送給接收系統(tǒng)。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components39第一單元:介紹第一單元:介紹 第二課:介紹業(yè)務(wù)場景第二課:介紹業(yè)務(wù)場景 說明場景

44、(8)業(yè)務(wù)對(duì)象類型和 BAPI 對(duì)于確定的每個(gè)業(yè)務(wù)對(duì)象類型,必須確定分配給它的服務(wù)如何用 BAPI 實(shí)現(xiàn)。應(yīng)該考慮下列問題: 對(duì)于各種前端集成對(duì)于各種前端集成:各種前端的場景表現(xiàn)為人對(duì)機(jī)器的通訊、既可以同步也可以異步實(shí)現(xiàn)。業(yè)務(wù)對(duì)象類型和 BAPI 必須被構(gòu)在以確保伸縮性、可配置性和最少的錯(cuò)誤情況。結(jié)果是應(yīng)用的較好粒度,以符合 R/3 的會(huì)話過程。這個(gè)例子可以是在互聯(lián)網(wǎng)上交互式創(chuàng)建一個(gè)客戶銷售訂單,這個(gè)銷售訂單可以用業(yè)務(wù)對(duì)象類型 SalesOrder 的兩個(gè)方法 CreateFromData 和 AddItem 來創(chuàng)建,這里方法 CreateFromData 只創(chuàng)建訂單表頭,而方法 AddIte

45、m 添加新的銷售訂單行。 這個(gè)場景必須構(gòu)造好,以便預(yù)先獲取所有 BAPI 調(diào)用所需的信息。 如果有定制相關(guān)的 BAPI,則必須能同時(shí)導(dǎo)出定制設(shè)置。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components40第一單元:介紹第一單元:介紹 第二課:介紹業(yè)務(wù)場景第二課:介紹業(yè)務(wù)場景 定義場景 先決條件 在定義前必須完整描述場景,這個(gè)描述要包含實(shí)際定義的輸入信息。 定義過程 BAPI 的整個(gè)開發(fā)過程都在模板控制的項(xiàng)目框架中執(zhí)行,以獲得 BAPI 的最大質(zhì)量、穩(wěn)定性和可用行。BAPI 資源管理器在一個(gè)集

46、成編程環(huán)境中提供了創(chuàng)建 BAPI 的所有工具和所需開發(fā)對(duì)象。 對(duì)每個(gè)項(xiàng)目,有個(gè)項(xiàng)目模板引導(dǎo)一步一步的走過整個(gè)開發(fā)過程,并提供了所需開發(fā)工具和信息的直接瀏覽選項(xiàng)。在項(xiàng)目管理中,可以保存和刪除項(xiàng)目,還可以選擇其他用戶來編輯其他用戶管理的項(xiàng)目。更多訪問和使用這個(gè)工具的信息在課程工具和命名規(guī)則中提供。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components41第一單元:介紹第一單元:介紹 第二課:介紹業(yè)務(wù)場景第二課:介紹業(yè)務(wù)場景 回顧場景 在場景被轉(zhuǎn)換和具體定義開始和實(shí)現(xiàn)成 BAPI 前,應(yīng)該回顧這個(gè)

47、場景。所有在 BAPI 開發(fā)和對(duì)質(zhì)量控制承擔(dān)責(zé)任的人都要參與回顧。 為了讓回顧有意義,要回答下列問題: 這個(gè)場景是否象計(jì)劃中一樣有意義? 場景描述中所需的全部任務(wù)是否都已經(jīng)完成? 是否所有場景中的 BAPI 都平滑組合? 只有當(dāng)成功完成回顧之后才可以開始 BAPI 的開發(fā)。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components42第一單元:介紹第一單元:介紹 第三課:介紹第三課:介紹 BAPI 事務(wù)模型事務(wù)模型 本課概覽 讓每個(gè)場景自己的設(shè)備分別創(chuàng)建自己的功能,很多程序可能會(huì)創(chuàng)建很多相似卻又

48、不完全相同的方法來滿足需要。如果功能是獨(dú)立的,或者不需要與整個(gè)處理配合,這是沒有問題的。然而,如果部分功能會(huì)成為過程的一部分,并且功能會(huì)以多種方法在很多時(shí)候被使用,功能就必須被構(gòu)造好,在清晰的、一致的和可靠的方法下執(zhí)行。 事務(wù)模型是一個(gè)模板,可以用來指導(dǎo)一個(gè)事務(wù)中的組件如何配合。組件的列表、這些組件的順序、它們都做什么,這些因素共同決定了業(yè)務(wù)過程如何執(zhí)行。BAPI 中的事務(wù)模型用來決定如何編寫 BAPI。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components43第一單元:介紹第一單元:介紹

49、第三課:介紹第三課:介紹 BAPI 事務(wù)模型事務(wù)模型 本課目標(biāo) 描述 BAPI 事務(wù)模型 列出事務(wù)步驟和它們的時(shí)機(jī) 業(yè)務(wù)示例 如果沒有完全理解事務(wù)模型的事件順序,應(yīng)用就可能工作不正確甚至完全不工作。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components44第一單元:介紹第一單元:介紹 第三課:介紹第三課:介紹 BAPI 事務(wù)模型事務(wù)模型 事務(wù)和工作邏輯單元 在用來開發(fā) BAPI 的事務(wù)模型上下文中,一個(gè)事務(wù)表示一個(gè)過程步驟或者一個(gè)工作邏輯單元(LUW)。一個(gè) R/3 LUW 是包含在一個(gè)更新

50、數(shù)據(jù)庫事務(wù)內(nèi)的所有步驟。 ACID 的原則應(yīng)用于事務(wù)模型,意味著事務(wù)是: 原子的:當(dāng)一個(gè)事務(wù)被調(diào)用,數(shù)據(jù)庫操作或者完全執(zhí)行或者完全不執(zhí)行。所有相關(guān)數(shù)據(jù)或者全部在數(shù)據(jù)庫中更改或者完全不變。 一致的:如果事務(wù)被多次調(diào)用,每個(gè)調(diào)用都有相同的結(jié)果。導(dǎo)入的數(shù)據(jù)都不會(huì)間接影響結(jié)果。 獨(dú)立的:在兩個(gè)事務(wù)間不能有功能性依賴,一個(gè)事務(wù)絕對(duì)不能影響其他事務(wù)。 持久的:修改不能被反轉(zhuǎn),事務(wù)不能被取消。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components45第一單元:介紹第一單元:介紹 第三課:介紹第三課:介紹

51、BAPI 事務(wù)模型事務(wù)模型 特性(1)面向事務(wù) BAPI 必須被實(shí)現(xiàn)才是事務(wù)性的,換句話說,它尊許 ACID 原則。BAPI 事務(wù)模型也必須允許用戶把多個(gè) BAPI 合并到一個(gè) LUW 中。這樣,BAPI 事務(wù)模型就意味著各個(gè)獨(dú)立的 BAPI 都是事務(wù)性的,并且多個(gè) BAPI 合并到一個(gè) LUW 中是也要遵循 ACID 原則。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components46第一單元:介紹第一單元:介紹 第三課:介紹第三課:介紹 BAPI 事務(wù)模型事務(wù)模型 特性(2)客戶端的事務(wù)控制

52、 BAPI 的事務(wù)模型必須給用戶提供顯式的事務(wù)控制。這樣,如果多個(gè) BAPI 被一起調(diào)用,調(diào)用者可以決定何時(shí)執(zhí)行 COMMIT WORK(或者 ROLLBACK WORK)。這意味著 BAPI 本身(一般)不能執(zhí)行 COMMIT WORK 命令。 下列限制應(yīng)用于多個(gè) BAPI 合并到一個(gè) LUW 的情況: 如果一個(gè)實(shí)例被寫 BAPI 創(chuàng)建、修改或刪除,則讀 BAPI 只能訪問 COMMIT WORK 發(fā)生前最近的數(shù)據(jù)。 不允許在一個(gè) LUW 對(duì)相同實(shí)例執(zhí)行兩次寫訪問。例如,不能在一個(gè) LUW 中先創(chuàng)建然后在修改對(duì)象。 但可以在一個(gè) LUW 中創(chuàng)建相同對(duì)象類型的多個(gè)實(shí)例。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)

53、筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components47第一單元:介紹第一單元:介紹 第三課:介紹第三課:介紹 BAPI 事務(wù)模型事務(wù)模型 特性(3)通過服務(wù) BAPI 的事務(wù)處理 職務(wù)在使用了 COMMIT WORK 命令或者 ROLLBACK WORK 命令之后完成。BAPI 事務(wù)必須在調(diào)用了 BAPI BapiService.TransactionCommit() 或者 BapiService.TransactionRollback() 之后結(jié)束。 注意:事務(wù)控制 BAPI BapiService.Tran

54、sactionCommit 和 BapiService.TransactionRollback 只在 4.5 版后可用,在 4.0 版,使用 BAPI_TRANSACTION_COMMIT 和 BAPI_TRANSACTION_ROLLBACK.這個(gè)函數(shù)模塊的結(jié)果同樣是調(diào)用 BAPI。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components48第一單元:介紹第一單元:介紹 第三課:介紹第三課:介紹 BAPI 事務(wù)模型事務(wù)模型 特性(4)更新任務(wù)的使用 修改數(shù)據(jù)庫的操作必須通過更新過程來執(zhí)行,否

55、則,就可能在 RFC 調(diào)用中發(fā)生未檢查或者不希望的數(shù)據(jù)庫提交。另外,對(duì) BAPI 的調(diào)用絕對(duì)不能觸發(fā)獨(dú)立于 BAPI 之外的更多 LUW。因此,BAPI 中不能包含下列命令: CALL TRANSACTION SUBMIT REPORT SUBMIT REPORT AND RETURN 注意,如果 BAPI 執(zhí)行了 COMMIT WORK 命令,就必須在 BAPI 文檔中說明。SAP 提供的 BAPI 也在 SAP 網(wǎng)上說明,參見 Notes 131838(4.5 版以前)。SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Acces

56、sing SAP Components49第一單元:介紹第一單元:介紹 第三課:介紹第三課:介紹 BAPI 事務(wù)模型事務(wù)模型 不帶提交的 BAPI 事務(wù)模型(1) 下面的例子演示了外部系統(tǒng)調(diào)用 BAPI 修改 R/3 系統(tǒng)的數(shù)據(jù),說明了這種事務(wù)模型是如何影響 BAPI 開發(fā)的。例如,這可以是一個(gè)用 Visual Basic 實(shí)現(xiàn)的事務(wù),而只有 R/3 系統(tǒng)的數(shù)據(jù)被修改了。 在外部系統(tǒng)登錄在 R/3 系統(tǒng)的整個(gè)過程中,RFC 連接保持活躍,以避免重復(fù)的連接和斷開連接。當(dāng) RFC 連接建立以后,從本質(zhì)上說 RFC 調(diào)用并不會(huì)比在 R/3 系統(tǒng)中直接調(diào)用函數(shù)模塊占用更多的 CPU 時(shí)間。SAP 學(xué)習(xí)

57、筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components50第一單元:介紹第一單元:介紹 第三課:介紹第三課:介紹 BAPI 事務(wù)模型事務(wù)模型 不帶提交的 BAPI 事務(wù)模型(2) 程序的處理流程包括下列步驟: 登錄 (源代碼) 調(diào)用 BAPI (源代碼) 調(diào)用 BAPI (源代碼) 調(diào)用 BAPI BapiService.TransactionCommit() (源代碼) 調(diào)用 BAPI 登出SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for A

58、ccessing SAP Components51第一單元:介紹第一單元:介紹 第三課:介紹第三課:介紹 BAPI 事務(wù)模型事務(wù)模型 不帶提交的 BAPI 事務(wù)模型(3) 上圖描繪了前頁的調(diào)用過程。Visual BasicR/3 (ABAP)登錄BAPI調(diào)用BAPI調(diào)用調(diào)用 BAPIBapiService.TransactionCommit()工作邏輯單元提交工作登出時(shí)間RFC 會(huì)話SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components52第一單元:介紹第一單元:介紹 第三課:介紹第三課:介

59、紹 BAPI 事務(wù)模型事務(wù)模型 帶提交的 BAPI 事務(wù)模型(舊)(1) 在以前的事務(wù)模型中還有一種每個(gè)事務(wù)調(diào)用 BAPI 的方法,這時(shí) BAPI 只能同步調(diào)用。一個(gè) BAPI 調(diào)用本質(zhì)上是潛在的允許 RFC 的函數(shù)模塊的調(diào)用。這個(gè)程序的過程流包括下列步驟。 登錄 (源代碼) 調(diào)用 BAPI 讀取和/或修改數(shù)據(jù) (源代碼) 調(diào)用 BAPI 讀取和/或修改數(shù)據(jù) (源代碼) 登出SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components53第一單元:介紹第一單元:介紹 第三課:介紹第三課:介紹 BA

60、PI 事務(wù)模型事務(wù)模型 帶提交的 BAPI 事務(wù)模型(舊)(2) 上圖描繪了前頁的調(diào)用過程,該過程僅在 R/3 3.1 版實(shí)現(xiàn),現(xiàn)在已經(jīng)不需要掌握了。Visual BasicR/3 (ABAP)登錄BAPI 調(diào)用(函數(shù)模塊的 RFC 調(diào)用)工作邏輯單元提交工作登出時(shí)間RFC 會(huì)話工作邏輯單元工作邏輯單元提交工作提交工作SAP 學(xué)習(xí)筆記系列學(xué)習(xí)筆記系列 (by 強(qiáng)晟強(qiáng)晟 )BC417: BAPI Development for Accessing SAP Components54第一單元:介紹第一單元:介紹 第四課:介紹工具和命名規(guī)則第四課:介紹工具和命名規(guī)則 本課概覽 一旦完成了 BAPI 的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論