郭慶軍,武 娜
(北京汽車研究總院越野車研究院,北京 101300)
一種多結構數據轉換及對比算法
郭慶軍,武 娜
(北京汽車研究總院越野車研究院,北京 101300)
在信息化建設過程中,不同系統間的數據結構、數據表達方式都可能存在差異,在數據傳輸過程中,需要對上游的數據進行轉換。以PDM系統和BOM系統為例,通過研究BOM表的數據結構差異、不同系統間數據轉換機制和數據對比工具等內容,設計了一種多結構的數據轉換及對比算法,并用軟件實現了該算法。該軟件為PDM系統與BOM系統間數據傳輸過程中的數據一致性提供了校核平臺,大大提高了數據校核工作效率。該數據校核機制具有廣泛通用性,適于在研發制造類企業中推廣。
多結構;數據轉換;結構差異;算法;對比工具
在信息化建設過程中,通常存在多個系統協同工作的情況。如在生產企業中,存在ERP系統、設備管理系統、MES系統和底層數據采集系統和辦公系統等多個系統間的數據交互[1];在制造研發企業中,存在數模設計系統(如CAD或CATIA)、PDM系統、BOM系統、ECM系統、工藝系統和OA系統等多個系統間的數據交互。不同系統間的數據結構、數據表達方式都可能存在差異,在進行系統間的數據同步時,需要進行對上游的數據進行轉換。數據接收質量的好壞,嚴重影響不同系統間數據的一致性。數據的正確性、及時性一、完整性是企業信息化建設的根基;沒有這個根基,信息化建設只能流于形式化,并不能起到真正的效果。因此,確保系統間數據傳遞的一致性,是企業信息化建設中重要的一環。但在系統現實應用過程中,由于數據維護不同步、數據維護不完整等原因,極易引起數據沖突。如何獲取數據并確保數據的一致性,成為企為數據管理的一大難題。
1.1變更數據轉換過程
根據變更申請單、會議紀要等文件,確定變更方案后,發起數據變更。變更數據的轉換過程包括屬性變更清單編制、系統數據維護、數據校核和數據生效等過程。具體流程如圖1所示。

圖1 變更數據的轉換過程
對于工程變更數據而言,屬性變更清單分為基本屬性和結構屬性兩部分。基本屬性主要包括零部件編號、零部件名稱、材料、質量、建議貨源、數模版本和圖紙版本等信息;結構屬性主要包括父級件、級別、模塊號、零部件功能位置描述、零部件分類、結構貨源、扭矩和配置條件等信息。這些信息在設計階段經常發生變更,如果通過手工維護,工作量較大難免會有遺漏或編制錯誤[11]。
1.2不同系統間數據交互方法
在流水式的業務操作流程中,每個環節的輸入均是上游的輸出;但上游的輸出的數據結構與下游的輸入要求很難相符。為此,為了滿足數據結構的要求,通常需要通過消息中間件、功能二次開發或手工處理來滿足下游數據的需求。
消息中間件的數據載體通常為XML文件或數據表,通過約定的數據模板來規范數據通訊機制,大大減少了錯誤數據的接收率。如Message Queue等[2]。
目前常見的系統交互方法有API、數據文件、數據庫、Cookie等,不同的交互方法應用場景也不同[3]。
1.3數據結構分析
PDM系統與BOM系統的數據結構及數據值表現形式存在許多不同之處,具體表現如表1所示。

表1 PDM系統與BOM系統的EBOM數據對比
1.4數據對比工具
通過數據預處理后,我們獲取了相同模板下具有關鍵值的數據表信息。現在需要對這兩個數據表進行對比分析。通過百度搜索,我們會發現許多數據對比工具,這些工具基本可以滿足我們對數據對比的需要,但在顯示格式上尚需要完善。
Excellent Compare 0.1.8: Excellent Compare是專業的Microsoft Excel工作表比較同步工具,它提供兩種比較方式——關鍵列比較和逐行比較,可以同時比較兩個工作簿中的多個工作表,并且可以在詳細比較窗口中隨時修改內容。也可以比較值、公式、批注[5]。但該軟件將數據對比結果放在兩個表中顯示,數據差異顯示不夠鮮明,對于數據量較大的BOM數據對比而言,操作起來不夠方便。操作界面如圖2所示。

