《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > SAP BDT業(yè)務(wù)數(shù)據(jù)工具集的開發(fā)原理及應(yīng)用實例

SAP BDT業(yè)務(wù)數(shù)據(jù)工具集的開發(fā)原理及應(yīng)用實例

2009-06-24
作者:朱羽冰

  摘 要:介紹SAP BDT(業(yè)務(wù)數(shù)據(jù)工具集)這一集成的封裝式開發(fā)模型的原理和開發(fā)方法,。該模型是在SAP CRM的集成業(yè)務(wù)伙伴的實現(xiàn)中研制出來的,在國內(nèi)SAP實施項目中才剛剛開始被使用,。給出的實際案例描述了高效深入地使用BDT技術(shù)的具體步驟,,集成了BDT和自己的程序。為SAP的用戶和實施伙伴進行客戶和行業(yè)定制化開發(fā)提供指導(dǎo)作用,。
  關(guān)鍵詞:業(yè)務(wù)數(shù)據(jù)工具集;業(yè)務(wù)伙伴;簡易增強工作臺

?

  業(yè)務(wù)數(shù)據(jù)工具集BDT(Business Data Toolset)是一套集成的封裝式的開發(fā)模型,,主要用于維護復(fù)雜的主數(shù)據(jù)或簡單的事務(wù)型數(shù)據(jù)。BDT除了包含對話界面的操作,,同時還支持直接數(shù)據(jù)錄入和函數(shù)操作,。BDT集成了SAP的其他技術(shù)功能,如變更管理,、基于字段組的輸出控制,、權(quán)限控制、存檔功能[1],。BDT還集成了與BW的接口程序,,BDOC類型的接口程序、XIF類型的接口函數(shù),。BDT具有一整套的配置工具和核心控制程序,,然后配合具有規(guī)范接口的基于事件的函數(shù)集合,允許快速規(guī)范開發(fā)自己的整套應(yīng)用或者對現(xiàn)有的應(yīng)用進行不同層次的配置和增強,,這些增強不會涉及直接更改系統(tǒng)核心源代碼,,因而可以高效地利用這套模型的強大功能。
  BDT是在SAP CRM產(chǎn)品的集成業(yè)務(wù)伙伴對象和業(yè)務(wù)伙伴關(guān)系對象的實現(xiàn)過程中研制出來的,,并完善了VCT和EEWB兩個工具,。可視化配置工具VCT(Visual Configuration Tool)實現(xiàn)了類似所見及所得的屏幕配置,。因為該工具比較簡單也有一定的局限性,,本文不展開。簡易增強工作臺EEWB(Easy Enhancement Workbench)有增加新字段和創(chuàng)建新透明表兩種模式,。通過一個向?qū)?,在回答完所有問題后,系統(tǒng)會自動產(chǎn)生一系列的程序代碼,??梢詫Ξa(chǎn)生的程序做一些變更和完善,以滿足個性化需要,。
BDT代表了SAP規(guī)范化開發(fā)的一個方向,。BDT成型后,在SAP內(nèi)部被一些行業(yè)解決方案和主要合作伙伴積極采用,如銀行業(yè),、保險業(yè),、房地產(chǎn)業(yè)、校園管理等領(lǐng)域的解決方案,,所以應(yīng)用BDT的機會越來越多了,。但是目前國內(nèi)的用戶還很少,并且大多滿足于使用其標(biāo)準(zhǔn)功能,,而敢于采用BDT開發(fā)整套應(yīng)用的還沒有,。
  BDT的整套封裝式模型包含大量的配置(IMG)、用戶出口,、程序,、函數(shù)和工具。本文以核心概念和應(yīng)用實例為主,,具體的細節(jié)可以參照SAP手冊[2],。 ?????
