• 沒有找到結果。

客戶端與伺服端溝通的程式碼

第五章 網路服務客戶端的設計

附錄表 20 客戶端與伺服端溝通的程式碼

} catch (Exception e) { e.printStackTrace();

}

附錄圖 2 UDDI4J 程式流程

附錄表 20 客戶端與伺服端溝通的程式碼

// client 與 server 溝通

// String endpoint = "http://##########:8080/axis/services/MyService";

//設定目標網路服務的 AccessPoint String endpoint = jTextField3.getText();

String number = jTextField1.getText().substring(4);

System.out.println( endpoint);

//產生 Service 物件與 Call 物件 Service service = new Service();

Call call = (Call) service.createCall();

//設定位址與作業名、參數與回傳的資料型態

call.setTargetEndpointAddress( new java.net.URL(endpoint) );

call.setOperationName("getAucData");

call.addParameter( "arg1", XMLType.XSD_STRING, ParameterMode.IN);

call.setReturnType( org.apache.axis.encoding.XMLType.XSD_STRING );

String ret = (String) call.invoke( new Object[] { number} );

String column=ret.substring(0,2); //傳回字串前兩個值為 column 數 String row=ret.substring(2,4); //傳回字串第三及第四個值為 row 數 String rett= ret.substring(4); //剩下字串為抓到的整個資料

// 回傳值由 Table 印出 if(Integer.parseInt(row)>0){

//分割 columnName 及 data

StringTokenizer st = new StringTokenizer(rett,"\\");

int i=0;

StringTokenizer st_columnNames = new StringTokenizer(rettt[0]);

int j=0;

String[] columnNames=new String[Integer.parseInt(column)];

while (st_columnNames.hasMoreTokens()) {

StringTokenizer st_data_row = new StringTokenizer(rettt[1],"\n");

StringTokenizer st_data;

int k=0;

String[] data_row=new String[Integer.parseInt(row)];

Object[][] data=new String[Integer.parseInt(row)][Integer.parseInt(column)];

while (st_data_row.hasMoreTokens()) {

}

//由 table & Scroll 印出

table = new JTable(data, columnNames);

jScrollPane1 = new JScrollPane(table);

jScrollPane1.setBounds(new Rectangle(10,150,500,200));//table 所在位置 jPanel2.add(jScrollPane1);

}

附錄圖 3 客戶端與伺服端溝通的程式碼流程

附錄五 資料轉換服務

資料轉換服務建立時的基本四個步驟為(1)設定資料來源,(2)設定資料目的地,(3)設定轉 換的方式,(4)利用程式修改資料格式及內容、設定執行方式,在本節中描述如何使用上述的 四個基本步驟來建立資料轉換服務模組。

由於每一筆交易資料都得在供應人、承銷人、花卉品名等欄位成功的對應之下才能進行 匯入,所以在資料轉換服務模組建立的考量下分為兩個部分。第一部分為資料轉換服務 1,

先將供應人資料檔、承銷人資料檔、花卉品名資料檔匯入資料庫,分別對於供應人資料表、

承銷人資料表、花卉品名資料表進行新增、修改、停用等動作。在資料轉換服務 1 完成後,

再執行資料轉換服務 2,將交易資料檔匯入交易資料表中。

本附錄分為三小節,附錄 5.1 節的『資料轉換服務 1』說明如何將供應人資料檔、承銷人 資料檔、花卉品名資料檔等原始資料匯入,進行新增、修改、停用等動作;附錄 5.2 節的『資 料轉換服務 2』則說明匯入交易資料檔的過程,包括欄位對應失敗之後資料移至例外資料庫 的動作;附錄 5.3 節將資料轉換服務 1 和資料轉換服務 2 結合在一起,並進行備份的動作,

除此之外更介紹自動化排程,使得整個資料更新過程達到完全自動化。

附錄 5.1 資料轉換服務 1

在資料轉換服務 1 中主要可分為幾個工作:(1)判斷資料是否存在,(2)資料更名及備分,

(3)資料淨化,(4)異動操作判斷,(5)資料庫資料異動,(6)刪除原始檔。藉此將供應人資料檔、

承銷人資料檔、花卉品名資料檔匯入資料庫中,供應人、承銷人及花卉資料的資料轉換服務 流程如附錄圖 4。

a.供應人資料轉換服務流程

b.承銷人資料轉換服務流程

c.花卉資料的資料轉換服務流程

附錄圖 4 供應人、承銷人及花卉資料的資料轉換服務流程

由於供應人資料較複雜且存在緩慢改變維度(Slowly Change Dimension)的問題,所以在供 應人資料表中採用一個額外的識別碼,也就是 SUP_NUM 這個欄位。此外對於供應人資料的 轉換也更加嚴謹,在進行匯入工作時分成三部份,分別為新增、修改及停用。除此之外三條 流程內容大同小異,故在此以供應人資料轉換服務流程為例介紹整個轉換服務的架構與細 節,其餘兩條將不再贅述。

一開始轉換服務先執行『判斷供應人資料檔(SU.TXT)是否存在』工作,若檔案存在則進 行後續流程的資料更新工作;若否,則供應人資料轉換服務將不會執行後續轉換流程。

在指定的路徑 D:\Kaoshiung\Upload 下,程式會判斷第二十一個字元是否存在一個 S 的字 元,也就是如果在該路徑存在 SU.txt 資料檔,D:\Kaoshiung\Upload\Su.txt,程式便會傳回成功 的命令,反之則傳回失敗的命令。

確定供應人資料檔案存在後,接著呼叫一外部批次執行檔,運用 DOS 的命令將供應人資 料檔更名及備份到其他資料夾,接著將暫存資料表清空,開始進行匯入的工作。經過初步的 匯入至暫存資料表之後,先將部份欄位內容做更正,包括原供應人的 SUP_LASTDATE 欄位 由 000000 將其設為 1900-01-01,及供應人的 TYPE 欄位由空值設為 9,也就是其他。

在資料經過謬誤修正之後,開始正式進行供應人資料資料淨化(Data Cleaning)的工作,如 附錄圖 5。首先會針對供應人資料進行格式比對,包括欄位格式是否符合、資料表供應行政 區欄位中的資料是否存在於供應人行政區資料表的 SUPLOC_LOCATION 欄位之中。如果不 符合格式則將資料匯入 SU_EXCEPTION 資料表中,停止資料轉換的進行,待系統管理者修 正資料後再重新進行資料轉換工作,以確保系統資料的正確性。

附錄圖 5 資料淨化

在進行資料淨化工作後,接著將淨化後的資料與三規正規化資料庫中資料進行比對以決 定相關的異動操作。在此步驟中,異動操作會依資料比對的結果來決定資料異動的方式,包 括新增、修改、停用三項,而新增、修改、停用判斷的程式碼見附錄表 21。

完成異動操作之後,結束供應人資料表、承銷人資料表、花卉品名資料表的更新,將例 外資料表的內容匯出至例外資料庫的例外資料表,並把供應人等三個資料檔刪除,完成資料

轉換服務 1 的整個作業流程。

相關文件