圖2 Excellent Compare 0.1.8操作界面
Excel比較大師V0.09:Excel比較大師可以用于對比同一或不同Excel工作簿中的兩個工作表或工作區域之間的差異,并產生報告。該軟件支持xls格式的Excel數據表對比[6]。這種對比方式,其輸出結果中對變更信息分別說明。即更改信息、新增信息、刪除信息;差異分析結果比較明確。操作界面如圖3所示。

圖3 Excel比較大師 V0.09操作界面
Excel文件比較工具3.0:Excel文件比較工具是一款用于比較兩個Excel文件的數據的簡單工具,采用列式比較和區域比較,并用極具人性化的設置,讓兩個文件不同的地方清晰的標示出來。該軟件可以自定義要對比的文件及文件區域信息,并可指定輸出結果的顯示方式[7]。操作界面如圖4所示。

圖4 Excel文件比較工具3.0操作界面
以上是幾個比較有代表性的Excel數據對比工具,它們均可基于關鍵值對指定列進行對比,雖然在顯示結果上有所不同,但尚可進行數據差異對比使用。需要說明的是,對于BOM數據結構而言,如果總成件刪除了,其下級件必然會刪除。因此,在對比結果中,不需要顯示刪除的下級件。因此,如果運用現有的軟件,還需要對下級件單獨處理。
數據變更清單,從內容上分為零件屬性變更和BOM屬性變更兩部分;從應用系統角度分為Excel版變更清單、PDM系統變更清單和BOM系統變更清單等。不同系統間的變更清單數據流轉時,需確保數據維護的一致性。
不同系統間的屬性核查,需要按照統一的模板獲取相應的變更信息;同時由于不同系統中其零部件級別、配置條件、上一級零部件的表達方式不同,還需要將數據的表達方式進行統一。
因此,數據對比前,需要通過數據預處理統一數據表示形式,從而避免產生不必要的差異數據。
2.1數據行關鍵值處理
不同數據表間進行數據對比時,需要確定關鍵列(可以是多列)。利用關鍵列,對其他指定數據列信息進行對比。關鍵列中的關鍵值需具有惟一性。以PDM系統和BOM系統的EBOM數據為例,介紹下EBOM關鍵值的提取方式。
為了確定從PDM系統到BOM系統的數據具有可跟蹤性,需要尋找對應的關鍵值。遺憾的是,PDM系統的這個關鍵值并沒有傳輸到BOM系統中,或在BOM系統數據維護過程中,并沒有將二者進行對照;因此需要重新定義BOM行的關鍵值。
EBOM的數據結構顯示采用的深度優先遍歷方式[4]。根據這種結構,可以將當前零部件的所有上級件進行拼接,組合成一個字符串,并在該字符串的后面加上零部件安裝位置代碼和零部件配置變量,這個最終形成的字符串稱為EBOM行的關鍵值。即:
關鍵值=零部件上層零部件+安裝位置代碼+配置差異。其中,根據安裝位置代碼在BOM數據中維護的完整程度確定關鍵值中是否包含這一項;配置差異是指同一零部件在BOM行中出現多次,但對應的車型配置不同,通常是以“S”和“—”拼接的字符串。
2.2數據字段及內容處理
PDM系統與BOM系統的EBOM數據在對比前,需要根據指定模板,按順序提取所需字段信息。根據兩個系統間的數據結構差異分析(見1.2節),需要對有差異的數據進行處理。
主要處理要求如下:
1)簡化配置變量條件,按變量條件解析結果判斷變量條件是否相同。
2)采用BOM系統的配置代碼表解析配置變量,生成矩陣式EBOM 。
3)統一IA代碼規范。
4)統一圖紙號、本色件、顏色件等字段的填寫規范。
5)提取BOM行關鍵值,作為BOM行的標記號。
6)針對關鍵值相同的數據行,進行數據打包。
2.3數據預處理模型設計