1 基本概念
1.1 基本概念
  一個主數(shù)據(jù)由一個關(guān)鍵字來惟一地識別它。但是還有一些其他的標(biāo)準(zhǔn)來區(qū)分和約束它,,這就是差異類型(Differentiation),。差異類型可以理解為一個組織架構(gòu)或者其他的決定因素。它在創(chuàng)建該主數(shù)據(jù)的初始屏幕時就要確定,,決定了后續(xù)的維護界面和內(nèi)容[2-3],。
  應(yīng)用對象是一類數(shù)據(jù)的抽象名,如業(yè)務(wù)伙伴(BUPA),、業(yè)務(wù)伙伴關(guān)系(BUPR),、銀行賬號(BKKA)、合同賬號(FICA),。它被分配給差異類型,。有些具體對象允許有多個差異類型實例,如業(yè)務(wù)伙伴有多個角色,;有些具體對象只允許有一個差異類型實例,。應(yīng)用對象的操作模式如創(chuàng)建,、修改,、顯示等以及其他的控制配置均和應(yīng)用對象聯(lián)系起來。需要定義應(yīng)用對象關(guān)系之間允許的差異類型和缺省的差異類型[4],。
  應(yīng)用是指某應(yīng)用對象的一種具體的操作和功能,。
1.2 交互控制
1.2.1 數(shù)據(jù)結(jié)構(gòu)

  BDT的主數(shù)據(jù)可以保存在很多個有相似關(guān)鍵字的透明表(數(shù)據(jù)庫表)中。每個表都有相對應(yīng)的讀取和保存函數(shù),。同時有一批數(shù)據(jù)結(jié)構(gòu)用于接口定義和屏幕輸出,。通過數(shù)據(jù)字典、檢查表和搜索幫助可以方便地實現(xiàn)在線輸入幫助和檢查。
1.2.2 屏幕控制
  屏幕顯示的基本要素是視圖(View),,實際上就是子屏幕,。通過調(diào)用函數(shù)BUS_PBO和BUS_PAI實現(xiàn)PBO和PAI,并規(guī)范PBO和PAI的程序,。主要的流程控制,、屏幕顯示以及各種檢查和缺省都在視圖的程序中。通常一個視圖內(nèi)的字段是一個字段組,,通過基于字段組的輸出控制配置功能實現(xiàn)基于不同條件下的屏幕輸出控制,。
  幾個視圖組成一個塊(Section), 塊內(nèi)也可以有流程控制。幾個視圖組成一個屏幕,如圖1所示,。

?


  屏幕次序定義了屏幕出現(xiàn)的次序,,如圖2所示。屏幕次序可以分成主屏幕次序和輔助屏幕次序,。屏幕次序可以分給不同種類的對象,,如不同角色的業(yè)務(wù)伙伴。


  每個屏幕和塊都有標(biāo)題,,每個屏幕也對應(yīng)一個功能碼,。BDT有標(biāo)準(zhǔn)的菜單,用戶也可以增加功能碼到菜單中,。
1.2.3 程序邏輯
  BDT的交互控制程序定義了大量的事件函數(shù),,流程圖如圖3所示,每一個事件對應(yīng)一個函數(shù),,開發(fā)人員可以通過更改這些函數(shù)來控制交互過程,。這些函數(shù)有明確的命名規(guī)范,為<應(yīng)用>_<應(yīng)用對象>_EVENT_<事件名>,。這些函數(shù)被BDT的核心程序調(diào)用,。

?


1.2.4 其他
  數(shù)據(jù)分割是BDT的一個重要概念。每一個應(yīng)用對象都包含很多可以維護的數(shù)據(jù),,但并不是每一個主數(shù)據(jù)都允許顯示和維護所有的字段,。數(shù)據(jù)分割就是進行這樣的區(qū)分。業(yè)務(wù)伙伴的角色就是數(shù)據(jù)分割,,不同的角色有不同的主數(shù)據(jù),,同一個對象允許是多個角色。數(shù)據(jù)分割的方法是由應(yīng)用對象決定的,。
  BDT中數(shù)據(jù)的保存并不是以屏幕為單位的,,而是把數(shù)據(jù)保存在全局變量中,最后在DSAVE事件中保存,。這樣的機制甚至允許多個有關(guān)系的應(yīng)用對象按一定的次序共同創(chuàng)建或共同取消[5],。
2 客戶項目中BDT的應(yīng)用實例
  某客需要對于業(yè)務(wù)伙伴的定義進行增強,。首先創(chuàng)建角色最終用戶,并進行字段增強,。業(yè)務(wù)伙伴字段的增強采用EEWB的工具產(chǎn)生BDT的各種程序和函數(shù),,接著做一些簡單的修改,然后通過業(yè)務(wù)伙伴的配置把它們合理地顯示在屏幕上,。
