業(yè)務(wù)數(shù)據(jù)工具集BDT(Business Data Toolset)是一套集成的封裝式的開發(fā)模型,主要用于維護(hù)復(fù)雜的主數(shù)據(jù)或簡(jiǎn)單的事務(wù)型數(shù)據(jù)。BDT除了包含對(duì)話界面的操作,同時(shí)還支持直接數(shù)據(jù)錄入和函數(shù)操作。BDT集成了SAP的其他技術(shù)功能,如變更管理、基于字段組的輸出控制、權(quán)限控制、存檔功能。BDT還集成了與BW的接口程序,BDOC類型的接口程序、XIF類型的接口函數(shù)。BDT具有一整套的配置工具和核心控制程序,然后配合具有規(guī)范接口的基于事件的函數(shù)集合,允許快速規(guī)范開發(fā)自己的整套應(yīng)用或者對(duì)現(xiàn)有的應(yīng)用進(jìn)行不同層次的配置和增強(qiáng).這些增強(qiáng)不會(huì)涉及直接更改系統(tǒng)核心源代碼,因而可以高效地利用這套模型的強(qiáng)大功能。BDT是在SAP CRM產(chǎn)品的集成業(yè)務(wù)伙伴對(duì)象和業(yè)務(wù)伙伴關(guān)系對(duì)象的實(shí)現(xiàn)過程中研制出來的,并完善了VET和EEWB兩個(gè)工具。可視化配置工具VCTOfisual Configu—ration T001)實(shí)現(xiàn)了類似所見及所得的屏幕配置。因?yàn)樵摴ぞ弑容^簡(jiǎn)單也有一定的局限性,本文不展開。簡(jiǎn)易增強(qiáng)工作臺(tái)EEWB(Easy Enhancement Workbench)有增加新字段和創(chuàng)建新透明表兩種模式。通過一個(gè)向?qū)В诨卮鹜晁袉栴}后,系統(tǒng)會(huì)自動(dòng)產(chǎn)生一系列的程序代碼?梢詫(duì)產(chǎn)生的程序做一些變更和完善,以滿足個(gè)性化需要。
BDT代表了SAP ERP規(guī)范化開發(fā)的一個(gè)方向。BDT成型后。在SAP內(nèi)部被一些行業(yè)解決方案和主要合作伙伴積極采用,如銀行業(yè)、保險(xiǎn)業(yè)、房地產(chǎn)業(yè)、校園管理等領(lǐng)域的解決方案,所以應(yīng)用BDT的機(jī)會(huì)越來越多了。但是目前國內(nèi)的用戶還很少,并且大多滿足于使用其標(biāo)準(zhǔn)功能,而敢于采用BDT開發(fā)整套應(yīng)用的還沒有。
BIY的整套封裝式模型包含大量的配置(IMG)、用戶出口、程序、函數(shù)和工具。本文以核心概念和應(yīng)用實(shí)例為主,具體的細(xì)節(jié)可以參照SAP ERP手冊(cè)。
1 基本概念
1.1 基本概念
一個(gè)主數(shù)據(jù)由一個(gè)關(guān)鍵字來惟一地識(shí)別它。但是還有一些其他的標(biāo)準(zhǔn)來區(qū)分和約束它,這就是差異類型(Differentiation)。差異類型可以理解為一個(gè)組織架構(gòu)或者其他的決定因素。它在創(chuàng)建該主數(shù)據(jù)的初始屏幕時(shí)就要確定,決定了后續(xù)的維護(hù)界面和內(nèi)容。
應(yīng)用對(duì)象是一類數(shù)據(jù)的抽象名,如業(yè)務(wù)伙伴(BUPA)、業(yè)務(wù)伙伴關(guān)系(BUPR)、銀行賬號(hào)(BKKA)、合同賬號(hào)(FICA)。它被分配給差異類型。有些具體對(duì)象允許有多個(gè)差異類型實(shí)例,如業(yè)務(wù)伙伴有多個(gè)角色;有些具體對(duì)象只允許有一個(gè)差異類型實(shí)例。應(yīng)用對(duì)象的操作模式如創(chuàng)建、修改、顯示等以及其他的控制配置均和應(yīng)用對(duì)象聯(lián)系起來。需要定義應(yīng)用對(duì)象關(guān)系之間允許的差異類型和缺省的差異類型。
1.2 交互控制
1.2.1 數(shù)據(jù)結(jié)構(gòu)
BDT的主數(shù)據(jù)可以保存在很多個(gè)有相似關(guān)鍵字的透明表(數(shù)據(jù)庫表)中。每個(gè)表都有相對(duì)應(yīng)的讀取和保存函數(shù)。同時(shí)有一批數(shù)據(jù)結(jié)構(gòu)用于接口定義和屏幕輸出。通過數(shù)據(jù)字典、檢查表和搜索幫助可以方便地實(shí)現(xiàn)在線輸入幫助和檢查。
1.2.2 屏幕控制
屏幕顯示的基本要素是視圖(View),實(shí)際上就是子屏幕。通過調(diào)用函數(shù)BUS_PBO和BUS_PAI實(shí)現(xiàn)PBO和PAl,并規(guī)范PBO和PAI的程序。主要的流程控制、屏幕顯示以及各種檢查和缺省都在視圖的程序中。通常一個(gè)視圖內(nèi)的字段是一個(gè)字段組.通過基于字段組的輸出控制配置功能實(shí)現(xiàn)基于不同條件下的屏幕輸出控制。
幾個(gè)視圖組成一個(gè)塊(Section)’塊內(nèi)也可以有流程控制。幾個(gè)視圖組成一個(gè)屏幕,如圖l所示。
圖1 視圖結(jié)構(gòu)
屏幕次序定義了屏幕出現(xiàn)的次序,如圖2所示。屏幕次序可以分成主屏幕次序和輔助屏幕次序。屏幕次序可以分給不同種類的對(duì)象,如不同角色的業(yè)務(wù)伙伴。每個(gè)屏幕和塊都有標(biāo)題,每個(gè)屏幕也對(duì)應(yīng)一個(gè)功能碼。BDT有標(biāo)準(zhǔn)的菜單,用戶也可以增加功能碼到菜單中。
圖2 屏幕次序
1.2.3 程序邏輯
BDT的交互控制程序定義了大量的事件函數(shù),流程圖如圖3所示,每一個(gè)事件對(duì)應(yīng)一個(gè)函數(shù),開發(fā)人員可以通過更改這些函數(shù)來控制交互過程。這些函數(shù)有明確的命名規(guī)范,為<應(yīng)用>一<應(yīng)用對(duì)象>_EVENT一<事件名>。這些函數(shù)被BDT的核心程序調(diào)用。
1.2.4 其他
數(shù)據(jù)分割是BDT的一個(gè)重要概念。每一個(gè)應(yīng)用對(duì)象都包含很多可以維護(hù)的數(shù)據(jù),但并不是每一個(gè)主數(shù)據(jù)都允許顯示和維護(hù)所有的字段。數(shù)據(jù)分割就是進(jìn)行這樣的區(qū)分。業(yè)務(wù)伙伴的角色就是數(shù)據(jù)分割,不同的角色有不同的主數(shù)據(jù),同一個(gè)對(duì)象允許是多個(gè)角色。數(shù)據(jù)分割的方法是由應(yīng)用對(duì)象決定的。
BDT中數(shù)據(jù)的保存并不是以屏幕為單位的。而是把數(shù)據(jù)保存在全局變量中,最后在DSAVE事件中保存。這樣的機(jī)制甚至允許多個(gè)有關(guān)系的應(yīng)用對(duì)象按一定的次序共同創(chuàng)建或共同取消。
2 客戶項(xiàng)目中BDT的應(yīng)用實(shí)例
某客需要對(duì)于業(yè)務(wù)伙伴的定義進(jìn)行增強(qiáng)。首先創(chuàng)建角色最終用戶,并進(jìn)行字段增強(qiáng)。業(yè)務(wù)伙伴字段的增強(qiáng)采用EEWB的工具產(chǎn)生BDT的各種程序和函數(shù),接著做一些簡(jiǎn)單的修改,然后通過業(yè)務(wù)伙伴的配置把它們合理地顯示在屏幕上。
2.1 運(yùn)行EEWB和后續(xù)調(diào)整
運(yùn)行事務(wù)代碼EEWB,進(jìn)入簡(jiǎn)易增強(qiáng)工作臺(tái)。創(chuàng)建針對(duì)業(yè)務(wù)伙伴的增強(qiáng)項(xiàng)目ZFVW—BUPA一01。針對(duì)定義的每一個(gè)視圖創(chuàng)建一個(gè)子對(duì)象,運(yùn)行一次向?qū)。每一個(gè)視圖對(duì)應(yīng)一個(gè)字段集合和權(quán)限對(duì)象等,分得細(xì)有利于控制。至于屏幕的顯示可以通過配置(IMG)來調(diào)整。
圖3 流程圖
在本案例中,針對(duì)單選項(xiàng)或簡(jiǎn)單輸入項(xiàng),采用對(duì)表BUT000添加字段的方法。舉例客戶付款方式。在向?qū)е卸x字段名、字段類型、檢查表名、抬頭名、不需要有效期控制、需要BW集成,完成后系統(tǒng)會(huì)自動(dòng)產(chǎn)生數(shù)據(jù)字典、數(shù)據(jù)結(jié)構(gòu)、檢查表、子屏幕(視圖)、子屏幕的PBO和PAJ、針對(duì)于事件DLVEl、DSAVB、ISDST、ISSl.A andXCHNG的函數(shù)、直接操作的BAPI函數(shù)、現(xiàn)有BDOC自動(dòng)擴(kuò)展、在BW的數(shù)據(jù)源0BPARTNER增加字段。產(chǎn)生的程序?qū)儆谧蚤_發(fā)程序。
EEWB結(jié)束后,首先激活檢查表的維護(hù),然后使用事務(wù)代碼SM30維護(hù)可選項(xiàng)。例如維護(hù)客戶付款方式:00一其他;Ol一分期付款;02一全款;03一租賃購買;這樣就形成了如圖4的單選項(xiàng)。針對(duì)復(fù)雜的運(yùn)用,可能需要修改和創(chuàng)建針對(duì)特定事件的函數(shù),如擴(kuò)展性檢查等。
圖4 客戶付款方式選擇界面
在本案例中希望聯(lián)系方式和方便聯(lián)系時(shí)間是多選項(xiàng)。所以采用創(chuàng)建新透明表的方法。在向?qū)е卸x字段名、字段類型、檢查表名、抬頭名、不需要有效期、需要BW集成、需要BDOC集成,完成后系統(tǒng)會(huì)自動(dòng)產(chǎn)生數(shù)據(jù)字典、數(shù)據(jù)結(jié)構(gòu)、檢查表、子屏幕(視圖)、子屏幕的PBO和PAI、針對(duì)于事件DLVEl、DLVE2、DCHK、CHGDl、CHGIM、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)系時(shí)間只有一列,沒有文本顯示,通常需要修改系統(tǒng)產(chǎn)生的程序以改進(jìn)顯示效果。以希望聯(lián)系方式為例說明如下。首先在產(chǎn)生的屏幕結(jié)構(gòu)gty—dynpstruc中增加字段TEXT like ZTB0000YQJCXOT—text。
在產(chǎn)生的函數(shù)組的屏幕0100中增加輸出元素:ZTBOOOOYQJCXOT—text。這樣就調(diào)整好了子屏幕。接著在PAl中,當(dāng)用戶選擇了希望訪問方式后讀取文本。
最后在函數(shù)ZZ06J—BUPA—PBO—Z06J0100中添加類例程序。
對(duì)于復(fù)雜的應(yīng)用,需要修改和創(chuàng)建針對(duì)特定事件的函數(shù),并且調(diào)整會(huì)比較多,例如和其他數(shù)據(jù)庫表關(guān)聯(lián)后讀取數(shù)據(jù)和保存數(shù)據(jù)。如果要使用BW和BDOC,也需要根據(jù)SAP的手冊(cè)傲一些配置和激活。
2.2 區(qū)域菜單BUPT內(nèi)的配置
區(qū)域菜單BUPT包含了所有BDT業(yè)務(wù)對(duì)象中業(yè)務(wù)伙伴和業(yè)務(wù)伙伴關(guān)系的配置,所以本文的路徑都在區(qū)域菜單BUPT內(nèi)。本案例的配置不牽涉到創(chuàng)建新的應(yīng)用對(duì)象、應(yīng)用和分割,但是所有配置菜單都在BUPT內(nèi)。首先是配置屏幕的輸出效果、參考和復(fù)制屏幕次序BUP001及其屏幕,創(chuàng)建自己的屏幕次序,如圖5所示,
圖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è)置一字段分組一配置每個(gè)商業(yè)伙伴角色的字段屬性。
定義角色最終用戶的專用事務(wù)代碼。這樣可以提高最終用戶的創(chuàng)建、修改、顯示的速度。SAP菜單路徑為業(yè)務(wù)合作伙伴一控制一應(yīng)用程序事務(wù)。
3 校園管理解決方案中BDT應(yīng)用實(shí)例
在校園管理的解決方案中,學(xué)生主數(shù)據(jù)也是一種業(yè)務(wù)伙伴。采取案例1中的方法產(chǎn)生和配置好業(yè)務(wù)伙伴學(xué)生后,根據(jù)行業(yè)特點(diǎn)做一些較深入的開發(fā)。
3.1 更改初始化屏幕
業(yè)務(wù)伙伴創(chuàng)建時(shí)需要指定角色、種類、組、類型。但是對(duì)于學(xué)生主數(shù)據(jù)來說,這些概念有一定的擴(kuò)展和轉(zhuǎn)換。需要根據(jù)其他的一些要素來自動(dòng)決定上述關(guān)鍵信息。于是需要定義一些配置表,開發(fā)函數(shù)PMIQ—BUPA—CREATE—STUDENT_BUF在BDT運(yùn)行開始時(shí)被調(diào)用。屏幕次序中的初始化屏幕也需要改變。該函數(shù)的定義如下:
輸入條件:學(xué)生的ID,操作類型(創(chuàng)建、修改、顯示),有效期。
程序運(yùn)行的結(jié)果是BDT的實(shí)例被創(chuàng)建,開始進(jìn)入后續(xù)界面。
程序流程:
BDT_CLASS_INIT初始化BDT的分類
BDT_INSTANCE—CREATE創(chuàng)建BDT的實(shí)例
BDT_INSTANCE_ATTRIBUTES—SET定義操作類型和顯示控制參數(shù)
BDT—HEADER—CHECK根據(jù)自定義的配置表和其他約束條件,推導(dǎo)出業(yè)務(wù)伙伴的角色、種類、組、類型
BUS—VALDT—SET進(jìn)行有效期控制。創(chuàng)建時(shí)一定是當(dāng)前日期。修改時(shí)可以定義當(dāng)前日期或未來的日期,顯示時(shí)任何日期都允許
BDT_DATA—READ讀出相關(guān)的數(shù)據(jù)。在創(chuàng)建時(shí)作為缺省數(shù)據(jù)。在修改和顯示時(shí),是系統(tǒng)內(nèi)一致的數(shù)據(jù)。
3.2 創(chuàng)建自己的輔助屏幕次序
需要根據(jù)一批已經(jīng)創(chuàng)建完成的屏幕組成一個(gè)輔助屏幕次序,這些屏幕采用制表頁的形式出現(xiàn),并增加了一些自己的邏輯,所以采用自編程序調(diào)用BDT的程序的方法。函數(shù)PMIQ—BUPA—BDT_SCREEN—NAVIGATE用來控制屏幕的切換。這個(gè)函數(shù)調(diào)用了函數(shù)BDT_FUNCTION—NAVIGATE:它指定了屏幕號(hào)、屏幕類型、光標(biāo)位置。BDT_SCREEN—ATIRIBUTES—GET:使用它激活了一些按鈕等。這個(gè)函數(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_SCKEEN_SELECT_PBO得到BIYI"子屏幕號(hào),然后再調(diào)用函數(shù)組BUSS中對(duì)應(yīng)屏幕的PBO函數(shù)。創(chuàng)建函數(shù)PMIQ—BUPA—OK_CODE_SET,由這個(gè)函數(shù)把OK—CODE傳遞給BDT。
創(chuàng)建函數(shù)PMIQ—BUPA—BDT—SCREEN—SEL_PAI,在PAI中調(diào)用函數(shù)BDT_SCREEN_S;ELECT_PAl得到BDT子屏幕號(hào),然后再調(diào)用函數(shù)組BUSS中對(duì)應(yīng)屏幕的PAI函數(shù)。
3.3 函數(shù)PMIQ—BUPA—BDT—SUBSCREEN—PAl
這是主要的PAI函數(shù)。它首先得到了光標(biāo)的位置,處理完BDT的PAl函數(shù)后處理其他的功能碼。用戶退出BDT時(shí),停止BDT實(shí)例。
3.4 主數(shù)據(jù)保存
因?yàn)樵趯W(xué)生主數(shù)據(jù)保存的同時(shí)。需要?jiǎng)?chuàng)建學(xué)生財(cái)務(wù)賬號(hào)。所以在BDT事件DSAVB、DSAVC、DSAVE完成后,再調(diào)用一個(gè)函數(shù)去創(chuàng)建學(xué)生財(cái)務(wù)賬號(hào)。
BDT是一個(gè)封裝式的應(yīng)用開發(fā)模型。它包含大量的配置(IMG)、用戶出口、程序、函數(shù)和工具,并且單純的開發(fā)可能看不到效果或者對(duì)其他邏輯產(chǎn)生影響,BDT確實(shí)是一個(gè)有效的、復(fù)雜的工具。從SAP正在開發(fā)和完善的行業(yè)解決方案中大量采用BDT可見一斑。有些企業(yè)和SAP合作伙伴采用SAP系統(tǒng)平臺(tái)開發(fā)自己特有的局部解決方案,BDT是一個(gè)可以考慮的工具。對(duì)于其他應(yīng)用開發(fā)平臺(tái)供應(yīng)商而言,它也是一個(gè)可以借鑒的開發(fā)模型。、
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:SAP ERP BDT業(yè)務(wù)數(shù)據(jù)工具集的開發(fā)原理及應(yīng)用實(shí)例