圖5 EBOM數據預處理流程圖
按關鍵值合并數據行是指將關鍵值相同的行中的與多結構有關的數值列進行求和、字符串列進行拼接。
打包處理后的字符串,如果去除變量條件后,數據行仍只有一行,則將變量條件去掉,以提高關鍵值的匹配程度。
3.1數據對比模型設計
數據對比模型中更改前、更改后、數據對比清單、結構屬性變更清單和基本屬性變更清單等五種數據,其中結構屬性和基本屬性也可以合并或繼續分解為其他屬性數據。
1)更改后:包括新增數據和更改后數據;只體現結構屬性中當前級及其直接下級信息。
2)更改前:包括刪除數據和更改前數據;只體現結構屬性中當前級及其直接下級信息。
3)數據對比清單:根據零件號、上一級號、數據重復標記等,記錄變更前、變更后中的數據對比結果,并在對比結果中配置結構屬性和零件屬性對應的字段信息。
4)結構屬性更改清單:根據數據對比清單生成的結構屬性變更信息。
5)基本屬性更改清單:根據數據對比清單生成的基本屬性變更信息。
變更清單模型設計示意圖如圖6所示。

圖6 數據對比模型設計
3.2數據校核流程
當不同系統間任一個系統的數據發生變化時,需要將其他受影響的系統數據進行同步。目前都是通過變更流程來確保數據是否可以變更以及生效時間的;但變更流程中涉及到的數據清單大多是通過人工進行維護的。系統間的數據維護是否完整、系統間的數據是否有差異,需要一定的數據校核機制來保障。
為了確保不同系統間的數據一致性,除了通過變更流程進行控制外,還需定期對不同系統間的數據進行校核。即:數據校核分為兩種:一種是對變更流程中的輸入數據與更改后的變更信息進行校核;一種是對不同系統間的整版數據進行對比。前者可以確保更改數據的完整性和正確性、后者可以彌補前者的遺漏信息,從而在更大程度上提高了數據的一致性。二者在數據校核流程上基本上是一致的,具體如下:
1)從上游系統(如PDM系統)中獲取EBOM最新版本或EBOM變更輸出清單。
2)從下游系統(如BOM系統)中獲取EBOM最新版本或EBOM變更維護結果清單。
3)對上下游系統的數據進行數據轉換。
4)數據差異對比,并對差異結果進行記錄。
5)數據差異內容確認與核查。
6)數據差異內容同步。
3.3數據處理軟件設計
通過分析了PDM系統與BOM系統數據結構的差異及不同系統間數據轉換機制,本文設計了PDM系統和BOM系統的數據處理流程。在處理過程中,如果總成件被刪除,其下級件刪除信息不作體現[8]。
為了簡化數據對比操作步驟,我們在確定數據對比模板的基礎上,設定了常用的默認列名(可調整)。并將數據預處理(變量條件格式調整、所需對比列、數據打包等信息)與數據對比進行集成,開發了數據處理及對比軟件,實現了對比操作一鍵完成的目標,界面操作如圖7所示。