2.1 運行EEWB和后續(xù)調(diào)整??????
  運行事務(wù)代碼EEWB,,進入簡易增強工作臺。創(chuàng)建針對業(yè)務(wù)伙伴的增強項目ZFVW_BUPA_01,。針對定義的每一個視圖創(chuàng)建一個子對象,,運行一次向?qū)АC恳粋€視圖對應(yīng)一個字段集合和權(quán)限對象等,,分得細有利于控制,。至于屏幕的顯示可以通過配置(IMG)來調(diào)整。
  在本案例中,,針對單選項或簡單輸入項,,采用對表BUT000添加字段的方法。舉例客戶付款方式,。在向?qū)е卸x字段名,、字段類型、檢查表名,、抬頭名,、不需要有效期控制、需要BW集成,,完成后系統(tǒng)會自動產(chǎn)生數(shù)據(jù)字典,、數(shù)據(jù)結(jié)構(gòu)、檢查表,、子屏幕(視圖),、子屏幕的PBO和PAI、針對于事件DLVE1,、DSAVB,、 ISDST、 ISSTA and XCHNG的函數(shù),、直接操作的BAPI函數(shù),、現(xiàn)有BDOC自動擴展、在BW的數(shù)據(jù)源0BPARTNER增加字段,。產(chǎn)生的程序?qū)儆谧蚤_發(fā)程序,。
  EEWB結(jié)束后,首先激活檢查表的維護,,然后使用事務(wù)代碼SM30維護可選項,。例如維護客戶付款方式:00—其他;01—分期付款,;02—全款,;03—租賃購買;這樣就形成了如圖4的單選項,。針對復(fù)雜的運用,,可能需要修改和創(chuàng)建針對特定事件的函數(shù),如擴展性檢查等,。

?


  在本案例中希望聯(lián)系方式和方便聯(lián)系時間是多選項,,所以采用創(chuàng)建新透明表的方法。在向?qū)е卸x字段名,、字段類型,、檢查表名、抬頭名,、不需要有效期,、需要BW集成、需要BDOC集成,,完成后系統(tǒng)會自動產(chǎn)生數(shù)據(jù)字典,、數(shù)據(jù)結(jié)構(gòu)、檢查表,、子屏幕(視圖),、子屏幕的PBO和PAI、針對于事件DLVE1,、DLVE2,、DCHK、CHGD1,、CHGD4,、DSAVC、DSAVE,、DTAKE,、FCODE、ISDAT,、 ISSTA和 XCHNG的函數(shù),,直接操作的BAPI函數(shù)、BDOC接口函數(shù),,歸檔函數(shù),、變更記錄管理函數(shù)、在BW的數(shù)據(jù)源0BPARTNER增加字段,。
  系統(tǒng)產(chǎn)生的希望聯(lián)系方式和方便聯(lián)系時間只有一列,,沒有文本顯示,,通常需要修改系統(tǒng)產(chǎn)生的程序以改進顯示效果。以希望聯(lián)系方式為例說明如下,。
  首先在產(chǎn)生的屏幕結(jié)構(gòu)gty_dynpstruc中增加字段TEXT like ZTB0000YQJCX0T-text,。
  在產(chǎn)生的函數(shù)組的屏幕0100中增加輸出元素:ZTB0000YQJCX0T-text。這樣就調(diào)整好了子屏幕,。接著在PAI中,,當(dāng)用戶選擇了希望訪問方式后讀取文本。
  *希望訪問方式描述?? BEGIN---------------*
  SELECT SINGLE TEXT
  INTO GT_ZBUT0000C7J51V_D-TEXT
  FROM ZTB0000YQJCX0T
  WHERE ZZTFLDRUJ81V = GT_ZBUT0000C7J51V_D-ZZTFLDRUJ81V .
  *希望訪問方式描述?? END --------------*
  最后在函數(shù)ZZO6J_BUPA_PBO_ZO6J0100中添加類例程序,。
  對于復(fù)雜的應(yīng)用,需要修改和創(chuàng)建針對特定事件的函數(shù),,并且調(diào)整會比較多,,例如和其他數(shù)據(jù)庫表關(guān)聯(lián)后讀取數(shù)據(jù)和保存數(shù)據(jù)。如果要使用BW和BDOC,,也需要根據(jù)SAP的手冊做一些配置和激活[4]
