唐山軌道客車有限責(zé)任公司 劉慶輝
公司實施SAP系統(tǒng),在鐵路裝備檢修企業(yè)內(nèi)是第一家,也是成功實施的第一家。該項目的難度在于檢修客車的特有業(yè)務(wù)流程和業(yè)務(wù)需求需要在SAP系統(tǒng)上實現(xiàn)。通過深入調(diào)研分析,其他業(yè)務(wù)流程可以參照SAP系統(tǒng)的成型實施方案,而分解發(fā)單是鐵路裝備檢修行業(yè)特有業(yè)務(wù)流程之一,具有行業(yè)特殊性。如何把分解發(fā)單引入SAP系統(tǒng),并把發(fā)單結(jié)果準(zhǔn)確快捷的轉(zhuǎn)化為SAP系統(tǒng)的MBOM(制造物料清單)和工藝路線,成了該項目實施的難點之一。為了解決該問題,經(jīng)過與業(yè)務(wù)人員進行充分溝通,深入分析發(fā)單流程和內(nèi)容,綜合發(fā)單特性找出其共同點,并參考《25K型車A4修規(guī)程》,編寫開發(fā)了分解發(fā)單程序、MBOM和工藝路線生成程序。這兩個程序在編寫時充分考慮了檢修車輛的特殊性,如檢修車型眾多、車輛結(jié)構(gòu)復(fù)雜、使用配件多樣化,原造廠不同造成同一車型結(jié)構(gòu)不同,且原造廠相同不同生產(chǎn)時期的同一車型結(jié)構(gòu)也不盡相同等因素,遵循減少使用人員的錄入工作量,減小操作難度,提高分解發(fā)單效率的原則開發(fā),成功解決了鐵路裝備檢修行業(yè)使用SAP系統(tǒng)進行發(fā)單的問題,為公司SAP系統(tǒng)的成功實施奠定了基礎(chǔ),具有行業(yè)先進性。在三年多的運行過程中,又對程序功能進行了完善和優(yōu)化,加入分解發(fā)單成本統(tǒng)計功能,優(yōu)化工藝路線檢測功能。目前這兩個程序運行良好,在SAP系統(tǒng)中發(fā)揮著關(guān)鍵作用。
下面我將這兩個程序的編寫開發(fā)過程和遇到的問題及解決方法進行詳細(xì)闡述。這兩個程序是在SAP系統(tǒng)應(yīng)用平臺上通過ABAP語言開發(fā),程序中充分利用了SAP系統(tǒng)函數(shù)和用戶自建表完成了數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)檢測、數(shù)據(jù)存儲、MBOM生成和工藝路線生成等功能,既簡化了程序編寫過程,又保證了程序運行的正確性和效率。程序運行過程簡述如下:程序運行后首先顯示程序選擇界面,業(yè)務(wù)人員錄入發(fā)單車輛信息后執(zhí)行,程序?qū)τ脩魴?quán)限和車輛基礎(chǔ)信息進行檢測,檢測通過后計算已發(fā)單成本,然后讀取相應(yīng)車型的EBOM(設(shè)計物料清單)并展開,分解檢查員根據(jù)現(xiàn)車情況填寫發(fā)單內(nèi)容后確認(rèn)保存,保存過程中程序?qū)Πl(fā)單內(nèi)容進行檢測,若發(fā)現(xiàn)問題則提示。待分解發(fā)單完成后,通過提交功能提交發(fā)單結(jié)果。最后運行MBOM和工藝路線生成程序?qū)Πl(fā)單數(shù)據(jù)進行檢測,并轉(zhuǎn)換成SAP系統(tǒng)標(biāo)準(zhǔn)數(shù)據(jù)后,通過調(diào)用SAP系統(tǒng)函數(shù)生成現(xiàn)車MBOM和工藝路線。
程序運行界面如圖1、圖2。
2.1.1 程序選擇界面,需要輸入包括工廠、車種車型、車號、創(chuàng)建日期、分解檢查員代號、轉(zhuǎn)向架物料及拷貝已發(fā)單車數(shù)據(jù)等條件。其中工廠、車種車型、車號、創(chuàng)建日期、分解檢查員代號為必輸條件,用于確定發(fā)單車號和發(fā)單人員的唯一性,避免同時發(fā)單產(chǎn)生沖突。轉(zhuǎn)向架物料和拷貝已發(fā)單車數(shù)據(jù)是可選條件。該功能使用了PARAMETERS和SELECT-OPTIONS命令實現(xiàn)對變量輸入的控制。
2.1.2 用戶權(quán)限和車輛基礎(chǔ)信息檢測。分解檢查員錄入相關(guān)內(nèi)容后,程序通過讀取自建表Zchh(入廠車號表)檢測錄入的車號是否正確,然后檢測該車是否保存過發(fā)單,如果保存過,則提示模板功能失效,否則根據(jù)相關(guān)參數(shù)調(diào)用模板功能。接著程序檢測分解發(fā)單是否已生成過MBOM和工藝路線,如果生成過則進一步檢測哪些大步驟已經(jīng)生成MBOM和工藝路線,并提示這些已生成過的數(shù)據(jù)已鎖定不允許更改,否則準(zhǔn)備調(diào)用已保存數(shù)據(jù)。工廠權(quán)限檢測通過調(diào)用系統(tǒng)函數(shù)M_MATE_WRK實現(xiàn)。分解檢查員的身份檢測通過讀取自建表Zfenjm(分解檢查員的用戶名與代號對照表)中是否存在SAP系統(tǒng)登錄名對應(yīng)的分解檢查員代碼來實現(xiàn)。
圖1 分解發(fā)單程序選擇界面
圖2 分解發(fā)單主界面
2.1.3 成本計算功能,是在SAP系統(tǒng)上線運行一年后為解決原發(fā)單程序中沒有成本統(tǒng)計功能,不便于發(fā)單人員實時掌握發(fā)單成本而增加的。該功能通過讀取表Zfjhd(分解發(fā)單抬頭表)和Zfjit(分解發(fā)單行項目表)中保存的已發(fā)單結(jié)果,對已發(fā)單物料進行成本統(tǒng)計實現(xiàn)。包括采購件成本、擴散件成本和總成本。該統(tǒng)計功能不同于正常的物料成本統(tǒng)計,難點在于計算成本的過程比較復(fù)雜。為了在保證一料一號的前提下盡可能少的使用物料號,降低發(fā)單工作量,特別啟用了SAP系統(tǒng)的物料分割評估功能,即物料可分為采購、自制、自修和委外修等生產(chǎn)方式,每種方式對應(yīng)的計劃價格不同。成本的計算過程需要根據(jù)物料的不同生產(chǎn)方式計算出相應(yīng)的成本。其中最復(fù)雜的是R類型物料(即截面積固定可變長度的物料,如木骨類物料)的成本計算。對于這種物料通過讀取其參照物料(即木骨對應(yīng)的參照物料為落葉松)的價格和價格單位,乘換算關(guān)系(單位長度該截面積物料的體積),乘可變長度,乘物料數(shù)量,得出該物料對應(yīng)參照物料的總成本數(shù)。該功能實現(xiàn)了發(fā)單成本的實時計算。
圖3 發(fā)單結(jié)果保存顯示界面
圖4 完成錄入提交界面
圖5 分解發(fā)單導(dǎo)出MBOM的選擇界面
圖6 分解發(fā)單導(dǎo)出MBOM的主界面
為了方便操作人員進行分解發(fā)單錄入和形象的展示EBOM的組成結(jié)構(gòu),程序采用樹狀結(jié)構(gòu)方式顯示EBOM的組成。首先讀取對應(yīng)車種車型的EBOM并展開,篩選得到樹狀結(jié)構(gòu)數(shù)據(jù),并添加到樹狀結(jié)構(gòu)表中。然后根據(jù)用戶點擊的樹狀結(jié)構(gòu)展開并顯示相應(yīng)的EBOM數(shù)據(jù),同時把保存過的發(fā)單顯示到已展開的結(jié)果中。為了增加程序的靈活性和提高發(fā)單效率,程序加入了“增加EBOM不包含物料”按鈕,可用于添加其它BOM和單個物料。
2.2.1 樹狀結(jié)構(gòu)數(shù)據(jù)篩選
程序通過調(diào)用系統(tǒng)函數(shù)CS_BOM_EXPL_MAT_V2展開對應(yīng)車種車型的EBOM,然后根據(jù)分解檢查員的代號進行篩選,得到樹狀結(jié)構(gòu)數(shù)據(jù),并把數(shù)據(jù)填加到樹狀顯示內(nèi)表中,同時增加“添加EBOM不包含物料”到樹狀結(jié)構(gòu)中。
2.2.2 發(fā)單數(shù)據(jù)調(diào)用過程
樹狀結(jié)構(gòu)顯示后,根據(jù)用戶點擊的樹狀結(jié)構(gòu)展開相應(yīng)的EBOM數(shù)據(jù),同時調(diào)用已保存的發(fā)單結(jié)果到展開的數(shù)據(jù)中并顯示。該過程需要判斷所有EBOM展開物料是否可更換、是否可外購、是否可自制、是否可擴散修、對應(yīng)的工藝路線數(shù)據(jù)是否存在,并調(diào)用EBOM對應(yīng)工藝路線的工作中心數(shù)據(jù)。如果模板功能生效,將同時調(diào)用模板數(shù)據(jù)填充覆蓋到已展開數(shù)據(jù)中。
2.2.3 添加EBOM不包含物料
該功能通過添加BOM和單個物料到發(fā)單中,達(dá)到減少發(fā)單工作量,提高靈活性的目的。為避免因車輛情況特殊,相應(yīng)的EBOM數(shù)據(jù)維護不全,未包含某些特殊物料,而通過維護EBOM添加缺失物料,又存在工作量大和缺乏靈活性的問題,且這部分物料使用頻率比較低,也沒有必要添加到EBOM中。通過該功能可將這部分物料直接填加到發(fā)單中,提高了發(fā)單效率和發(fā)單靈活性。
用戶編輯完成后,點擊保存數(shù)據(jù),程序?qū)h除未編輯數(shù)據(jù)行,檢測已編輯數(shù)據(jù),檢測內(nèi)容包括物料號、物料單位、工藝路線、是否可擴散修、是否可車上修、是否可整體修、是否可更換、是否可外購及發(fā)單數(shù)量與設(shè)計數(shù)量是否相同等內(nèi)容,并檢測R類型物料的參照物料、換算關(guān)系。所有檢測通過后將顯示本次發(fā)單要保存的數(shù)據(jù),用于分解檢查員進行核對,核對無誤后點擊確認(rèn)進行保存。該功能保證了錄入數(shù)據(jù)的準(zhǔn)確性,盡可能的避免人為錯誤,提高了發(fā)單效率。發(fā)單結(jié)果保存顯示界面如圖3。
發(fā)單完成后,點擊完成錄入按鈕,程序?qū)@示提交明細(xì),明細(xì)內(nèi)容包括提交的大步驟、分解檢查員代號和提交時間。分解檢查員確認(rèn)好后,程序更新提交數(shù)據(jù)表內(nèi)容,同時提示用戶提交成功。提交界面如圖4
分解發(fā)單完成并提交后,就可以通過MBOM和工藝路線生成程序生成現(xiàn)車生產(chǎn)用MBOM和工藝路線了。程序根據(jù)鍵入的條件篩選出要生成MBOM和工藝路線的車輛大步驟信息,然后根據(jù)被選擇的大步驟,讀取相應(yīng)的發(fā)單結(jié)果并轉(zhuǎn)化成系統(tǒng)生成MBOM所需標(biāo)準(zhǔn)數(shù)據(jù),最后讀取工藝路線數(shù)據(jù)并生成現(xiàn)車MBOM和工藝路線。
程序運行界面如圖5、圖6。
2.5.1 車輛大步驟信息獲取
根據(jù)錄入條件讀取車輛和大步驟信息并顯示,然后通過調(diào)用系統(tǒng)函數(shù)ZREUSE_ALV_POPUP_TO_SELECT獲取用戶選擇的大步驟信息。
2.5.2 數(shù)據(jù)處理
數(shù)據(jù)處理是生成MBOM和工藝路線程序中最重要、最關(guān)鍵的一步。該步驟根據(jù)已獲取的大步驟讀取相應(yīng)發(fā)單結(jié)果,對數(shù)據(jù)進行處理,將同一物料的外購、擴散等轉(zhuǎn)化為不同的數(shù)據(jù)行,同時將R類型物料轉(zhuǎn)換成其參照物料,并計算參照物料的數(shù)量。數(shù)據(jù)的標(biāo)準(zhǔn)化通過調(diào)用系統(tǒng)函數(shù)CONVERSION_EXIT_MATN1_INPUT實現(xiàn),工藝路線的工序數(shù)據(jù)通過調(diào)用CP_DB_PLPO_READ函數(shù)讀取對應(yīng)車種車型的工序數(shù)據(jù)獲取,然后把數(shù)據(jù)添加到對應(yīng)的內(nèi)表和結(jié)構(gòu)中。
2.5.3 MBOM和工藝路線生成
所有數(shù)據(jù)準(zhǔn)備完畢后,調(diào)用系統(tǒng)函數(shù)CSAP_MAT_BOM_CREATE和CP_BD_DIRECT_INPUT_PLAN_EXT創(chuàng)建現(xiàn)車MBOM和工藝路線。這兩個函數(shù)運行后,會生成相應(yīng)的返回信息數(shù)據(jù),用于說明MBOM和工藝路線的生成結(jié)果,然后通過屏幕顯示功能將返回信息顯示給用戶,使程序更加人性化。
這兩個程序重點解決了檢修客車的特有業(yè)務(wù)數(shù)據(jù)和業(yè)務(wù)流程在SAP系統(tǒng)上表示和實現(xiàn)問題,把檢修客車生產(chǎn)的數(shù)據(jù)來源引入SAP系統(tǒng),并轉(zhuǎn)化成系統(tǒng)所需MBOM和工藝路線,滿足了客車檢修行業(yè)的特殊需求。在三年多的運行中,根據(jù)需要對程序功能進行了完善和優(yōu)化,加入分解發(fā)單成本統(tǒng)計功能,優(yōu)化了工藝路線檢測功能和生成MBOM的數(shù)據(jù)篩選功能,減少了業(yè)務(wù)人員的工作量,并使其能隨時掌握發(fā)單成本,實現(xiàn)了成本實時受控,提高了工作效率,為檢修客車的生產(chǎn)經(jīng)營提供了有力支持和保障。
[1]中華人民共和國鐵道部.25K型客車A4修規(guī)程[M].中國鐵道出版社.
[2]黃佳.SAP高級應(yīng)用開發(fā)作[M]人民郵電出版社.
[3]唐駿華.工程師突擊:SAP ABAP實用程序開發(fā)攻略[M].機械工業(yè)出版社.
[4]J.A.Hernandez J.r.s.Elchiguerra E.r.Bueno S.A.Servera,譯者:周旋.SAP R/3技術(shù)與實現(xiàn)[M].機械工業(yè)出版社.
[5]陳巖冰,龍策景,彭丹.SAP系統(tǒng)管理[M].清華大學(xué)出版社.
[6]托馬斯.施奈德,譯者:勾侃.SAP性能優(yōu)化指南[M].東方出版社.