圖7 ECN數據輸入前后核查操作界面
工程變更涉及產品研發設計、工藝設計、產品生產管理、零部件采購、銷售、售后服務等整個制造業產品生命周期管理中的協同。工程變更流程需要整合企業的PDM系統、BOM系統、ERP系統等關鍵IT系統,是一種跨系統、跨部門的業務協同流程。因此變更清單在生成維護過程中,盡量減少各系統間數據交互的人工干預,實現數據實時動態的形象化對比[10]。
工程變更數據包括變更依據、變更原因、成本分析、影響范圍分析、數據變更清單等內容。其中數據變更清單分為零件屬性變更和結構屬性變更兩部分。
4.1工程變更清單編制
根據變更清單模型設計,工程變更清單編制的數據基礎是存在變更前后的數據信息,并能指定數據對比的規則,如:多層次結構中存在數據差異時,是否要體現下級件;哪些字段需要對比等信息。通過對PDM系統中零部件變更搭建要求研究[12],開發了基于Team Center V8.1的屬性對比清單插件。該插件按照變更清單模型,生成了零件屬性對比清單和BOM屬性對比清單;有效地解決了專業工程師在PDM系統中多次維護數據的問題,提高了工程變更流程的執行效率和準確率。
4.2BOM系統工程變更清單核查
BOM工程師在BOM系統根據專業工程師輸入的變更清單維護完數據后,需要核查數據維護是否正確。即需要將BOM系統流程中的輸入數據與輸出數據進行核查。因此,開發了數據對比工具,并將BOM系統流程的輸入輸出文件作為模型中的輸入數據,通過生成的數據差異清單,查看是否維護正確。如果差異清單中存在差異數據,則變更前后信息不一致。通過數據對比工具,可有效提高BOM工程師對數據維護的正確性,提高數據校核校率。
4.3PDM與BOM系統數據一致性核查
為了確保PDM系統與BOM系統數據的一致性,需要定期對PDM系統和BOM系統的EBOM結構進行核查,以確保不同系統間數據的一致性。由于PDM系統的EBOM數據結構與BOM系統的EBOM數據結構存在很多不同之處,且相同結構,數據維護規則也不完全一致,因此EBOM數據進行預處理,預處理內容包括:配置變量解析、行關鍵值提取、對比字段提取、數據合并處理等內容[9]。
根據PDM系統與BOM系統的EBOM差異對比清單,按零件屬性和BOM結構屬性進行提取,形成零件屬性差異清單和BOM屬性差異清單;為BOM工程師進行差異分析與數據同步提供基礎,確保了數據傳輸過程中數據的完整性和正確性。
不同系統間的數據傳遞由于數據結構、數據傳輸機制不同,需要進行相應的數據轉換以滿足上下游數據傳輸的需要;同時為確保數據接收的完整性及正確性,還需對接收數據進行數據核查。在以上章節中,通過對數據轉換機制、數據對比工具的研究,以PDM系統和BOM系統為例,通過研究BOM報表的數據結構差異、不同系統間數據轉換機制和數據對比工具等內容,設計了基于關鍵值的數據轉換及對比算法,并用軟件實現了該算法。該軟件既可以處理一般的數據對比,也可以滿足多層次結構對比的需要。該軟件為PDM系統與BOM系統間數據傳輸過程中的數據一致性提供了校核平臺,大大提高了數據校核工作效率。該數據校核機制具有廣泛通用性,適于在研發制造類企業中推廣。
本軟件適用于大型數據對比分析,為采購、財務、信息技術等相關部門提供了數據核查平臺。隨著以后信息化數據管理水平的發展,如果這些處理工作將交由系統后臺來處理,盡量減少人工參與數據維護的程度,數據對比的工作量與對比頻率將會大大減少。
[1] 鋼鐵企業信息系統架構案例.http://doc.mbalib.com/view/08bc9a fbb83e32b9b71f2b3ef129dc58.html[EB/OL].智庫文檔.
[2] 消息中間件概述.mq工作原理.http://blog.itpub.net/117123/ viewspace-834591/[EB/OL].2006.5.
[3] 4種系統間交互方法比較.http://blog.csdn.net/zuocheng_liu/ article/details/9035015[EB/OL].2013.
[4] Thomas H.Cormen, Charles E.Leiserson.算法導論[M].機械工業出版社出版,2013.
[5] Excellent Compare 0.1.8, http://www.onlinedown.net/soft/65057. htm[EB/OL].2009.10.
[6] EXCEL數據對比大師V0.09.http://www.downxia.com/ downinfo/24568.html#softdown[EB/OL].2012.8.
[7] Excel文件比較工具3.0.http://www.gezila.com/ruanjian/ yingyong/78305.html.[EB/OL].2014.8.
[8] 郭慶軍,賈明亮,李原.多車型結構中零部件關系及配置管理研究[J].新型工業化,2015.5.
[9] 郭慶軍,李小麗,賈明亮,等.一種基于變更流程的EBOM數據變更統計機制[J].新型工業化,2015,7(5):51-56.
[10] 重慶斯歐.工程變更管理協同流程(SOA-ECM).http://articles. e-works.net.cn/Articles/PDM/Article81922.htm[EB/OL].e-works數字化企業網,2010.11.
[11] 劉清華,萬立,鐘毅芳.工程變更管理的分析與研究[J].計算機集成制造系統,2000,6(12).
[12] 王忠浩,蔡力鋼,朱海平,高亮.PDM中工程更改管理的設計與實現[J].武漢:華中科技大學學報(自然科學版),2003.6,V31(6).37-40.
A data conversion and comparison method based on key values
GUO Qing-jun, WU Na
TP274
A
1009-0134(2016)07-0009-05
2016-03-30
郭慶軍(1983 -),男,碩士研究生,研究方向為制造業信息化、項目管理、工程數據研發管理和試制物料管理等。