2.2 區(qū)域菜單BUPT內(nèi)的配置
  區(qū)域菜單BUPT包含了所有BDT業(yè)務(wù)對象中業(yè)務(wù)伙伴和業(yè)務(wù)伙伴關(guān)系的配置,,所以本文的路徑都在區(qū)域菜單BUPT內(nèi),。本案例的配置不牽涉到創(chuàng)建新的應(yīng)用對象,、應(yīng)用和分割,,但是所有配置菜單都在BUPT內(nèi)。首先是配置屏幕的輸出效果,、參考和復(fù)制屏幕次序BUP001及其屏幕,,創(chuàng)建自己的屏幕次序,如圖5所示,,其中包含系統(tǒng)標(biāo)準(zhǔn)的屏幕和自定義及修改后的屏幕,。SAP菜單路徑為業(yè)務(wù)合作伙伴→控制→屏幕布局→部分,,業(yè)務(wù)合作伙伴→控制→屏幕布局→屏幕,,業(yè)務(wù)合作伙伴→控制→屏幕順序,。

?


  定義業(yè)務(wù)伙伴視圖:最終用戶。其中定義了數(shù)據(jù)集和屏幕次序,。SAP菜單路徑為業(yè)務(wù)合作伙伴→控制→可分割→業(yè)務(wù)伙伴視圖。
  定義角色的基于字段組的輸出控制,。SAP菜單路徑為IMG→交叉應(yīng)用組件→SAP 業(yè)務(wù)伙伴 →業(yè)務(wù)合作伙伴→基本設(shè)置→字段分組→配置每個商業(yè)伙伴角色的字段屬性,。
  定義角色最終用戶的專用事務(wù)代碼,。這樣可以提高最終用戶的創(chuàng)建,、修改,、顯示的速度。SAP菜單路徑為業(yè)務(wù)合作伙伴→控制→應(yīng)用程序事務(wù),。
3 校園管理解決方案中BDT應(yīng)用實例
  在校園管理的解決方案中,學(xué)生主數(shù)據(jù)也是一種業(yè)務(wù)伙伴,。采取案例1中的方法產(chǎn)生和配置好業(yè)務(wù)伙伴學(xué)生后,,根據(jù)行業(yè)特點做一些較深入的開發(fā),。
3.1 更改初始化屏幕
  業(yè)務(wù)伙伴創(chuàng)建時需要指定角色,、種類,、組、類型[4],。但是對于學(xué)生主數(shù)據(jù)來說,,這些概念有一定的擴展和轉(zhuǎn)換,。需要根據(jù)其他的一些要素來自動決定上述關(guān)鍵信息。于是需要定義一些配置表,開發(fā)函數(shù)PMIQ_BUPA_CREATE_STUDENT_BUF在BDT運行開始時被調(diào)用,。屏幕次序中的初始化屏幕也需要改變,。該函數(shù)的定義如下:
  輸入條件:學(xué)生的ID,,操作類型(創(chuàng)建,、修改,、顯示),,有效期。
  程序運行的結(jié)果是BDT的實例被創(chuàng)建,,開始進入后續(xù)界面,。
  程序流程:
  * BDT_CLASS_INIT? 初始化BDT的分類
  * BDT_INSTANCE_CREATE ?創(chuàng)建BDT的實例
  * BDT_INSTANCE_ATTRIBUTES_SET? 定義操作類型和顯示控制參數(shù)
  * BDT_HEADER_CHECK 根據(jù)自定義的配置表和其他約束條件,推導(dǎo)出業(yè)務(wù)伙伴的角色,、種類、組,、類型
  * BUS_VALDT_SET 進行有效期控制。創(chuàng)建時一定是當(dāng)前日期,,修改時可以定義當(dāng)前日期或未來的日期,,顯示時任何日期都允許
  * BDT_DATA_READ ?讀出相關(guān)的數(shù)據(jù)。在創(chuàng)建時作為缺省數(shù)據(jù),。在修改和顯示時,是系統(tǒng)內(nèi)一致的數(shù)據(jù),。
