張雪松(中國石油大學(xué)(華東)圖書館,山東青島266580)
?
基于匯文系統(tǒng)的驗收核對管理軟件設(shè)計與實現(xiàn)
張雪松
(中國石油大學(xué)(華東)圖書館,山東青島266580)
[摘要]圖書驗收核對是圖書館圖書驗收的收尾工作。通過分析驗收核對的實際功能需求,制定驗收核對管理軟件總體設(shè)計方案。軟件以Java為開發(fā)語言,在Netbeans環(huán)境下可視化開發(fā),實現(xiàn)清單管理、驗收核對、驗收配送信息檢索等功能,從而提高驗收核對工作效率和質(zhì)量。
[關(guān)鍵詞]圖書驗收圖書館自動化Java
[分類號]G253.4
圖書驗收核對是指圖書館完成館配商配送圖書驗收時,對驗收批次實際驗收的種數(shù)、冊數(shù)、總碼洋與書商提供的送書清單進行的對比核對過程。圖書驗收核對最終生成圖書驗收批次核對結(jié)果,具體包括驗收的總冊數(shù)、總碼洋、未驗收圖書明細、復(fù)本數(shù)目不符明細以及圖書價格不符明細等具體情況說明,結(jié)果應(yīng)用于對書商到書情況說明以及書款結(jié)算。
圖書驗收核對是一項費時費力的記錄核對工作,原因在于圖書配貨、物流配送、拆包驗收、財產(chǎn)登賬等環(huán)節(jié)對驗收結(jié)果產(chǎn)生影響。大批的圖書有時達到數(shù)千冊,驗收周期可長達幾個星期;書商配貨準(zhǔn)確性、物流配送損失、驗收人員操作錯誤都可能導(dǎo)致驗收結(jié)果異常。匯文系統(tǒng)提供驗收批次訂購復(fù)核和驗收清點功能用于圖書驗收核對。但驗收批次訂購復(fù)核只能用于實際到書與征訂記錄的對比,而驗收清點功能一般用于批量驗收時查找缺失品種。因此,匯文系統(tǒng)沒有提供完整的圖書驗收核對功能。工作人員只能從匯文中導(dǎo)出個別登錄賬清單,憑借人工核對,浪費大量人力和時間。楊昌盛[1]開發(fā)了一種單機驗收對賬軟件輔助軟件,支持驗收核對功能,但沒有聯(lián)機檢索驗收記錄功能,同時不具備清單管理、圖書配送信息檢索等功能。為提高驗收核對效率和質(zhì)量,筆者設(shè)計開發(fā)了基于匯文系統(tǒng)的驗收核對管理軟件,經(jīng)中國石油大學(xué)(華東)圖書館的實際工作應(yīng)用取得了良好的效果。
圖書驗收核對首先需要處理書商配送清單,錄入各批次每種圖書的包號、ISBN、題名、價格、套數(shù)、每套冊數(shù)、總冊數(shù)、總碼洋等數(shù)據(jù)項,然后計算批次總碼洋和批次總冊數(shù);同時軟件從匯文系統(tǒng)中抽取對應(yīng)驗收批次詳單,計算總碼洋和總冊數(shù)。完成以上操作后,將兩者進行對比,判斷總碼洋和總冊數(shù)是否相符以及輸出各種異常驗收明細。對于異常驗收明細,需要進一步人工復(fù)核。軟件開發(fā)使用流程如圖1所示。
圖1 驗收核對軟件使用流程
軟件開發(fā)具體需要滿足如下幾個方面的功能需求:
①支持圖書配送清單管理,支持Excel格式圖書配送清單的導(dǎo)入、導(dǎo)出、刪除,提供數(shù)據(jù)庫管理維護功能。
②支持匯文系統(tǒng)征訂驗收數(shù)據(jù)的檢索和抽取,支持從匯文系統(tǒng)中抽取書商代碼、征訂明細、驗收批次、驗收詳單、MARC書目字段等信息。
③支持批次信息核對功能,對于選定的驗收配送批次和驗收批次進行核算,核對總冊數(shù)和總碼洋。支持核對中異常信息的詳細輸出,如無清單品種驗收、有清單無驗收、復(fù)本數(shù)目不符等。
④提供圖書信息集成檢索功能。針對驗收核對結(jié)果的異常情況,需要人工復(fù)核。軟件應(yīng)支持通過ISBN、題名、征訂記錄號等數(shù)據(jù)項對圖書征訂信息、圖書配送信息以及驗收信息進行集成檢索。
3.1軟件概要設(shè)計
軟件提供圖形化用戶界面,由清單管理、賬目核對、清單檢索、設(shè)置4個子界面組成,分別完成清單管理功能、賬目核對功能、集合檢索功能、數(shù)據(jù)庫連接設(shè)置功能。軟件采用模塊化設(shè)計,模塊內(nèi)部采用面向?qū)ο蟮膶崿F(xiàn)方法。按照軟件實際需求,可以將軟件分為6個功能模塊:Excel讀取/寫入模塊、配送清單管理模塊、ISBN處理模塊、驗收核對模塊、信息集成檢索模塊、數(shù)據(jù)庫管理模塊。模塊功能以及調(diào)用關(guān)系如圖2所示。
圖2 驗收核對管理軟件模塊功能
3.2軟件詳細設(shè)計
①Excel讀取/寫入模塊:圖書配送清單文件以及驗收核對結(jié)果輸出文件一般以Excel97-2003格式存儲,數(shù)據(jù)讀取和寫入以行為單位。為此,Excel讀取/寫入模塊封裝了Excel文件處理庫,提供以Excel列名為關(guān)鍵字的映像數(shù)據(jù)為單位的高級讀寫功能。
②ISBN處理模塊:ISBN存在10位數(shù)字、10位帶連字符、13位數(shù)字、13位帶連字符數(shù)字等多種格式。為了便于驗證ISBN的唯一性以及提供統(tǒng)一ISBN的檢索功能,軟件需要對讀取的ISBN進行轉(zhuǎn)換和校驗。ISBN處理模塊提供各種格式ISBN數(shù)據(jù)轉(zhuǎn)換為10或13位無連字符格式功能。此外,ISBN處理模塊提供ISBN格式校驗功能以及10或13位格式校驗碼計算功能。
③數(shù)據(jù)庫管理模塊:考慮圖書館系統(tǒng)數(shù)據(jù)安全以及清單數(shù)據(jù)庫數(shù)據(jù)量,軟件沒有使用匯文Oracle數(shù)據(jù)庫存儲本地數(shù)據(jù)。本地配送批次以及詳單數(shù)據(jù)使用Access存儲。為方便數(shù)據(jù)檢索,數(shù)據(jù)庫管理模塊分別對匯文數(shù)據(jù)庫以及Access數(shù)據(jù)庫連接進行封裝。
④配送清單管理模塊:配送清單數(shù)據(jù)要求以Excel97-2003格式存儲,必須具有包號、ISBN、題名、套數(shù)、卷數(shù)、冊數(shù)、套價、總碼洋、征訂記錄號9個字段。在導(dǎo)入清單時,用戶首先填寫批號、說明、清單文件地址等信息。軟件自動檢測批號是否重復(fù),Excel文件是否有效,自動生成導(dǎo)入日期,建立批次信息,然后通過Excel讀取模塊逐行讀取轉(zhuǎn)化為以行為單位的散列數(shù)據(jù),該散列數(shù)據(jù)以Excel列名為關(guān)鍵字。在導(dǎo)入本地數(shù)據(jù)庫之前,通過ISBN處理模塊對ISBN校驗和轉(zhuǎn)換,遇到錯誤的ISBN號碼會提示用戶是否修正。所有ISBN號碼一律轉(zhuǎn)換為以978開頭的13位無連字符格式。
⑤驗收核對模塊:用戶打開驗收核對界面選擇館配商,軟件顯示驗收批次列表和配送清單列表。用戶選擇一個或多個驗收批次和與之對應(yīng)的一個或多個清單批次,并選擇核對結(jié)果保存文件,然后點擊核對按鈕開始核對。軟件首先逐批次從匯文系統(tǒng)中抽取驗收數(shù)據(jù)明細,然后針對ISBN重復(fù)的情況分別處理生成核對準(zhǔn)備數(shù)據(jù),計算總冊數(shù)以及總碼洋是否相符。如不相符,模塊自動進行詳細對比;如果結(jié)果相符,軟件提示用戶總冊數(shù)與總碼洋相符,是否進行詳細核對。如果用戶選擇繼續(xù),模塊繼續(xù)詳細對比,否則終止運行。詳細對比將以ISBN為圖書品種判斷依據(jù),將圖書驗收異常情況分為5種:有清單無驗收品種、無清單有驗收品種、驗收冊數(shù)多于清單冊數(shù)、驗收冊數(shù)少于清單冊數(shù)、冊數(shù)相等總碼洋不相符品種。驗收流程如圖3所示。
圖3 驗收核對模塊流程
4.1開發(fā)環(huán)境和系統(tǒng)要求
軟件使用Java語言開發(fā),JDK版本為1.7,編程工具是Netbeans7.3,操作系統(tǒng)為Windows7??梢栽谌魏螒?yīng)用環(huán)境兼容Java虛擬機1.6以上版本的Windows系統(tǒng)中運行,數(shù)據(jù)庫使用Access2007。采用第三方開源Apache POI庫[2]讀寫Ex?cel文件。軟件對于PC硬件配置要求低,符合絕大多數(shù)圖書館驗收人員工作環(huán)境。
4.2匯文征訂驗收數(shù)據(jù)抽取
驗收核對需要獲取圖書驗收批次明細,必須了解相關(guān)數(shù)據(jù)表結(jié)構(gòu)。匯文5.0使用了超過300個表,而且沒有官方的表結(jié)構(gòu)和相關(guān)關(guān)系說明。經(jīng)過筆者查閱相關(guān)資料[3]和實際摸索,相關(guān)的匯文數(shù)據(jù)表包括:PUBLISH_BUSI、ORDER_RECORD、CHECK_ACCT、ORDER_CHECK、INDI_ACCT、MARC。其中PUBLISH_BUSI表用于存儲館配商信息;ORDER_RECORD表用于存儲征訂記錄明細;CHECK_ACCT表用于存儲驗收批次信息;ORDER_CHECK表用于存儲征訂驗收明細;MARC表用于存儲MARC數(shù)據(jù)相關(guān)信息。
4.3圖書品種匹配判斷標(biāo)準(zhǔn)選擇
圖書驗收核對需要判斷驗收清單與配送清單的圖書是否為同一種圖書,可選擇的判斷依據(jù)主要有征訂記錄號和國際標(biāo)準(zhǔn)書號ISBN。征訂記錄號的優(yōu)勢在于唯一性。一種征訂記錄號對應(yīng)一種或一套文獻的征訂。即使同種圖書在同一書商的多次訂購在匯文系統(tǒng)中也可以做到使用不同的征訂記錄號。征訂記錄號的缺點在于征訂記錄號必須貫穿圖書采訪和驗收,才能作為品種判斷的標(biāo)準(zhǔn)。如果驗收征訂記錄號與采訪征訂記錄號不符或書商配送清單無法提供征訂記錄號,那么就無法使用征訂記錄號作為判斷依據(jù)。驗收時有很多圖書因為各種原因需要使用匯文的無訂購驗收功能,如分散著錄的多卷書、無訂購驗收等。一些技術(shù)實力弱的書商往往無法在配送清單中提供征訂記錄號。而ISBN的優(yōu)點在于通用性。普通圖書都具有ISBN號碼,沒有ISBN的其他類型文獻如曲譜、地圖等在訂購驗收中占的規(guī)模很小。書商提供配送清單都含有ISBN號。ISBN的缺點在于多次驗收同一種圖書ISBN號碼是相同的,使用相同的ISBN的多卷書如分散著錄,必然導(dǎo)致驗收批次中ISBN重復(fù)。此外ISBN的格式多樣,既包括有連字符格式,也包括無連字符格式;既有10位格式,也有新的13位格式。
綜上,結(jié)合處理難易程度以及驗收實際情況綜合考慮,軟件使用ISBN號碼作為同一品種判斷依據(jù)。ISBN的多種形式、非ISBN以及無ISBN等情況要求必須先對ISBN進行處理,轉(zhuǎn)為統(tǒng)一格式。關(guān)于ISBN格式校驗轉(zhuǎn)換以及校驗位計算方法已有論述[4-5],筆者不再贅述。
4.4驗收核對方法
驗收核對是對驗收與配送雙向比較不同。在核對之前需要首先獲取驗收明細。具體做法是首先獲取用戶選擇的驗收批次列表,然后根據(jù)列表逐批次從匯文系統(tǒng)中抽取驗收明細。具體語句為:
SELECTORDER_CHECK.ASORD_NO,ORDER_CHECK. CHK_SET_QTY,
ORDER_CHECK.MARC_REC_NO,ORDER_CHECK. CHK_VOL_QTY,
ORDER_CHECK.PRICE,MARC.M_ISBN,MARC.M_TI?TLE
FROM LIBSYS.ORDER_CHECK,LIBSYS.MARC
WHERE CHK_BATCH_NO =“驗收批次號”
AND ORDER_CHECK.MARC_REC_NO = MARC. MARC_REC_NO;
驗收明細中普遍具有多條ISBN號相同的記錄,其中既有單一品種的多次驗收,也有單ISBN號多卷書的多次驗收,同時還有同批同一品種拆分驗收的情況;驗收與配送的同一ISBN號圖書記錄數(shù)目是不對等的,如多卷書在配送清單中多以一條記錄列出,而驗收中可能分散為多條驗收記錄。因此完成所有批次抽取后,對驗收明細和配送明細以處理后的ISBN號為關(guān)鍵字,對冊數(shù)和碼洋兩個字段進行匯總計算。具體語句為:
配送清單處理:
INSERT INTO DELIV_LIST_DEAL(ISBN_DEAL,VOL_Q TY_SUM,TOTLE_PRICE)
SELECTISBN_DEAL,SUM(SUM_VOL)ASVOL_QTY_SUM,SUM(round(TOTLE_PRICE,2))AS SUM_PRICE FROM DELIV_LIST //配送清單明細表WHERE PUBL_CODE =“書商代碼”AND DELIV_BAT CH_NO =…
GROUP BY ISBN_DEAL;
驗收清單處理:
INSERT INTO CHECK_LIST_DEAL(ISBN_DEAL,VOL_ QTY_SUM,TOTLE_PRICE)
SELECT ISBN_DEAL,SUM(CHK_SET_QTY*CHK_VOL_ QTY)AS VOL_QTY_SUM,
SUM(round(TOTLE_PRICE,2))AS SUM_PRICE
FROM CHECK_LIST //抽取的驗收清單明細表
WHERE PUBL_CODE =“書商代碼”AND CHK_BATCH_ NO =…
GROUP BY ISBN_DEAL;
完成以上操作后,可以對上一節(jié)列出的異常情況分別對比檢索,然后輸出檢索結(jié)果。
軟件首次使用時,需設(shè)置匯文數(shù)據(jù)庫連接信息。圖書館要求館配商配送圖書時同時發(fā)送與紙質(zhì)配送清單一致的電子配送清單。收到配送清單后,按數(shù)據(jù)要求格式轉(zhuǎn)換為具有要求數(shù)據(jù)列的Excel文件導(dǎo)入清單。驗收核對時,打開軟件賬目對比功能界面,首先選擇書商,軟件讀取驗收批次以及書上清單批次。用戶選擇一個或多個驗收批次以及與之相對應(yīng)的清單批次,并選擇核對結(jié)果文件保存文件,點擊核對按鈕,軟件開始驗收核對。如果總碼洋與總冊數(shù)相符,軟件會提示是否進行詳細對比;如果不符合,軟件自動進行詳細對比,如圖4所示。所有過程信息在界面下方文本域中輸出,核對結(jié)果保存在目標(biāo)文件中。
圖4 賬目對比功能的使用效果
對比結(jié)束后,用戶打開目標(biāo)文件,對異常情況進行人工復(fù)核。所有異常情況集成在同一文件中,以異常類別分類顯示,如圖5所示。用戶可以通過清單查找界面對征訂、驗收、配送情況人工復(fù)核。
圖5 驗收核對結(jié)果示例
筆者開發(fā)的驗收核對管理軟件經(jīng)過實際驗收核對測試,已經(jīng)正式應(yīng)用于中國石油大學(xué)(華東)圖書館實際驗收工作中。該軟件大大減少了驗收人員的重復(fù)性對比核查工作,避免了人工核查可能造成的失誤,縮短了驗收核對的工作時間,從而提高了工作效率和準(zhǔn)確性。軟件還存在一些可以改進的地方,例如完善對配送清單批次的管理,增加驗收核對標(biāo)記,增加對應(yīng)驗收批次記錄,驗收核對時自動匹配驗收批次等,這些都是軟件未來修改和擴展的方向。
參考文獻:
[1]楊昌盛.圖書驗收工作的技術(shù)性改進嘗試——介紹一種對賬輔助軟件[J].圖書情報研究,2010(3):61-62.
[2] The Apache Software Foundation. Apache POI Javadocs [EB/OL]. [2013-07-13]. http://poi.apache.org/apidocs/in?dex.html.
[3]朱蘭芳.圖書館匯文系統(tǒng)內(nèi)部表解析及應(yīng)用[J].電子商務(wù),2012(9):70-73.
[4]黎邦群.ISBN-10和ISBN-13批量互換算法及程序[J].現(xiàn)代圖書情報技術(shù),2008(2):91-93.
[5]李偉.EAN-13圖書條碼與ISBN-13互換、校驗與圖書查重[J].農(nóng)業(yè)圖書情報學(xué)刊,2011(3):61-67.
[6] Horstmann Cay S,Cornell Gary.最新Java 2核心技術(shù):卷Ⅱ[M].北京:機械工業(yè)出版社,2003:125-130.
張雪松男,1982年生。碩士,館員,采編部副主任。研究方向:信息資源建設(shè)。
·文獻考略·
收稿日期:(2015-07-21;責(zé)編:楊新寬。)