暑期期間完成的進度
FAWEB
CST019 - 這是這次暑期所接到的第一份工作,主要的功能是可供使用者去做Insert、Update資料,而使用者所輸入的資料需要去判斷是否存在於主檔的資料,另一個功能是Upload的功能,除了可供使用者下載Excel的Template外,同樣也需要判斷使用者所上傳的Excel資料是否符合於主檔的資料,只要一筆不符合就需要擋,不能讓使用者上傳。
SMM083 - 這次實作的Faweb程式也是需要做Upload功能,但比上一支多了更多限制,在實作的過程中卡蠻久的,除了像上一支要判斷是否存在主檔外,也需判斷輸入的格式是否正確,像是有些欄位要判斷是否為數字格式,有些欄位需要用大寫比對,以及當某欄位輸入的格式為數字格式時,另一欄位只能填”>、<、=”,而如果是文字形的資料時,則只能填”=”,最後則是要把特定的欄位合併成一個Key,如果該Key值已存在資料庫,舊資料的某一欄位值要改變,已藉此判斷新舊資料,爾後在Query資料時就能排除舊資料。這一支程式覺得難的另一部份是這次需要新建View,而這張View除了要合併不同Table外,更需要直轉橫,這也是第一次遇到這個問題,最後發現除了可以使用PIVOT外,也可以透過Left Join來加以實現。
(Insert、Update畫面)
(Upload畫面)
SYS118
sys118的主要功能同樣類似於Windows的工作排程器,像是定期送報表給指定的客戶/User、定期發送Error Log、又或者是監看特定資料(程式剛上線不穩時)等等,除了可以設定要用Mail或FTP 的方式,也可以設定寄送的頻率等等…。
而這次實作的需求主要是從網路磁碟抓取文字檔資料,再將文字檔資料塞入到 ORACEL DB 裡面。首先,需要先了解FAWEB SYS118 的設定,sys118他會定期去執行批次檔(.Bat),而批次檔就會寫我們需要去執行那些執行檔,主要是因每支報表而異,有的會包含ReportGenerator.exe,代表會呼叫Report Generator程式,接著程式會去DB確認設定的ATTRIBUTE來製作報表,而這次因為要讀檔塞DB,所以就會放FILE TO DB的執行檔。接著就要了解要在DB設定甚麼Attribute跟Value來成功塞入資料。
(Batch檔)
( Oracle Attribute、value參數設定)
(SYS118設定:寄mail or ftp .... 設定多久執行一次Job,每小時、每天、每周等功能)
ETL
這次所學的東西是不同於過往在學校所學的內容,之前上課相較著重於如何去下SQL,像是SELECT、FROM、WHERE等等的語法,跟Table相關的一些內容,而這次所學的東西是同樣重要的Procedure。首先,我們主要會遵循以下步驟來完成程式。
第一步: 版本描述; 主要會呈現的是哪位工程師做了甚麼或修改了甚麼部分,這樣下一位工程師在修改時如果有遇到問題時,也能很清楚的知道說需要找誰討論等等…。
第二步: 變數宣告;其中包含公用變數以及私有變數等部分。
第三步: Cursor宣告;程序中會用到那些資料表的資料都需要在此先宣告。
第四步: 程序開始與結束。
第五步: Main SQL;主要的SQL語法都會在此撰寫。