版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 摘 要</b></p><p> 銷售部門在企業(yè)的供需鏈中處于市場與企業(yè)的供應(yīng)接口位置,實現(xiàn)企業(yè)的資金轉(zhuǎn)化并獲取利潤,是為企業(yè)提供生存與發(fā)展的動力能源。本系統(tǒng)是要解決SAP系統(tǒng)在進(jìn)行企業(yè)管理時,銷售部門拿下訂單時數(shù)據(jù)在企業(yè)中的傳輸,及對不同報表不同填法,將不同部門的單一數(shù)據(jù),轉(zhuǎn)化為滿足差異化的填單數(shù)據(jù)進(jìn)行各模塊傳輸?shù)膯栴}。</p><p&
2、gt; 本論文主要描述SAP二次開發(fā)項目過程,開發(fā)過程包括兩部分:在SAP/R3架構(gòu)下的程序設(shè)計和業(yè)務(wù)處理。在設(shè)計方面,系統(tǒng)使用的是現(xiàn)代企業(yè)管理軟件領(lǐng)域的領(lǐng)先者SAP R/3系統(tǒng),并采用了三層架構(gòu),即顯示層、應(yīng)用層、數(shù)據(jù)層。每個業(yè)務(wù)處理過程分成了三個處理部分:初期處理、主處理和終了處理。在主處理中對數(shù)據(jù)做不同的處理輸出,最終完成系統(tǒng)最初的設(shè)計要求;在業(yè)務(wù)方面,主要對開發(fā)方法和特點進(jìn)行研究,并重點探討在SAP R/3中,如何從銷售分售這
3、方面具體業(yè)務(wù)知識來滿足客戶需求,鏈接起各個同模塊,讓訂單在各自的模塊中以不同形式進(jìn)行傳遞。</p><p> 通過利用ABAP/4語言對SD(銷售與分銷)的業(yè)務(wù)流程上進(jìn)行擴(kuò)展開發(fā)發(fā)現(xiàn):SAP R/3標(biāo)準(zhǔn)解決方案能適應(yīng)各種ERP的特殊問題,滿足客戶提出的針對自己企業(yè)的特定需求,具有良好的移植性和擴(kuò)展性。</p><p> 關(guān)鍵詞:SAP,ABAP/4,SD,主處理。</p>
4、<p><b> Abstract</b></p><p> Sales department, in the supply interface between market and enterprises of the enterprise supply chain, conversion funds of enterprises and making profit, pr
5、ovides dynamic energy for enterprise's survival and development. When taking business management on SAP system, this system make sales department transmits data when won the order, converting a single data of differe
6、nt departments to the data which fulfill transmission different modules. That is, making different reports have its own fillin</p><p> This thesis mainly describes the process of secondary development proje
7、ct of SAP. The development process consists of two parts: the SAP/R3 architecture programming and business processing. At the design respect, the system uses a modern enterprise management software leader SAP R / 3 syste
8、m, using the three-tier structure, which indicates that layer, application layer and data layer. Each business process is divided into three parts: the initial treatment, primary treatment and the end of treat</p>
9、<p> Through the use of ABAP / 4 language to extend business processes of SD (sales and distribution) ,I found SAP R / 3 standard solutions which can adapt to a variety of special problems of ERP, can meet custome
10、r specific needs for their own businesses and have good portability and scalability.</p><p> Keywords:SAP,ABAP/4,SD,Primary Treatment</p><p><b> 目錄</b></p><p><b>
11、; 1.緒論1</b></p><p> 1.1.論文背景及目的和意義1</p><p> 2.相關(guān)知識簡介3</p><p> 2.1.SAP 簡介3</p><p> 2.2.SAP R/3 介紹3</p><p> 2.2.1.SAP R/3業(yè)務(wù)模塊3</p&
12、gt;<p> 2.2.2.SAP R/3系統(tǒng)特點4</p><p> 2.3.SAP開發(fā)語言—ABAP/45</p><p> 2.4.EDI的概念5</p><p> 3.SD業(yè)務(wù)模塊分析及其需求6</p><p> 3.1.SD 概述6</p><p> 3.2.S
13、AP SD模塊的系統(tǒng)組成部分6</p><p> 3.2.1.銷售管理7</p><p> 3.2.2.裝運(yùn)管理7</p><p> 3.2.3.開票管理8</p><p> 3.2.4.主數(shù)據(jù)管理8</p><p> 3.2.5.銷售信息系統(tǒng)(SIS)9</p><
14、p> 3.3.業(yè)務(wù)需求9</p><p> 3.3.1.業(yè)務(wù)需求流程9</p><p> 3.3.2.客戶需求10</p><p> 4.總體設(shè)計12</p><p> 4.1.設(shè)計原則12</p><p> 4.2.組件設(shè)計12</p><p> 4
15、.2.1.程序數(shù)據(jù)表中數(shù)據(jù)流向12</p><p> 4.3.數(shù)據(jù)庫表設(shè)計13</p><p> 4.4.用戶權(quán)限15</p><p> 4.5.功能概要16</p><p> 5.詳細(xì)設(shè)計17</p><p> 5.1.在詳細(xì)設(shè)計過程中的技術(shù)要點17</p><p
16、> 5.1.1.模塊化17</p><p> 5.1.2.變式18</p><p> 5.1.3.開發(fā)類命名18</p><p> 5.2.內(nèi)表/工作區(qū)19</p><p> 5.3.流程圖19</p><p> 5.4.具體模塊開發(fā)21</p><p>
17、; 5.4.1.初期處理21</p><p> 5.4.2.主處理23</p><p> 5.4.3.終了處理35</p><p> 6.系統(tǒng)測試及項目結(jié)論36</p><p> 6.1.選取測試方案36</p><p> 6.2.測試結(jié)果表達(dá)方式36</p><
18、p> 6.3.測試內(nèi)容36</p><p> 6.3.1.代碼測試36</p><p> 6.3.2.功能測試37</p><p> 6.4.性能測試47</p><p> 6.4.1.運(yùn)行時間分析47</p><p> 6.4.2.代碼行數(shù)檢查48</p>&l
19、t;p><b> 7.結(jié)論50</b></p><p><b> 8.致謝51</b></p><p><b> 參考文獻(xiàn)52</b></p><p><b> 緒論</b></p><p> 論文背景及目的和意義</p&g
20、t;<p> 銷售分售作為一個企業(yè)獲得利潤發(fā)展自我的重中之重,是每個有自己的產(chǎn)品或服務(wù)的企業(yè)希望大力發(fā)展的部門。在企業(yè)間的商業(yè)競爭越來越激烈的今天,如何更好的將自己的產(chǎn)品更快速,更準(zhǔn)確,更靈活的銷售給客戶以取得企業(yè)的利潤,成為了企業(yè)更加關(guān)注的方向。于是為了更加能讓企業(yè)管理高效靈活化,對如銷售分售管理、財務(wù)管理、生產(chǎn)控制管理、等等的需求,在20世紀(jì)90年代初Gartner就提出了對企業(yè)管理的發(fā)展起重要作用的ERP。<
21、/p><p> ERP(Enterprise Resource Planning)──企業(yè)資源計劃系統(tǒng),是指建立在信息技術(shù)基礎(chǔ)上,以系統(tǒng)化的管理思想,為企業(yè)決策層及員工提供決策運(yùn)行手段的管理平臺。作為知識經(jīng)濟(jì)的典型產(chǎn)物ERP可以成為企業(yè)信息化建設(shè)的核心組成部分,它的優(yōu)勢不僅僅在于幫助企業(yè)建立一套信息化管理系統(tǒng),更重要的是它代表當(dāng)今世界最先進(jìn)的現(xiàn)代管理思想和方法,通過它達(dá)到業(yè)務(wù)重組、組織重組和管理重組,盡快改變企業(yè)傳
22、統(tǒng)管理粗放、落后的局面,進(jìn)而建立一套符合市場經(jīng)濟(jì)體制要求的現(xiàn)代企業(yè)管理模式。ERP幫助公司實現(xiàn)全球化的管理,獲得成功的管理經(jīng)驗,所以使用ERP已成為現(xiàn)代企業(yè)發(fā)展的必然趨勢。</p><p> 在ERP中將銷售放入了后勤系統(tǒng)的大類,但是在其它的模塊中也不乏與銷售會有一定的聯(lián)系,總的來說銷售分售管理包括有:</p><p><b> (一)分銷管理 </b></
23、p><p> 銷售的管理是從產(chǎn)品的銷售計劃開始,對其銷售產(chǎn)品、銷售地區(qū)、銷售客戶各種信息的管理和統(tǒng)計,并可對銷售數(shù)量、金額、利潤、績效、客戶服務(wù)做出全面的分析,這樣在分銷管理模塊中大致有三方面的功能。 </p><p> 1、對于客戶信息的管理和服務(wù) </p><p> 2、對于銷售訂單的管理 </p><p> 3、對于銷售的統(tǒng)計與分析
24、 </p><p><b> (二)庫存控制 </b></p><p> 用來控制存儲物料的數(shù)量,以保證穩(wěn)定的物流支持正常的生產(chǎn),但又最小限度的占用資本。它是一種相關(guān)的、動態(tài)的、及真實的庫存控制系統(tǒng)。它能夠結(jié)合、滿足相關(guān)部門的需求,隨時間變化動態(tài)地調(diào)整庫存,精確的反映庫存現(xiàn)狀。 </p><p><b> (三)采購管理 &l
25、t;/b></p><p> 確定合理的定貨量、優(yōu)秀的供應(yīng)商和保持最佳的安全儲備。能夠隨時提供定購、驗收的信息,跟蹤和催促對外購或委外加工的物料,保證貨物及時到達(dá)。建立供應(yīng)商的檔案,用最新的成本信息來調(diào)整庫存的成本。</p><p> 基于以上的背景和SAP中的SD模塊能完成和實現(xiàn)的功能,本次論文主要是想通過學(xué)習(xí)SAP R/3系統(tǒng),研究如何將卓越的管理思想和計算機(jī)技術(shù)結(jié)合起來完成
26、報表開發(fā)的主要技術(shù)和方法。</p><p><b> 相關(guān)知識簡介</b></p><p><b> SAP 簡介</b></p><p> SAP起源于Systems Application Products in DATA processing。它既是公司名稱,又是其ERP (Enterprise-wide Re
27、source Planning)軟件名稱。 作為公司它成立于1972年,總部位于德國沃爾多夫市,是全球最大的企業(yè)管理軟件供應(yīng)商、第三大獨立軟件供應(yīng)商、全球領(lǐng)先的協(xié)同電子商務(wù)解決方案供應(yīng)商。然而作為ERP思想的倡導(dǎo)者及解決方案的先驅(qū),它可以為各種行業(yè)、不同規(guī)模的企業(yè)提供全面的解決方案。</p><p> SAP發(fā)展至今已經(jīng)推出了很多產(chǎn)品,像早期的RF系統(tǒng)后來被命名為R/1系統(tǒng),1979年用于大型機(jī)的R/2系統(tǒng),1
28、992年的R/3客戶機(jī)/服務(wù)器系統(tǒng),1996年最新版R/3系統(tǒng),以及1999年的mySAP.com協(xié)同化電子商務(wù)解決方案。在這些產(chǎn)品中,R/3產(chǎn)品是SAP的主打產(chǎn)品用于分布式客戶機(jī)/服務(wù)器環(huán)境的標(biāo)準(zhǔn)ERP軟件,主要功能模塊包括:銷售和分銷、物料管理、生產(chǎn)計劃、質(zhì)量管理、工廠維修、人力資源、工業(yè)方案、辦公室和通信、項目系統(tǒng)、資產(chǎn)管理、控制、財務(wù)會計。</p><p> SAP R/3 介紹</p>
29、<p> SAP R/3業(yè)務(wù)模塊</p><p> SAP R/3以模塊化為思想,分模塊管理,它們既可以單獨使用,也可以和其它解決方案相結(jié)合。在SAP R/3系統(tǒng)中有FI,CO,MM,SD,PP,HR等幾個基本模塊,大體上分為財會、后勤和人力資源管理三大部分。這些模塊既相互獨立,又內(nèi)在聯(lián)系,互相影響,共享企業(yè)內(nèi)部資源,如下圖:</p><p> 圖2.1 SAP R/3業(yè)
30、務(wù)模塊圖</p><p> 下面是它們的基本功能:</p><p> (1)FI 財務(wù)會計</p><p> 主要完成應(yīng)收、應(yīng)付、總帳、合并、投資、基金、現(xiàn)金等功能。</p><p><b> (2)CO管理會計</b></p><p> 管理會計就是管理企業(yè)的利潤及成本中心,產(chǎn)品成本、
31、項目會計、獲利分析等。</p><p> (3)PP 生產(chǎn)計劃控制</p><p> 企業(yè)可以通過工廠數(shù)據(jù)、生產(chǎn)計劃、MRP、能力計劃、成本核算等一系列操作獲得各種制造類型的全面處理信息。</p><p> (4)SD銷售與分銷</p><p> 此模塊主要完成銷售計劃、詢價報價、定單管理、運(yùn)輸發(fā)貨、發(fā)票等操作。</p>
32、<p> (5)MM 物料管理</p><p> 主要完成采購、庫房管理、庫存管理、MRP、供應(yīng)商評價等功能。</p><p> (6)HR 人力資源管理</p><p> 主要完成對薪資、差旅、工時、招聘、發(fā)展計劃、人事成本等方面的管理。</p><p> SAP R/3系統(tǒng)特點</p><p>
33、; 模塊化:R/3中各模塊即可獨立存在,也可與其它模塊一起給企業(yè)帶來更好的經(jīng)濟(jì)效益。</p><p> 功能性:R/3的模塊化就導(dǎo)致其功能性非常強(qiáng),其中的模塊囊括了全部所需業(yè)務(wù)功能。</p><p> 界面友好:統(tǒng)一的圖標(biāo)與圖形符號簡化了人機(jī)交互時的操作與難度。</p><p> 靈活性:由于R/3系統(tǒng)中方便的裁剪方法,所以R/3相對于同一軟件來說更具有靈活
34、的適應(yīng)性。 </p><p> 高效益低成本:R/3高度集成化的數(shù)據(jù)處理,使得企業(yè)在競爭中占有信息優(yōu)勢。</p><p> SAP開發(fā)語言—ABAP/4</p><p> SAP最初開ABAP/4(高級商業(yè)應(yīng)用程序設(shè)計)語言僅為內(nèi)部使用,為應(yīng)用程序員提供優(yōu)化的工作環(huán)境 。經(jīng)過不斷的改進(jìn)和修改以滿足商業(yè)領(lǐng)域的需要。現(xiàn)在ABAP/4 已成為 SAP 開發(fā)所有自己的
35、應(yīng)用程序的僅有工具。 </p><p> SAP 客戶用ABAP/4 進(jìn)行其自身開發(fā)。這樣的開發(fā)對R/3 標(biāo)準(zhǔn)解決方案適應(yīng)特殊問題非常重要。</p><p> ABAP/4 開發(fā)工作平臺包含所有用于創(chuàng)建和 維護(hù)ABAP/4 程序的工具 。 ABAP/4 的可解釋特性 使其易于生成、測試并運(yùn)行程序的中級版本,以便將來生 成最終版本 。此過程也叫做早期原形處理,意味著您不必丟棄中級版本。
36、</p><p> ABAP/4 是第四代支持結(jié)構(gòu)化程序設(shè)計的語言。它合并了所有通常的控制結(jié)構(gòu)和模塊化概念。 </p><p><b> EDI的概念 </b></p><p> 因為在項目中經(jīng)??吹揭訣DI為開頭的流程命名,不太理解是什么意思最后查詢了資料才知道:</p><p> EDI是英文Electron
37、ic Data Interchange的縮寫,中文可譯為“電子數(shù)據(jù)互換”,或稱作“電子資料聯(lián)通”。它是一種在公司之間傳輸訂單、發(fā)票等作業(yè)文件的電子化手段。它通過計算機(jī)通信網(wǎng)絡(luò)將貿(mào)易、運(yùn)輸、保險、銀行和海關(guān)等行業(yè)信息,用一種國際公認(rèn)的標(biāo)準(zhǔn)格式,實現(xiàn)各有關(guān)部門或公司與企業(yè)之間的數(shù)據(jù)交換與處理,并完成以貿(mào)易為中心的全部過程,它是20世紀(jì)80年代發(fā)展起來的一種新穎的電子化貿(mào)易工具,是計算機(jī)、通信和現(xiàn)代管理技術(shù)相結(jié)合的產(chǎn)物。國際標(biāo)準(zhǔn)化組織(ISO
38、)將EDI描述成“將貿(mào)易(商業(yè))或行政事務(wù)處理按照一個共認(rèn)的標(biāo)準(zhǔn)變成結(jié)構(gòu)化的事務(wù)處理或信息數(shù)據(jù)格式,從計算機(jī)到計算機(jī)的電子傳輸”。而ITU—T(原CCITT)將EDI定義為“從計算機(jī)到計算機(jī)之間的結(jié)構(gòu)化的事務(wù)數(shù)據(jù)互換”。又由于使用EDI可以減少甚至消除貿(mào)易過程中的紙面文件,因此EDI又被人們通俗地稱為“無紙貿(mào)易”。 </p><p> SD業(yè)務(wù)模塊分析及其需求</p><p> 在經(jīng)過
39、上面對SAP R/3系統(tǒng)整個業(yè)務(wù)模塊進(jìn)行了全面的概述和了解之下,現(xiàn)在開始著重理解一些關(guān)于此次論文所涉及的SD(銷售與分銷)業(yè)務(wù)模塊的一些知識。這些相關(guān)的業(yè)務(wù)知識是編程中的思想,只有對他們有了一定的認(rèn)識,編程時遇到的很多困難就會迎刃而解。</p><p><b> SD 概述</b></p><p> SD(Sales and Distribution)模塊,中文名
40、稱為銷售與分銷模塊。SD模塊處理有關(guān)銷售、裝運(yùn)、單據(jù)開具的任務(wù)。它提供的銷售支持有:對有關(guān)銷售線索和競爭者活動的信息進(jìn)行管理的工具,銷售信息系統(tǒng)還能提出關(guān)于市場趨勢的早期警告。如果顧客發(fā)出一份訂單,SD模塊能夠從數(shù)據(jù)庫中抽取顧客地址、銷售活動和信用限額等信息。 SD模塊提供使用方便的工具來管理潛在客戶探訪、詢價、報價、市場推廣、競爭者及他們的產(chǎn)品信息。銷售和市場推廣人員在任何時候都可以訪問這些數(shù)據(jù)以進(jìn)行銷售活動或直接給客戶寄遞資
41、料。不僅可以利用銷售支持功能更有效地進(jìn)行銷售流程和提高對現(xiàn)有客戶地服務(wù)水平,還可以用來識別新客戶來源。 SD模塊還能與“物料管理”和“生產(chǎn)計劃”模塊一起,檢查原材料是否可以獲得,估計出這訂單的最早可能交貨期。SD向員工提供有關(guān)到期應(yīng)該發(fā)貨的訂單的信息。它和“物料管理”模塊一起,從倉庫中提出產(chǎn)成品,并且支持有關(guān)包裝和生成裝運(yùn)單據(jù)的活動。一旦產(chǎn)成品發(fā)出,SD便自動開具單據(jù),“財務(wù)會計與控制”模塊馬上就能獲得這個信息。</p&
42、gt;<p> SAP SD模塊的系統(tǒng)組成部分</p><p> 在SD模塊中,其系統(tǒng)架構(gòu)所含的具體內(nèi)容有:銷售管理、裝運(yùn)管理、開票管理、主數(shù)據(jù)管理以及銷售信息系統(tǒng)。</p><p> 圖3.1 SD 模塊組成</p><p> 以下將一一介紹SD模塊中的5個組成部分:</p><p><b> 銷售管理&l
43、t;/b></p><p> 任何組織的銷售部門都需要開展廣泛的銷售活動,這些活動從接受客戶詢價、處理報價申請、開具報價單和銷售訂單到產(chǎn)品/服務(wù)定價、信貸和產(chǎn)品可用性檢查等。這些工作中任何一步稍有疏忽都可能造成訂單的喪失、公司收入損失、甚至損害與客戶的良好關(guān)系。</p><p> 因此,一個好的銷售管理體系,應(yīng)該是各項進(jìn)展平穩(wěn)、一個環(huán)節(jié)和下一個環(huán)節(jié)有序銜接,彼此信息暢通及時,銷售
44、數(shù)據(jù)的輸入減至最少而誤差則被徹底消除。SAP的SD模塊就可以幫助企業(yè)做到這一點,尤其是針對大型企業(yè)的銷售行為,SD模塊中的銷售管理具備了齊全的功能,多種訂單錄入方式大大降低了企業(yè)銷售行為中的原始數(shù)據(jù)錄入工作量和銷售信息出錯率,先進(jìn)的信貸管理能力可使企業(yè)的銷售風(fēng)險減至最小,而精細(xì)的定價又可以保持銷售工作的靈活性和競爭性,使用SD模塊將有效提高銷售工作的效率和對客戶的響應(yīng)速度。</p><p> SD模塊的銷售管理
45、功能支持對客戶詢價的響應(yīng)、對報價和銷售訂單的處理與監(jiān)控、對產(chǎn)品或服務(wù)的可用性檢查、擬定交貨計劃、對產(chǎn)品或服務(wù)的多種定價模式的設(shè)定以及對客戶信用額度的檢查、監(jiān)控和更新等,更重要的是SD還能靈活支持退貨、換貨等業(yè)務(wù)需求。</p><p><b> 裝運(yùn)管理</b></p><p> 裝運(yùn)是供應(yīng)鏈中的基本環(huán)節(jié)。裝運(yùn)部門的主要任務(wù)是確保對用戶的服務(wù),將準(zhǔn)確的貨物、準(zhǔn)確的數(shù)
46、量在準(zhǔn)確的時間內(nèi)以準(zhǔn)確的方式裝運(yùn)和發(fā)送,在此過程中發(fā)生的裝運(yùn)成本是整個企業(yè)后勤成本中的主要部分。所以靠SAP SD模塊提供的靈活裝運(yùn)處理,可幫助企業(yè)提高總的成本效益且變得更有競爭能力?! ≡赟D模塊的裝運(yùn)處理中,系統(tǒng)可通過跟蹤與用戶的總協(xié)議、跟蹤對物料的具體要求,或是根據(jù)對每一訂單所規(guī)定的條件等,事先作出交貨過程中的所有決策,從而使整個裝運(yùn)過程更趨合理,且基本實現(xiàn)了全自動化;只有在發(fā)生特殊情況下,這些決策才需要一定的人工干預(yù)?! ?/p>
47、SD模塊的裝運(yùn)活動具體包括:計劃并監(jiān)督裝運(yùn)過程每步工作的工作量、監(jiān)控產(chǎn)品可用性、處理延期訂單、處理分揀/包裝、打印并傳遞裝運(yùn)憑證、跟蹤并更新出貨狀態(tài)等。</p><p><b> 開票管理</b></p><p> 出具發(fā)票是整個銷售和分銷活動中的最后一環(huán)。SAP的SD模塊開票管理支持以下功能:</p><p> (1)自動或手工開具發(fā)票
48、:根據(jù)貨物和服務(wù)而發(fā)出的發(fā)票、根據(jù)相應(yīng)的請求而發(fā)出的借項和貸項憑單、或開具形式發(fā)票等</p><p> (2)支持訂單、交貨與發(fā)票之間的一對一、一對多或多對一等多種靈活形式</p><p> (3)取消出具發(fā)票事務(wù)</p><p><b> (4)回扣的發(fā)出</b></p><p> (5)傳遞過帳數(shù)據(jù)到財務(wù)會計
49、(FI)模塊</p><p><b> 主數(shù)據(jù)管理</b></p><p> 主數(shù)據(jù)是SAP系統(tǒng)運(yùn)行的基礎(chǔ),它的數(shù)據(jù)結(jié)構(gòu)的定義對系統(tǒng)的管理、條件的區(qū)分、產(chǎn)生報表的格式等等有深遠(yuǎn)的影響,因此在ERP項目中通常都要求極為慎重而小心地對待主數(shù)據(jù)的設(shè)置和維護(hù)工作。</p><p> SAP SD模塊中的主數(shù)據(jù)主要包括:</p>&l
50、t;p> 對業(yè)務(wù)伙伴的主數(shù)據(jù)設(shè)置,通常業(yè)務(wù)伙伴包括:售達(dá)方、送達(dá)方、出具發(fā)票方和付款方等類型</p><p> 對產(chǎn)品或服務(wù)價格主數(shù)據(jù)的設(shè)置,包括凈價格、折扣和附加費、運(yùn)費以及稅等</p><p> 對銷售物料主數(shù)據(jù)的設(shè)置,通過對銷售的產(chǎn)品或服務(wù)、銷售品的倉庫等方面的數(shù)據(jù)全面管理銷售物料</p><p> 銷售信息系統(tǒng)(SIS)</p>
51、<p> SAP SD模塊中的銷售信息系統(tǒng)是對銷售數(shù)據(jù)進(jìn)行分析、產(chǎn)生報表的工具,屬于LIS(SAP后勤模塊信息系統(tǒng))的一部分,其功能包括:標(biāo)準(zhǔn)分析、可變分析、計劃分析等。</p><p> 銷售信息系統(tǒng)允許收集、合并和使用銷售與分銷活動中任何類型的數(shù)據(jù),從客戶、產(chǎn)品/服務(wù)、分銷渠道,針對訂貨量、退貨量、收款等進(jìn)行性能評估。借助研究實時數(shù)據(jù)并將它與計劃值比較,使現(xiàn)場銷售活動更趨于及早決斷,隨后采取行動
52、解決問題或充分利用開發(fā)機(jī)遇。用戶可以迅速從SD大量數(shù)據(jù)中篩選出最重要的信息,并且準(zhǔn)確地加工出各崗位所需要的信息。</p><p> SAP的SD模塊靈活和完備的功能,贏得了業(yè)界的一致好評,曾有專業(yè)機(jī)構(gòu)敘述這一SAP的SD模塊“是世界級的,甚至可以支持最富挑戰(zhàn)性的行業(yè)”。</p><p><b> 業(yè)務(wù)需求</b></p><p><b
53、> 業(yè)務(wù)需求流程</b></p><p> 每一個模塊都不可能是獨立于任何其它模塊,因為公司是個整體。所以SD 的模塊也是和其它ERP業(yè)務(wù)模塊有很大聯(lián)系的,同樣每個程序?qū)懗鰜硪彩菫槠渌绦蚍?wù)或者從其它程序得到需要處理的數(shù)據(jù)。下圖就是從業(yè)務(wù)上這本程序的需求流程:</p><p> 圖3.2 整體業(yè)務(wù)需求流程</p><p><b>
54、 客戶需求</b></p><p> 在現(xiàn)代的商業(yè)多元化時代,每個企業(yè)都可能存在多樣化的業(yè)務(wù),在這些業(yè)務(wù)中,大部分的業(yè)務(wù)是普遍的、標(biāo)準(zhǔn)的,在SAP提供功能中能完全將這些業(yè)務(wù)的流程展現(xiàn)出來,并提供強(qiáng)大的功能來幫助企業(yè)快速、簡便、安全地完成這些業(yè)務(wù)。但許多企業(yè)也有著一些特殊的業(yè)務(wù),這些業(yè)務(wù)不能用SAP的標(biāo)準(zhǔn)功能來實現(xiàn),所以需要在SAP中對企業(yè)的特殊業(yè)務(wù)進(jìn)行程序開發(fā),以滿足企業(yè)在業(yè)務(wù)上的需要。所以SAP
55、的二次開發(fā)也顯得如此重要。</p><p> 因為項目是整體中連接的部分而且同時客戶提出了一些特殊需求:在數(shù)據(jù)確認(rèn)可以一用ALV預(yù)覽數(shù)據(jù),如果需要訂貨單的確認(rèn)則要講確認(rèn)的訂單信息寫入文件中。</p><p> 所以這里根據(jù)客戶的需求概括出一張需求表:</p><p> 表3.1 客戶需求信息收集</p><p><b>
56、總體設(shè)計</b></p><p> 系統(tǒng)采用模塊化的設(shè)計思想,各屏幕的變量、結(jié)構(gòu)和子程序都放入對應(yīng)模塊,這樣不僅能體現(xiàn)良好的體系結(jié)構(gòu),更便于維護(hù)。系統(tǒng)的設(shè)計包括邏輯結(jié)構(gòu)設(shè)計和模塊功能設(shè)計等等。運(yùn)用軟件工程和面向?qū)ο笏枷雽υ撓到y(tǒng)進(jìn)行了建模分析,結(jié)合Oracle數(shù)據(jù)管理系統(tǒng)、ABAP/4的screen table、ALV等技術(shù),配合數(shù)據(jù)采集器實現(xiàn)數(shù)據(jù)采集、實時顯示和存儲等功能。</p>&
57、lt;p> 本系統(tǒng)數(shù)據(jù)庫涉及到許多系統(tǒng)表和自建表,所以在開發(fā)過程中設(shè)計了較多的臨時數(shù)據(jù)區(qū),這樣使系統(tǒng)運(yùn)行效率大大加強(qiáng),但增加了資源占用,對硬件要求提高。 </p><p><b> 設(shè)計原則</b></p><p> 充分考慮計算機(jī)的科學(xué)性、先進(jìn)性、實用性、可靠性、安全性和經(jīng)濟(jì)性,選用先進(jìn)的、技術(shù)上成熟的設(shè)備,建立一個真正發(fā)揮作用的網(wǎng)絡(luò)系統(tǒng)。具有良
58、好的開放性、擴(kuò)展性、升級能力在設(shè)計的整個過程中,還應(yīng)該注意整體優(yōu)化的原則,從系統(tǒng)的整體出發(fā),長遠(yuǎn)的目標(biāo)出發(fā),進(jìn)行系統(tǒng)的開發(fā)工作;注意各個子系統(tǒng)與功能之間整體上的相互聯(lián)系;還需要注意用戶需求至上的原則,注重用戶的需求描述。實用性原則,系統(tǒng)的設(shè)計與實施以解決用戶的實際需求;另外,注意創(chuàng)新性,工程化、標(biāo)準(zhǔn)化。</p><p><b> 組件設(shè)計</b></p><p>
59、 從表中按客戶所需要的條件提取數(shù)據(jù),運(yùn)用流控制 、BAPI、BDC、簇數(shù)據(jù)庫等數(shù)據(jù)操作后,以本地服務(wù)器下載、ALV等形式輸出文件數(shù)據(jù)。其中客戶有一個特殊需求,ALV打印的單據(jù)可以按照事先定義好的格式顯示輸出。用戶也可以不用立刻打印輸出結(jié)果,而是以某種格式保存到本地,傳送給其他用戶。</p><p> 程序數(shù)據(jù)表中數(shù)據(jù)流向</p><p> 程序涉及到三個數(shù)據(jù)表的數(shù)據(jù)抽出,分別是從表ZC
60、MTO1O、表ZCMT050、表ZSDT550中按客戶所需要的條件提取數(shù)據(jù):</p><p><b> 圖4.1數(shù)據(jù)流向圖</b></p><p><b> 數(shù)據(jù)庫表設(shè)計</b></p><p> 瀏覽數(shù)據(jù)表數(shù)據(jù)的事務(wù)有四個SE16、SE17、SM30和SM31??梢杂肧E11進(jìn)入的本程序需要的數(shù)據(jù)庫訂單表。<
61、/p><p> SAP R/3把邏輯上相關(guān)聯(lián)的部分連接在一起,重復(fù)工作和多余數(shù)據(jù)被完全取消,規(guī)程被優(yōu)化,系統(tǒng)數(shù)據(jù)表7萬余張。由于系統(tǒng)表多,且每張表的字段少者50個,多達(dá)200個以上,所以本文在介紹數(shù)據(jù)庫時只涉及了系統(tǒng)表中使用到字段和自建表的部分字段,沒有進(jìn)行ER圖的繪制。</p><p> 程序所處理的訂單報表處理模塊共涉及到3張主要的表格,它們的表大體結(jié)構(gòu)如下:</p>&
62、lt;p> 表4.1 ZCMT050概括表</p><p> 這里的取得値在不同的程序中針對key1、key2、key3可以得到不同的相對應(yīng)檢索數(shù)據(jù)。</p><p> 表4.2 ZCMT010概括表</p><p> 這里的取得値在不同的程序中針對key1、key2、key3可以得到不同的相對應(yīng)檢索定數(shù)。</p><p>
63、表4.3 ZSDT550概括表</p><p> 這里的ZSDS510實際上也是一個表,應(yīng)為ABAP中可以用一個表包含另一個表的結(jié)構(gòu)以減少表的冗余,以保證表的重用。所以這里的ZSDS510不能算一個獨立的表下面是這個表的大體字段。</p><p> 表4.4 ZSDS510概括表</p><p> 其中以上所有的表結(jié)構(gòu)中都只給出了部分程序中需要使用的字段,其
64、余不使用的字段故在此不給出,用省略號表示。</p><p><b> 用戶權(quán)限</b></p><p> 該程序為了通常日中job每30分鐘起動、所以并沒有面向一般用戶的權(quán)限設(shè)置,系統(tǒng)錯誤時再實行時候也不能一般用戶大敞大開,只有作為用系統(tǒng)管理者權(quán)限才能起動。</p><p><b> 功能概要</b></p&g
65、t;<p> 從各個對象表中提取數(shù)據(jù),編集需要輸出的文件。</p><p> 對輸出的特定數(shù)據(jù)字段進(jìn)行修改,并以簇方式存儲數(shù)據(jù)對象。</p><p> 根據(jù)特定的要求,設(shè)定不同的變式,再使用變式輸出數(shù)據(jù)。</p><p> 對輸出的數(shù)據(jù),根據(jù)工廠不同合并處理數(shù)據(jù)字段。</p><p> 圖4.2 功能概要圖</p
66、><p><b> 詳細(xì)設(shè)計</b></p><p> 詳細(xì)設(shè)計階段的根本目標(biāo)是確定應(yīng)該怎樣具體的實現(xiàn)所要求的系統(tǒng),也就是說,經(jīng)過這個階段的設(shè)計工作,應(yīng)該得出對目標(biāo)系統(tǒng)的精確描述,從而在編碼階段可以把這個描述直接翻譯成用某種程序設(shè)計語言書寫的程序。</p><p> 在詳細(xì)設(shè)計過程中的技術(shù)要點</p><p><
67、b> 模塊化</b></p><p> 如果要在多個程序中使用相同的語句序列,則可一次性將其代碼編寫到包含程序 中。不能與包含程序進(jìn)行顯式數(shù)據(jù)傳遞,因為包含程序的目的是模塊化源代碼。如果想與模塊進(jìn)行數(shù)據(jù)傳遞,使用子程序或功能模塊。</p><p><b> 功能模塊:</b></p><p> 能模塊是存儲在中央庫內(nèi)的
68、特殊外部子程序。R/3系統(tǒng)提供大量預(yù)定義的功能模塊,可以從ABAP/4程序中進(jìn)行調(diào)用,而且可以創(chuàng)建自己的功能模塊。</p><p> 功能模塊和一般ABAP/4子程序的顯著差異在于一個明確定義的、用于與功能模塊進(jìn)行數(shù)據(jù)傳遞的接口。對于功能模塊,不能將數(shù)據(jù)聲明為公共部分。對于ABAP/4 詞典表格,調(diào)用程序和被調(diào)用的功能模塊都有單獨的工作域。</p><p> 接口有助于輸入和輸參數(shù)的傳
69、遞并將其標(biāo)準(zhǔn)化。例如,可以給功能 模塊的輸入值分配缺省值??梢詻Q定通過值還是參考值進(jìn)行數(shù)據(jù)傳遞 (關(guān)于進(jìn)行 數(shù)據(jù)傳遞的 詳細(xì)信息,參見通過參數(shù)進(jìn)行數(shù)據(jù)傳遞)。接口也支持例外處理。借助例外,可以處理可能發(fā)生的錯誤。</p><p> 在功能庫中,可以將多個功能模塊組合成功能組。因為可以定義功能組中所有功能模塊都能訪問的全局?jǐn)?shù)據(jù),因此,在一個功能組中包含操作相同數(shù)據(jù)(如內(nèi)表)的功能模塊比較合理 。</p>
70、;<p><b> 源代碼模塊:</b></p><p> 如果模塊化源代碼,程序?qū)⒏拙S護(hù)。例如,如果希望避免在程序中多次重復(fù)相同的語句,就應(yīng)使用模塊化技術(shù)。但是,不應(yīng)采用這些方法模塊化任務(wù)和函數(shù)。要模塊化任務(wù)和函數(shù),應(yīng)使用子程序和功能模塊。</p><p> 圖5.1 模塊化原則</p><p><b>
71、變式</b></p><p> ABAP/4在選擇屏幕上提供特定數(shù)據(jù)庫和特定報表選擇的輸入字段。要選擇某種數(shù)據(jù)集,必須鍵入相應(yīng)的值。如果想在固定間隔時間運(yùn)行具有相同選擇的同一報表程序,則不會每次都去鍵入相同的值。因此,ABAP/4可以在一個選擇設(shè)置中組合全部選擇所需的值。可以對每個報表程序創(chuàng)建任意多個不同的選擇設(shè)置,而它們?nèi)灾环峙浣o值得懷疑的報表程序。這種選擇設(shè)置就是變式。</p>&
72、lt;p><b> 開發(fā)類命名 </b></p><p> 臨時開發(fā)類:測試和練習(xí)用程序不能傳輸,用 YTMP類。</p><p> 正常開發(fā)類:Z_xxxx (m模塊縮寫,xxxx描述)。</p><p><b> 變量命名</b></p><p> 表 5.1 變量命名規(guī)則<
73、;/p><p><b> 內(nèi)表/工作區(qū)</b></p><p> 在 ABAP/4 中,主要使用表格。表格是R/3系統(tǒng)中的關(guān)鍵數(shù)據(jù)結(jié)構(gòu)。長期使用的數(shù)據(jù)存儲在關(guān)系數(shù)據(jù)庫表格中。除了數(shù)據(jù)庫表格,還可 以創(chuàng)建僅在程序運(yùn)行時間內(nèi)存在的內(nèi)表。ABAP/4 提供了針對內(nèi)表的不同操作。例如,可以搜索、附加、插入或刪除行。</p><p> 內(nèi)表中的行數(shù)并不
74、固定。根據(jù)需求 ,系統(tǒng)可實時增加內(nèi)表的大小。例如,如果想將某個數(shù)據(jù)庫表格讀入內(nèi)表,不必事先知道數(shù)據(jù)庫表格的大小。該特征項使得內(nèi)表使用起來十分方便,同時還支持動態(tài)編程。</p><p> 工作區(qū)域?qū)?nèi)表的行必須是可轉(zhuǎn)換的。從內(nèi)表中讀取數(shù)據(jù)時,已定址的表格行內(nèi)容覆蓋工作區(qū)域的內(nèi)容。然后可以在程序中引用工作區(qū)域的內(nèi)容。將數(shù)據(jù)寫入內(nèi)表時,必須首先在工作區(qū)域(從中系統(tǒng) 可以將數(shù)據(jù) 傳輸給內(nèi)表 )中輸入數(shù)據(jù)。</p&
75、gt;<p> 圖5.2 通過工作區(qū)操作內(nèi)表</p><p><b> 流程圖</b></p><p> 在企業(yè)中,流程圖主要用來說明某一過程。這種過程既可以是生產(chǎn)線上的工藝流程,也可以是完成一項任務(wù)必需的管理過程。 </p><p> 一張流程圖能夠成為解釋某個訂單的產(chǎn)生到銷毀,甚至組織決策制定程序的方式之一。這些過程
76、的各個階段均用圖形塊表示,不同圖形塊之間以箭頭相連,代表它們在系統(tǒng)內(nèi)的流動方向。下一步何去何從,要取決于上一步的結(jié)果,典型做法是用“Y(是)”或“N(否)”的邏輯分支加以判斷。 </p><p> 圖5.3 系統(tǒng)流程圖</p><p><b> 具體模塊開發(fā)</b></p><p><b> 初期處理</b><
77、/p><p> 圖 5.4 初期處理流程圖</p><p> 圖5.4 流程中從選擇畫面輸入數(shù)據(jù)后,對輸入的數(shù)據(jù)進(jìn)行檢查,例如:輸入條件不為空的字段留空,數(shù)據(jù)類型輸入不正確以及數(shù)據(jù)不存在或數(shù)據(jù)輸入錯誤則返回錯誤信息,并保持畫面不跳轉(zhuǎn);當(dāng)輸入正確的信息后,程序依次執(zhí)行下步的F4幫助和ALV布局獲取操作,這兩個操作都要進(jìn)行結(jié)果確認(rèn),如果失敗則保持畫面不跳轉(zhuǎn)并返回個警告信息,成功則執(zhí)行主處理。&
78、lt;/p><p> (1)選擇畫面的設(shè)定</p><p> 表 5.2 選擇畫面設(shè)定</p><p> 表5.1中物理文件名和服務(wù)器上的邏輯路徑本來是自己寫的但考慮到許多程序都要用到這兩個輸入框并且需要自己寫幫助按鈕,所以在后期共通組將這兩個選擇框封裝到了獨立的一個程序中,其它程序只需要用INCLUDE調(diào)用即可。但是因為在前面的時間已經(jīng)將圖做好所以幫助按鈕在后面
79、也會介紹。</p><p> ABAP語法里要使用戶能在選擇屏幕中輸入數(shù)據(jù)則必須使用命令PARAMETERS 及RADIOBUTTON定義上述字段。在這里選擇屏幕有必輸和初始值的要求,所以可以用PARAMETERS語句定義變量以在選擇屏幕上作為輸入字段實現(xiàn)必輸這個需求。對于RADIOBUTTON的初始值‘X’的定義實際上就是在畫面的開始時要有個RADIOBUTTON為默認(rèn)選中所以只需要DEFAULT參數(shù)即可。&
80、lt;/p><p> 使用PARAMETERS定義屏幕字段的基本格式為:</p><p> 語法: PARAMETERS: <變量名> TYPE <類型>。</p><p> 程序?qū)崿F(xiàn):選擇畫面部分</p><p> 處理時間定義:PARAMETERS: P_DATE TYPE SY-DATUM OBLI
81、GATORY.</p><p> (1)單選按鈕定義:</p><p> PARAMETERS: P_RA1 RADIOBUTTON GROUP P_RA DEFAULT 'X',</p><p> P_RA2 RADIOBUTTON GROUP P_RA,</p><p> P_RA3 RADIOBUTTON GRO
82、UP P_RA,</p><p> P_RA4 RADIOBUTTON GROUP P_RA,</p><p> P_RA5 RADIOBUTTON GROUP P_RA。</p><p> P_R_FI RADIOBUTTON GROUP P DEFAULT 'X' ,</p><p> P_R_ALV RADIO
83、BUTTON GROUP P .</p><p> 物理文件名和邏輯路徑定義:INCLUDE ZVVX8021. </p><p><b> (2)F4幫助</b></p><p> 程序中的F4幫助用于實現(xiàn)當(dāng)邏輯路徑輸入框時,會在邏輯路徑輸入框后出現(xiàn)一個按鈕,單擊此按鈕會有
84、一個窗口出現(xiàn),該窗口就是服務(wù)器上所以的邏輯路徑,它呈一個樹型的結(jié)構(gòu)存儲著邏輯路徑信息,可以直接根據(jù)名字來選擇哪個邏輯路徑,然后在邏輯路徑那個選擇框中出現(xiàn)的就是邏輯路徑,這就是F4幫助的大體功能。</p><p> 具體實現(xiàn)此功能需要在AT SELECTION-SCREEN ON VALUE-REQUEST事件中執(zhí)行。在此事件下寫一個perform。它里面call了 function 'RH_TYPE_S
85、TRUC_HELP',這個函數(shù)的功能主要是根據(jù)需求把這些組織都查出來,然后把它賦給需要進(jìn)行F4幫助的組織選擇框,最后顯示出來是一個呈樹型的組織結(jié)構(gòu)??焖僬{(diào)用這個函數(shù)的方法就是點一下ABAP編輯器的應(yīng)用工具欄上的“模式”按鈕,在函數(shù)名處填寫RH_TYPE_STRUC_HELP函數(shù)就可以。這樣系統(tǒng)就自動將該函數(shù)的結(jié)構(gòu)加載到程序代碼中,開發(fā)人員僅需填充函數(shù)參數(shù)就行。如果是數(shù)據(jù)庫中的數(shù)據(jù)則需要將數(shù)據(jù)抽出放入內(nèi)表中傳入即可。 </p
86、><p> (3)對選擇屏幕格式初級的驗證</p><p> 這里驗證選擇屏幕的值,主要是對選擇屏幕進(jìn)行輸入操作后,點擊回車進(jìn)行驗證,有一些不是代碼反映出來的具體對這些錯誤進(jìn)行什么處理,但他會有錯誤的輸出提示在屏幕的左下方,并結(jié)束程序等待用戶改正后繼續(xù)進(jìn)行驗證直到輸入正確為止驗證值的工作才結(jié)束。在這一塊主要是對輸入的期間的一個驗證,在用戶輸入期間后,會對他輸入的前后的日期格式或者不是預(yù)定的
87、字符類型進(jìn)行檢查,這些大部分是系統(tǒng)自動檢查的,也可以人為自己編寫,按程序需求為主。</p><p><b> (4)數(shù)據(jù)初始化</b></p><p> 在畫面輸出后主程序執(zhí)行前需要對程序中用到的數(shù)據(jù)進(jìn)行初始的獲得或者初始化。</p><p><b> 主處理 </b></p><p>
88、這里的主處理是對針對畫面屏幕按下執(zhí)行按鈕的統(tǒng)稱。當(dāng)按下執(zhí)行后進(jìn)行的處理流程:</p><p> 圖5.5主處理流程圖</p><p><b> (1)文件檢查</b></p><p> 因為程序涉及到文件的輸出所以這里需要在文件的路徑下對文件的存在進(jìn)行檢查,因為畫面是輸入的邏輯路徑,所以要先找到服務(wù)器上邏輯路徑對應(yīng)的物理路徑在到其目錄下查
89、找文件是否存在。</p><p> 在 ABAP/4 語句中為使用文件指定的文件名是物理文件名 。這意味著它們恰好滿足運(yùn)行有SAP系統(tǒng)的操作系統(tǒng)的要求 。按特定文件名和路徑從 ABAP/4 程序中創(chuàng)建文件后,在 操作系統(tǒng)級登錄后,可發(fā)現(xiàn)此文件恰好位于該位置。</p><p> 在各操作系統(tǒng)之間,因為文件和路徑的命名規(guī)則不同,除非如下使用工具,否則 ABAP/4 程序就不能從一個操作系統(tǒng)
90、移植到另一個操作系統(tǒng)。要使程序可以移植,SAP 系統(tǒng)提供了邏輯文件名和邏輯路徑的概念。邏輯文件和路 徑連接到物理文件和路徑。在特殊表格中建立這種連接??梢愿鶕?jù)需要維護(hù)這些表格。在ABAP/4 程序中,請使用功能FILE_GET_NAME 從邏輯文件名中創(chuàng)建物理文件名。</p><p> 而要將邏輯路徑轉(zhuǎn)換為物理路徑則需要使‘FILE_GET_NAME_USING_PATH’這個函數(shù)。輸入文件的名稱和邏輯路徑,就
91、會輸出在服務(wù)器上的對應(yīng)的物理路徑。</p><p><b> 部分程序?qū)崿F(xiàn):</b></p><p> CALL FUNCTION 'FILE_GET_NAME_USING_PATH' EXPORTING LO
92、GICAL_PATH = P_PATH FILE_NAME
93、 = P_FILE IMPORTING
94、 FILE_NAME_WITH_PATH = W_FILE_NAME 可以用SAP自帶FILE檢查。</p><p> 畫面上輸入的邏輯路徑是ZP_SD_TEST. 文件名是:TEST1.DAT</p&g
95、t;<p> 最終通過debug的到函數(shù)輸出的路徑名:G:\usr\sap\ED1\work\300\SD\TEST1.DAT</p><p><b> 如下圖:</b></p><p> 圖5.6 主畫面測試路徑</p><p> 圖5.7 debug顯示取得的路徑</p><p> 得到的邏
96、輯和用SAP查到的物理路徑名稱完全一致,以后就下載文件,檢查文件會去全部用到這個路徑。</p><p> 圖5.8 SAP中自身的物理路徑</p><p><b> (2)數(shù)據(jù)抽出:</b></p><p> 在R/3系統(tǒng)中,需長期保存的數(shù)據(jù)都存儲在關(guān)系數(shù)據(jù)庫表中?,F(xiàn)在,SQL還沒有完全標(biāo)準(zhǔn)化。要訪問指定的數(shù)據(jù)庫系統(tǒng) ,必須查閱該系統(tǒng)的文
97、檔,以獲取可用的 SQL語句及其正確的語法的列表。要在ABAP/4程序中包含這些SQL語句,將使用自身的SQL。</p><p> 為了避免不同的數(shù)據(jù)庫表之間的不兼容性,并使ABAP/4程序能在應(yīng)用中獨立于數(shù)據(jù)庫系統(tǒng),SAP創(chuàng)建了一套叫作開放式SQL的獨立SQL語句。開放式SQL包含了一套標(biāo)準(zhǔn)的SQL語句以及一些專用于SAP的增強(qiáng)語句。使用開放式SQL,可以訪問對SAP系統(tǒng)有效的任何數(shù)據(jù)庫表,而不用考慮它的創(chuàng)建
98、者。</p><p> 系統(tǒng)字段在開放式SQL操作中起著重要的作用:</p><p> 系統(tǒng)字段SY-SUBRC中的返回代 碼值表示在 每個開放式SQL 操作之后該 操作是否成 功。如果操 作是成功的,SY-SUBRC 的值就等于 0;如果操 作是失敗的,SY-SUBRC 的值就不等于0。</p><p> 系統(tǒng)字段SY-DBCNT 字段中的值表明受該操作影響
99、的行數(shù),或已被處理的行數(shù) 。</p><p> 圖5.9 開放式SQL與自身SQL</p><p> 數(shù)據(jù)庫界面 可將 SAP 的開放式SQL語句翻譯成專用于現(xiàn)正使用的數(shù)據(jù)庫的SQL命令。自身的SQL直接訪問數(shù)據(jù)庫。</p><p> 所以在這此的程序中就用到了開放式SQL基本與我們學(xué)習(xí)的SQL2000 沒有太大差別,分為抽出項目,抽出條件,存放區(qū)域等部分構(gòu)
100、成,主要語句如下:</p><p> SELECT [SINGLE] 字段名</p><p><b> FROM 數(shù)據(jù)表</b></p><p> INTO [CORRESPONDING FIELDS OF TABLE] 字段名或表名</p><p><b> WHERE 條件</b><
101、;/p><p> [ENDSELECT.]</p><p> SELECT語句可以抽出單個數(shù)據(jù),必須加上SINGLE修飾,如果不加就是循環(huán)抽出數(shù)據(jù),結(jié)尾用ENDSELECT結(jié)束,一般在所從事的項目中不使用循環(huán)抽取數(shù)據(jù),而是一并將數(shù)據(jù)抽出并存放到內(nèi)表內(nèi)。例子如下:</p><p> SELECT COL1 COL2</p><p> INT
102、O CORRESPONDING FIELDS OF TABLE IT_ITAB</p><p> WHERE COL1 = COL2.</p><p> 但是怎么看抽沒抽出數(shù)據(jù)呢?則可用SY-SUBRC來進(jìn)行判斷 等于0 表示抽出數(shù)據(jù)。不等于0表示沒有數(shù)據(jù)符合抽出條件,沒有抽出數(shù)據(jù),總體來說在ABAP的程序中有許多地方用到了SY-SUBRC就有點類似C、C++中的return 通過不同
103、的返回值來判斷執(zhí)行的效果。</p><p> 訂購者企業(yè)代碼數(shù)據(jù)是由畫面中輸入的和程序自定義的條件通過OPENSQL抽出的。</p><p><b> 抽出條件:</b></p><p> 表5.3 訂購者企業(yè)代碼數(shù)據(jù)抽出條件</p><p> 因為由業(yè)務(wù)可知道訂購者企業(yè)代碼可以抽出多值為了讓后期的抽出條件用到多
104、值,這里可以用兩種方法:FOR ALL ENTRIES 和 ranges表</p><p> FOR ALL ENTRIES語法是:</p><p> SELECT......FOR ALL ENTRIES IN <itab> WHERE <condition>.....</p><p> 在條件 <condition>中
105、,可按前 面的敘述將內(nèi)部字段或字母指定為比較值。也可以將內(nèi)表 <itab> 的列或字母用作比較值 。在WHERE條件中,這些列將用作占位符。該SELECT 語句的結(jié)果 集是SELECT語句的所有結(jié)果集的聯(lián)合,這些結(jié)果集是用<itab>中的相應(yīng)值在每一行上替換占位符的結(jié)果。</p><p> 但是FOR ALL ENTRIES的主要缺點是執(zhí)行的效率比較低下。</p><
106、p> 選擇表(ranges表)</p><p> 選擇表是一個帶表頭行的內(nèi)表。表的作用和多選框的做用是一樣的,執(zhí)行效果較高而且不用除去重復(fù)的值,最終我選擇了用ranges表。</p><p> 用ranges表的low字段接受抽出來的數(shù)據(jù)。這里比較要注意的就是如果這個表是空表那么where條件則會取全值,所以特別注意在where in 條件前要確認(rèn)ranges表不為空。主要代碼
107、有:</p><p> SELECT ZZKEY1 INTO CORRESPONDING F
108、IELDS OF TABLE IT_CONST FROM ZCMT050 WHERE ZZSSID = CNS_CM_COMP_SD “選擇條件由表5.2得出 AND ZZSYUBETU
109、60;= CNS_W_SYUBETU1 AND ZZVALUEC3 = W_GETVALUE AND ZZSTDATE <= P_DATE
110、160; AND ZZENDATE >= P_DATE. 能抽出數(shù)據(jù)的情況 IF
111、60;SY-SUBRC = 0. SORT IT_CONST BY ZZKEY1. “先進(jìn)行排序 LOOP AT IT_CONST INTO IW_CONST. “在循環(huán)內(nèi)表講讀出的一條條數(shù)據(jù)放入
112、IW_ZZHCKG_CD-SIGN = CNS_W_I. “工作區(qū) IW_ZZHCKG_CD-</p><p><b> ENDIF.</b></p><p> (1)訂貨確認(rèn)主數(shù)據(jù)抽出:</p><p> 畫面的按扭選擇了石化協(xié)(雙日)&l
113、t;/p><p><b> 1)抽出條件:</b></p><p> 表 5.4訂貨確認(rèn)主數(shù)據(jù)抽出條件</p><p><b> 抽出項目:全項目。</b></p><p> 數(shù)據(jù)是后面的文件輸出和ALV輸出的主要要用到的數(shù)據(jù)。</p><p> (2)訂貨確認(rèn)主數(shù)據(jù)抽
114、出(Ⅱ),</p><p> 因為當(dāng)畫面的按扭沒有選擇了石化協(xié)(雙日)</p><p> 表 5.5訂貨確認(rèn)主數(shù)據(jù)抽出條件(Ⅱ)</p><p><b> 抽出項目:全項目。</b></p><p> 主要語句如下: SELECT *
115、; "全項目 INTO CORRESPONDING FIELDS OF
116、TABLE IT_ZSDT550 FROM ZSDT550 WHERE ZZSENDFLG = SPACE &
117、#160; “抽出條件由表5.3 、5.4得出 AND ZZHCKG_CD IN IT_ZZHCKG_CD AND ZZLOEKZ =
118、 SPACE. IF SY-SUBRC <> 0 . FLG_CLOSE =&
119、#160;CNS_W_X. ENDIF.</p><p><b> (3)數(shù)據(jù)抽出檢查</b></p><p> 對于抽取訂購者企業(yè)代碼數(shù)據(jù)如果沒有抽到數(shù)據(jù)那么其面的所以抽表條件都不可用,所以如果這里的SY-SUBRC不等于零那么程序就要異常終了,停止程序的繼續(xù)執(zhí)行。這里基本原理為用messa
120、ge表示:</p><p> IF sy-subrc <> 0.</p><p> MESSAGE '無數(shù)據(jù)' TYPE 'E'. </p><p><b> Endif。</b></p><p><b> 代碼如下:</b></p>
121、<p> PERFORM MSG_LOG_OUTPUT_MESSAGE USING CNS_CM_MSGTY_E
122、60; CNS_CM_MSGID_CM
123、; CNS_730
124、60; CNS_CM_CO
125、MP_SD
126、0; CNS_W_SYUBETU1 &
127、#160; W_GETVALUE &
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- solidworks二次開發(fā)畢業(yè)設(shè)計
- 基于ERP系統(tǒng)的考勤模塊二次開發(fā)設(shè)計與實現(xiàn).pdf
- proe二次開發(fā)畢業(yè)設(shè)計論文
- solid works二次開發(fā)畢業(yè)設(shè)計
- 畢業(yè)設(shè)計-erp軟件的二次開發(fā)
- 基于VB的AutoCAD二次開發(fā)系統(tǒng)設(shè)計與實現(xiàn).pdf
- 畢業(yè)設(shè)計(論文)-基于ug二次開發(fā)的齒輪設(shè)計系統(tǒng)研究
- 畢業(yè)設(shè)計--- autocad應(yīng)用(銑刀頭)及二次開發(fā)
- autocad應(yīng)用(銑刀頭)及二次開發(fā)畢業(yè)設(shè)計
- 基于PLM系統(tǒng)二次開發(fā)的通用接口設(shè)計與實現(xiàn).pdf
- 汽車銷售與管理系統(tǒng)設(shè)計與實現(xiàn)—銷售管理模塊
- 基于SAP客戶關(guān)系管理系統(tǒng)的二次開發(fā).pdf
- 基于proe的齒輪模型庫二次開發(fā)畢業(yè)設(shè)計
- 基于數(shù)據(jù)挖掘的圖形設(shè)計系統(tǒng)二次開發(fā)技術(shù)的開發(fā)與實現(xiàn).pdf
- 畢業(yè)設(shè)計-基于catia二次開發(fā)下的車用彈簧建模設(shè)計
- 商旅卡銷售與景點展示子系統(tǒng)設(shè)計與實現(xiàn)【畢業(yè)論文】
- 基于AUTOCADVBA二次開發(fā)的VALE編碼系統(tǒng)的設(shè)計實現(xiàn).pdf
- 企業(yè)ERP系統(tǒng)實施方案設(shè)計和生產(chǎn)計劃模塊二次開發(fā)的設(shè)計與實現(xiàn).pdf
- 汽車銷售與管理系統(tǒng)設(shè)計與實現(xiàn)—客戶管理模塊
- 基于AutoCAD二次開發(fā)紙箱設(shè)計系統(tǒng).pdf
評論
0/150
提交評論