SAP PI入门
?
https://www.cnblogs.com/hhelibeb/p/7105070.html
?
?SAP PI入門
目錄
- SAP ERP是什么
- 遺留系統(tǒng)
- 為什么我們需要SAP PI
- SAP PI架構(gòu)
- 單棧與雙棧
- 集成引擎
- 適配器引擎
- 業(yè)務(wù)處理引擎
- 在SAP PI中建立場景
- 企業(yè)服務(wù)庫
- 集成目錄
- 系統(tǒng)規(guī)劃
- 配置和監(jiān)控
- 同步 vs. 異步
- 確認(rèn)
- Remote Function Call
?
正文
本教程的目的是讓讀者理解:SAP Process Integration(以下簡稱SAP PI)是什么。我們不需要探究課題的本質(zhì),但是會討論SAP PI的架構(gòu)和不同特點(diǎn)。本文只會覆蓋到PI的基本特點(diǎn),而不是討論全部。
?
?本文鏈接:http://www.cnblogs.com/hhelibeb/p/7105070.html
回到頂部SAP ERP是什么
對于任何業(yè)務(wù)——無論是大的還是小的——都會有必須要執(zhí)行的標(biāo)準(zhǔn)業(yè)務(wù)功能,比如:物料管理(MM),銷售與分銷(SD),財(cái)務(wù)(FI),人力資源(HR)等等。市場上有很多正在為業(yè)界所使用的軟件。一個簡單的例子:如果你前往一個大型零售商店、旅店的下屬的小店面,并且它們運(yùn)行在ERP系統(tǒng)之上的話,收銀機(jī)器可以經(jīng)由ERP生成銷售發(fā)票。
對于絕大多數(shù)業(yè)務(wù)實(shí)現(xiàn)來說,企業(yè)資源計(jì)劃(Enterprise Resource Planning,ERP)是一種可以改善生產(chǎn)力和業(yè)績的有效途徑。SAP ERP是SAP 公司推出的的企業(yè)資源計(jì)劃,它是一個整合了組織的關(guān)鍵業(yè)務(wù)功能的集成軟件解決方案。基本功能包括:HR,MM,SD,FICO等,在SAP中它們叫做業(yè)務(wù)模塊。SAP把它們構(gòu)建成產(chǎn)品并且在市場上銷售。有兩個(或者更多)模塊是不直接支持業(yè)務(wù)功能的,而是用于展現(xiàn)和集成。前者叫做EP(企業(yè)門戶)后者叫做PI(過程集成)。所有的業(yè)務(wù)模塊都是由ABAP開發(fā)的,然而這兩個模塊卻主要由Java開發(fā)。這些模塊不是可執(zhí)行文件,而是需要部署在應(yīng)用服務(wù)器上運(yùn)行。
在我們進(jìn)入主題之前,需要認(rèn)識到這些點(diǎn):
- SAP代表用于數(shù)據(jù)處理的一些系統(tǒng)、應(yīng)用、產(chǎn)品。
- SAP AG是一個德國的跨國軟件公司,從事于制造管理業(yè)務(wù)操作和客戶關(guān)系的企業(yè)軟件。SAP ERP是該公司推出的企業(yè)資源計(jì)劃,一個整合了組織的關(guān)鍵業(yè)務(wù)功能的集成軟件解決方案。
- SAP NetWeaver Process Intergration(SAP PI)是SAP的企業(yè)應(yīng)用集成(EAI)軟件,是NetWeaver產(chǎn)品組的組件,用于幫助公司內(nèi)部的軟件、系統(tǒng)之間的信息交換,以及與外部的信息交換。
遺留系統(tǒng)
當(dāng)在一個大型的機(jī)構(gòu)中實(shí)施SAP的時候,并不是所有部件都可以放在SAP ERP中。其中的很多業(yè)務(wù)部件有它們自己的專有工具,可能極度復(fù)雜、并且無法被替代。它們和SAP系統(tǒng)平行運(yùn)行。它們叫做“遺留系統(tǒng)”。有必要把這些先前存在的非SAP系統(tǒng)和SAP集成起來,這就是SAP PI出場的地方。
回到頂部為什么我們需要SAP PI
?
在大型的機(jī)構(gòu)中,除了遺留系統(tǒng)之外,SAP ERP也不是由一個單一系統(tǒng)組成的,而是集成了多個系統(tǒng),如CRM,SRM和FICO等。為了處理這種復(fù)雜性,SAP引入了PI:一個可以為所有系統(tǒng)提供單一集成點(diǎn)的平臺。它不需要接觸已有的遺留系統(tǒng)的復(fù)雜網(wǎng)絡(luò)。這是一個可以為SAP和非SAP應(yīng)用之間、企業(yè)內(nèi)部和內(nèi)部或者內(nèi)部和外部之間提供平滑的端對端集成的強(qiáng)大的中間件。SAP PI支持B2B和A2A交換,支持同步和異步消息交換,并且包含了用于設(shè)計(jì)和執(zhí)行PI的內(nèi)建引擎。
回到頂部SAP PI架構(gòu)
?SAP PI有著輪輻式結(jié)構(gòu),由中心和輻條組成;輻條連接外部系統(tǒng),中心會在它們之間交換消息。源系統(tǒng)成為發(fā)送者系統(tǒng),目標(biāo)系統(tǒng)成為接收者系統(tǒng)。PI不是一個單獨(dú)的組件,而是很多個可以根據(jù)集成場景靈活地一起工作的組件的集合。該架構(gòu)包含了在設(shè)計(jì)期間使用的組件、在配置期間使用的組件和在運(yùn)行期間使用的組件。
我們可以把PI劃分為多個領(lǐng)域:
集成服務(wù)器是SAP PI的中心處理引擎。所有消息都在這里以一致的方式處理。它包含三個獨(dú)立引擎:
集成引擎可以被看做是中心,而適配器引擎則是輪輻。
關(guān)于業(yè)務(wù)處理引擎,本文會晚些解釋。
集成構(gòu)建器是一個用于訪問和編輯集成對象的C/S框架,它包含兩個相關(guān)的工具:
二者放在一起,就是通常被成為場景的集成過程。
系統(tǒng)規(guī)劃是數(shù)據(jù)中心的一個有關(guān)軟件和系統(tǒng)的信息的中心庫,簡化了系統(tǒng)規(guī)劃的管理。
在配置和監(jiān)控中,可以監(jiān)控消息和適配器。
回到頂部單棧與雙棧
在PI初次發(fā)布的時候,不是所有的組件都是在同一個平臺上構(gòu)建的。集成引擎和業(yè)務(wù)處理引擎由ABAP構(gòu)建,然而適配器引擎、集成構(gòu)建器、SL、CM和Mapping Runtime由Java構(gòu)建。因此PI需要Java和ABAP環(huán)境來運(yùn)行,這被稱為雙棧。
| ABAP Stack | Java Stack |
|
但是在晚些的版本中,所有組件都是由Java構(gòu)建的。某些雙棧組件已經(jīng)廢除,或者在被修改后運(yùn)行在Java棧。因此PI只需要Java環(huán)境來運(yùn)行。這就是單棧。
(單雙棧各有利弊,但是本文不會涉及到相關(guān)內(nèi)容)
回到頂部集成引擎
集成引擎負(fù)責(zé)中央集成服務(wù)器服務(wù),例如管線步驟:路由和映射。如果源消息結(jié)構(gòu)和目標(biāo)的消息結(jié)構(gòu)不同,集成引擎調(diào)用Mapping Runtime,源結(jié)構(gòu)會被轉(zhuǎn)換成目標(biāo)結(jié)構(gòu)。Mapping Runtime基于Java棧。集成引擎也可以利用ABAP程序來轉(zhuǎn)換,這個基于ABAP棧。
消息可以是兩種類型:
?
在PI中,消息由接口表示。
接口:XML格式的消息結(jié)構(gòu)和說明。
基于上面的限制,會有三種接口類型:
在PI中為每一個業(yè)務(wù)需求配置集成邏輯(場景)的時候,集成引擎會以循序漸進(jìn)的方式執(zhí)行配置。術(shù)語“管線”指的是在處理XML消息的時候執(zhí)行的所有步驟。管線步驟包含:
適配器引擎
你一定已經(jīng)發(fā)現(xiàn),集成引擎只使用XML-SOAP協(xié)議處理消息。但是如果我們有一對發(fā)送和接收系統(tǒng),它們的數(shù)據(jù)格式是不同的呢?這時我們使用適配器引擎中的不同的適配器來將XML和基于HTTP的消息轉(zhuǎn)換為這些系統(tǒng)需要的指定的協(xié)議和格式,或者相反。
如本文早先討論的那樣,SAP PI是輪輻式結(jié)構(gòu)的,其中適配器引擎可以被看作輪輻。我們使用適配器引擎來連接集成引擎(中心)和外部系統(tǒng)。適配器框架基于適配器引擎,適配器框架是基于SAP J2EE Connector Archtiecture(JCA)的。適配器框架提供了用于配置、管理和監(jiān)控適配器的接口。
在雙棧系統(tǒng)中,大多數(shù)適配器基于Java棧,只有兩個基于ABAP棧:
| ?Java Stack | RFC adapter, SAP Business Connector adapter, file/FTP adapter, JDBC adapter, JMS adapter, SOAP adapter, Marketplace Adapter, Mail adapter, RNIF adapter, CIDX adapter |
| ABAP stack | IDOC adapter and HTTP adapter |
在SAP PI從雙棧變?yōu)閱螚5臅r候,這兩個適配器成為了Java棧的一部分。修改后的適配器引擎成為高級適配器引擎,兩個適配器分別叫做IDOC_AAE和HTTP_AAE。
回到頂部業(yè)務(wù)處理引擎
業(yè)務(wù)處理引擎(Business Process Engine)的職責(zé)是執(zhí)行和持久化集成過程。
?
BPM代表跨組件業(yè)務(wù)處理管理(Business Process Management?)或者ccBPM,也叫做集成過程。集成過程是指可運(yùn)行的、跨系統(tǒng)的消息處理。在集成過程中,你可以定義所有需要運(yùn)行的的處理步驟和相關(guān)的過程控制參數(shù)。業(yè)務(wù)處理管理提供了SAP Exchange Infrastructure,包含以下功能:
在運(yùn)行期間,BPE執(zhí)行集成過程。集成過程可以只通過抽象接口發(fā)送和接收消息。
回到頂部在SAP PI中建立場景
如果需要在PI中建立場景(scenario),要從主頁開始。
主頁界面如下:
主頁有以下四個工作區(qū)的超鏈接:
每個超鏈接都可以打開對應(yīng)的應(yīng)用。這四個都是Java應(yīng)用。ESR和ID是swing應(yīng)用。它們基于JNLP,需要從瀏覽器啟動,所以第一次會花較多的時間來下載整個庫文件。但是從第二次開始,加載時間就會變短了。SL和CM是純web應(yīng)用,運(yùn)行在瀏覽器上。
回到頂部企業(yè)服務(wù)庫
?使用企業(yè)服務(wù)庫設(shè)計(jì)和創(chuàng)建用于制作場景的對象。PI中的數(shù)據(jù)流是這樣的:
找到以下設(shè)計(jì)的選項(xiàng):
PI使用集成庫來為發(fā)送者和接收者設(shè)計(jì)消息結(jié)構(gòu),并且通過相應(yīng)的消息結(jié)構(gòu)開發(fā)接口消息,接口消息是與外部世界互動的一個點(diǎn)。數(shù)據(jù)類型和消息類型可以用來對復(fù)雜接口進(jìn)行簡化和模塊化設(shè)計(jì)。
操作映射允許源結(jié)構(gòu)和目標(biāo)結(jié)構(gòu)之間的轉(zhuǎn)換。但是如果源結(jié)構(gòu)和目標(biāo)結(jié)構(gòu)是相同的,那該過程可能會免于執(zhí)行。和服務(wù)接口類似,消息映射用于簡化和木塊話復(fù)雜的操作映射。消息映射可以通過四種方式進(jìn)行:
圖形化映射是最常用的手段,因?yàn)樗试S開發(fā)者圖形化地映射結(jié)構(gòu)的屬性,以通過服務(wù)接口傳遞數(shù)據(jù)。對于其它三個,需要通過寫代碼來開發(fā)映射。如果是如果是單棧服務(wù)器,ABAP映射是不可用的。
(還有些其它方面,本文沒有涉及)
回到頂部集成目錄
這里我們通過早先配置的ESR對象來制作管線步驟。這些步驟在運(yùn)行期間通過集成引擎執(zhí)行。
在我們開始配置之前,我們需要在DIR創(chuàng)建/導(dǎo)入以下的對象:
服務(wù)允許你處理消息的發(fā)送者或者接收者。根據(jù)你使用這些服務(wù)的目的,你可以選擇以下的服務(wù)類型:
通信通道決定了消息的內(nèi)向和外向處理。消息會通過適配器從原生格式被轉(zhuǎn)換為soap-xml指定的消息格式,或者相反。通常一個場景中會有兩個通信通道:
必須為服務(wù)分配一個信道。根據(jù)服務(wù)被視為消息的發(fā)送者或接收者,信道也會有一個發(fā)送者/接收者角色,二者必須匹配。不可以把信道分配給集成過程服務(wù)。
管線步驟DIR中的通過以下四步配置:
發(fā)送者協(xié)議定義了發(fā)送者的消息如何轉(zhuǎn)換,因此它可以由集成系統(tǒng)處理。它包含:
發(fā)送者協(xié)議類似于表中的主鍵。同一個規(guī)劃中不可以有兩個相同的發(fā)送者協(xié)議。
接收者協(xié)議則定義了消息如何被轉(zhuǎn)換為接收者可以處理的形式。它包含:
使用接收者判定來指定消息發(fā)送的對象。可以通過定義條件以轉(zhuǎn)發(fā)消息,它包括:
接收者判定包含2個類型——標(biāo)準(zhǔn)的和擴(kuò)展的。使用哪個取決于你想要手工指定接收者、還是在在運(yùn)行期間通過映射動態(tài)地指定。
接收者判定和接口判定——加在一起通常稱為邏輯路由。發(fā)送者協(xié)議和接收者協(xié)議——這兩個加在一起通常成為合作協(xié)議。
回到頂部系統(tǒng)規(guī)劃
SAP System Landscape Directory(SLD)是系統(tǒng)規(guī)劃中的核心信息的提供者。在web頁面上你可以發(fā)現(xiàn)以下連接:
SLD的界面如下圖所示:
產(chǎn)品和組件都可以叫做組件信息。
技術(shù)系統(tǒng)和業(yè)務(wù)系統(tǒng)都叫做規(guī)劃描述(Landscape Description)。
一個業(yè)務(wù)系統(tǒng)可以配置為集成服務(wù)器或者應(yīng)用系統(tǒng)。
只有一個SAP系統(tǒng)中的客戶端可以配置為集成服務(wù)器。
以下信息從SLD提取到ESR和DIR中:
在目錄中用于定義消息發(fā)送者和消息接收者的業(yè)務(wù)系統(tǒng)。
配置和監(jiān)控
配置和監(jiān)控是監(jiān)測的中心入口。它給予了你導(dǎo)航到集成引擎的功能,也可以與計(jì)算中心管理系統(tǒng)(Computing Center Management System,CCMS)、SAP的進(jìn)程監(jiān)控設(shè)施(Process Monitoring Infrastructure,PMI?)集成。
配置和監(jiān)控的界面如下圖:
配置和監(jiān)控支持以下監(jiān)控功能:
同步 vs. 異步
處理可以定義為同步或者異步。
- 同步處理通過請求/響應(yīng)操作調(diào)用,處理的結(jié)果立刻通過操作返回給調(diào)用者。
- 異步處理通過單方向的操作調(diào)用,結(jié)果和錯誤會通過另一個單向的操作調(diào)用。結(jié)果通過回調(diào)操作返回。
計(jì)算機(jī)的世界里沒有異步通信,所有的兩個系統(tǒng)之間的通信總是通過方法調(diào)用進(jìn)行(請求/響應(yīng)操作)。所以如何使其異步呢?答案是,在調(diào)用者和被調(diào)用者之間引入一個第三方的系統(tǒng)。
?假設(shè)存在兩個系統(tǒng)——A和B。A與B之間所有的通信通過一個方法調(diào)用來進(jìn)行,因此他們是同步的。我們在AB間引入一個第三方系統(tǒng),稱其為中間系統(tǒng)I。A和I之間的通信通過方法調(diào)用,I和B之間的通信也是通過方法調(diào)用進(jìn)行。但是A和B之間的調(diào)用可以是異步的,因?yàn)锳不需要等待來自B的響應(yīng)。
這是異步通信的基本原理,那么什么是中間系統(tǒng)呢?答案是隊(duì)列。A被稱為調(diào)用者,B被稱為接收者。來自于A的消息首先添加到隊(duì)列中,接著它再次被從隊(duì)列中拉出,并且發(fā)送給B。B的響應(yīng)通過相同的方式返回給A。在某些情況下,業(yè)務(wù)需求要求消息按照以A觸發(fā)的時順序發(fā)送給B,這種情況下可以依據(jù)先進(jìn)先出策略。如果沒有這樣的需求,則消息會以隨機(jī)順序從隊(duì)列發(fā)送至B。
因此可以把消息通信分為三類:
在PI中,我們定義它們?yōu)?#xff1a;同步——BE(Best Effort),異步且無序的——EO(Exactly Once),異步且有序的(Exactly Once in Order)。
回到頂部確認(rèn)
確認(rèn)是異步通信的基礎(chǔ),為什么?
對于同步通信,系統(tǒng)A調(diào)用系統(tǒng)B時,如果B發(fā)送響應(yīng)失敗,處理會失敗。但是在異步通信中,系統(tǒng)A調(diào)用系統(tǒng)I并且系統(tǒng)I會調(diào)用系統(tǒng)B。所以假設(shè)A與I之間的通信成功,然而I和B之間的通信失敗。A該怎樣得知發(fā)送到B的過程失敗了呢?它通過確認(rèn)來實(shí)現(xiàn),該確認(rèn)通過消息從A到B相同的路由方式,反向發(fā)送給A。如果從B到A的確認(rèn)沒有成功抵達(dá)A,那么A會認(rèn)為處理失敗,并且再次發(fā)送消息。
當(dāng)我們討論P(yáng)I中的異步的時候,我們會使用術(shù)語 ‘Exactly Once’ 來表示EO和EOIO。Exactly Onc的意思是一旦發(fā)送的消息不能再次發(fā)送。為了實(shí)現(xiàn)這一特性,每一個從A發(fā)往B的消息都會有一個確認(rèn)。通信的終端是適配器,因此適配器必須支持確認(rèn)。
所有適配器都提供系統(tǒng)確認(rèn)(system-acknowledgment),比如發(fā)送確認(rèn)。支持同步通信的適配器除了支持系統(tǒng)確認(rèn)以外還支持應(yīng)用確認(rèn)。
所以在PI中存在著以下類型的確認(rèn):
Remote Function Call
在進(jìn)行PI工作時,你會接觸到名詞——RFC。這是什么?為了建立兩個SAP系統(tǒng)之間的連接,比如R/3和PI,我們創(chuàng)建了RFC目標(biāo)。RFC目標(biāo)需要配置以下內(nèi)容:
連接類型描述了系統(tǒng)連接的類型,比如R/3,TCP/IP,內(nèi)部連接等等..
創(chuàng)建的RFC目標(biāo)可以根據(jù)通信類型分類。按照異步或者同步通信可以分為:
(譯者注:此外還有bgRFC)
?
原文標(biāo)題:SAP PI for Beginners
?
轉(zhuǎn)載于:https://www.cnblogs.com/DicksonJYL/p/11145946.html
總結(jié)
- 上一篇: QTP的随机数问题
- 下一篇: Django后台admin的使用