3.2 創(chuàng)建自己的輔助屏幕次序
  需要根據(jù)一批已經(jīng)創(chuàng)建完成的屏幕組成一個輔助屏幕次序,這些屏幕采用制表頁的形式出現(xiàn),,并增加了一些自己的邏輯,,所以采用自編程序調(diào)用BDT的程序的方法,。函數(shù)PMIQ_BUPA_BDT_SCREEN_NAVIGATE用來控制屏幕的切換,。這個函數(shù)調(diào)用了函數(shù)BDT_FUNCTION_NAVIGATE:它指定了屏幕號,、屏幕類型,、光標(biāo)位置。BDT_SCREEN_ATTRIBUTES_GET:使用它激活了一些按鈕等,。這個函數(shù)用于屏幕的PBO,。
  創(chuàng)建函數(shù)PMIQ_BUPA_BDT_SCREEN_PBO來控制PBO,,該函數(shù)調(diào)用了函數(shù)BDT_SCREEN_PBO_PROCESS,。
  創(chuàng)建函數(shù)PMIQ_BUPA_BDT_SCREEN_SEL_PBO,,在PBO中它調(diào)用函數(shù)BDT_SCREEN_SELECT_PBO得到BDT子屏幕號,,然后再調(diào)用函數(shù)組BUSS中對應(yīng)屏幕的PBO函數(shù),。
  創(chuàng)建函數(shù)PMIQ_BUPA_OK_CODE_SET,由這個函數(shù)把OK_CODE傳遞給BDT,。
  創(chuàng)建函數(shù)PMIQ_BUPA_BDT_SCREEN_SEL_PAI,在PAI中調(diào)用函數(shù)BDT_SCREEN_SELECT_PAI得到BDT子屏幕號,,然后再調(diào)用函數(shù)組BUSS中對應(yīng)屏幕的PAI函數(shù)。
3.3 函數(shù)PMIQ_BUPA_BDT_SUBSCREEN_PAI
  這是主要的PAI函數(shù),。它首先得到了光標(biāo)的位置,,處理完BDT的PAI函數(shù)后處理其他的功能碼,。用戶退出BDT時,停止BDT實例,。
3.4 主數(shù)據(jù)保存
  因為在學(xué)生主數(shù)據(jù)保存的同時,需要創(chuàng)建學(xué)生財務(wù)賬號,。所以在BDT事件DSAVB,、DSAVC,、DSAVE完成后,再調(diào)用一個函數(shù)去創(chuàng)建學(xué)生財務(wù)賬號。
  BDT是一個封裝式的應(yīng)用開發(fā)模型,。它包含大量的配置(IMG)、用戶出口,、程序,、函數(shù)和工具,,并且單純的開發(fā)可能看不到效果或者對其他邏輯產(chǎn)生影響,,BDT確實是一個有效的、復(fù)雜的工具,。從SAP正在開發(fā)和完善的行業(yè)解決方案中大量采用BDT可見一斑,。有些企業(yè)和SAP合作伙伴采用SAP 系統(tǒng)平臺開發(fā)自己特有的局部解決方案,,BDT是一個可以考慮的工具,。對于其他應(yīng)用開發(fā)平臺供應(yīng)商而言,它也是一個可以借鑒的開發(fā)模型,。


參考文獻
[1]?托馬斯·H·達文波特,ERP必備指南.北京:北京機械工業(yè)出版社,2003.
[2] ?SAP AG. 在線幫助CRM5.0 BDT部分.CRM5.0 Online help BDT part.
[3]?SAP AG. CRM培訓(xùn)教材CR590[A].CRM training material CR590 BDT.
[4]?關(guān)宇平. SAP R3系統(tǒng)客戶接口程序的開發(fā)方法及實現(xiàn)[J].計算機系統(tǒng)應(yīng)用,,2007,13(2):47-50.
[5]?施權(quán). 利用SAP ABAP語言解決客戶特制要求的方法[J].計算機工程,,2004,30(S1):84-86.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點,。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118,;郵箱:[email protected]