壹、工作內容
一、工作詳述
我目前工作於IT部門-ERP中DC(Data Center)組,ASECL日月光中壢IT部門分為兩大部分,分別為ERP及CIM。
CIM電腦整合製造包括MES製造執行系統與 FA工廠自動化主要是接收來自產線生產的過帳與機台連線資料,提供後端系統分析統計。
ERP為企業資源規劃系統,ASECL在2012年導入SAP五大模組 (MM/PP/SD/FI/CO) 提供Supporting人員更嚴謹也更完善的系統功能。
DC(Data Center) Team主要為接收並且整合來自各系統的資料,並根據員工與客戶需求,將資料彙整到Data Center (HDB database),整理好的資訊再透過FAWEB網頁呈現並主管及內部人員查詢營運及生產資訊。並根據客戶的需求將資料,整理出客戶要的資訊放置ASED3(B2B DataBase),滿足客戶B2B的需求。因此FAWEB可以說是HDB的呈現工具。
壹、工作內容
一、工作詳述
我目前工作於IT部門-ERP中DC(Data Center)組,ASECL日月光中壢IT部門分為兩大部分,分別為ERP及CIM。
CIM電腦整合製造包括MES製造執行系統與 FA工廠自動化主要是接收來自產線生產的過帳與機台連線資料,提供後端系統分析統計。
ERP為企業資源規劃系統,ASECL在2012年導入SAP五大模組 (MM/PP/SD/FI/CO) 提供Supporting人員更嚴謹也更完善的系統功能。
DC(Data Center) Team主要為接收並且整合來自各系統的資料,並根據員工與客戶需求,將資料彙整到Data Center (HDB database),整理好的資訊再透過FAWEB網頁呈現並主管及內部人員查詢營運及生產資訊。並根據客戶的需求將資料,整理出客戶要的資訊放置ASED3(B2B DataBase),滿足客戶B2B的需求。因此FAWEB可以說是HDB的呈現工具。

目前工作內容分成三個部分:Code Review、FAWEB CODING:VB to C#、Project Support:RPA。
(1) Code Review
FAWEB 報表大部分都遵照Coding Standard 的規範撰寫,Code Review是為了協助工程師檢查上個月已上線的 程式是否有符合規範
此作業主要的輔助工具為Audit程式。

做Code Review的時候,會先用Audit程式篩選過一次,再將未通過Audit篩選的程式,每隻打開檔案去檢查是否有未符合規範的地 方並用excel記錄下來統整完後在寄信通知工程師。

檢查完畢後,會透過Audit Chart Excel (如圖三)統整未符合規範件數,主要統計部分有DC TEAM 的ERROR數量,還有每個月總ERROR數占總TOTAL檔案的比率。另外是每個組別每個月各別的ERROR紀錄。
(2) FAWEB CODING:VB to C#
圖四為FAWEB登入畫面

上面有提到FAWEB 上的報表大部分都根據DC team 所提供的 asp.net c# coding standard開發出的aspx檔,讓此網站的報表較方便維護。而在Coding Standard出現前,報表是由工程師自行寫CODE所開發的,許多都是VB寫成的asp檔。FAWEB CODING這個部分是會由工程師交付一些 FAWEB 上原用 VB 寫出的報表網頁,透過SYS133、SYS136根據原報表功能改出符合Coding Standard的網頁。
如今因為容量限制的問題,大多都要將報表放置64位元的Server上使用。FAWEB CODING除了要將報表改版為Coding Standard的模式方便維護外,目的還有要將原asp檔改為aspx檔,讓原在32位元的asp檔報表可以上64位元Server的網頁使用

FAWEB分為正式區(PRD)網站跟測試區(QAS)網站,FAWEB CODING時,我們會先到Production(PRD)抓報表程式到本機,根據原報表功能改出符合Coding Standard的報表,之後放到FAWEBQAS區測試,測試沒問題後,就要放到連PRD DataBase的USER TEST區進行測試,若要放到USER TEST區就要進MESHDB內的table改 UT_STARTDATE和 UT_ENDDATE,就會顯示在FAWEB的USER TEST頁面上,測試後若沒有問題,最後會撰寫UTR(測試報表是否符合原報表功能),再寄給工程師測試,沒問題後才會上線。
(3) Project Support
Project Support是幫忙廠務環保申報流程自動化的部分,要將廠務環保申報流程透過流程機器人將過程自動化,藉此節省許多人力操作的時間。

目前完成的有Sikuli填單上傳程式撰寫、提供USER網頁查詢資料、AutoSend彙整報表三個部分。
Sikuli(如圖五)為一透過圖形辨識進行操作指令的軟體。原本上網申報輸入資料填單上傳的動作是由人工操作,在Sikuli填單上傳程式撰寫這裡,主要是學習Sikuli的基本語法並使用Sikuli程式撰寫填單上傳。由於填單的部分網頁的模樣沒有相差很多,透過Sikuli的圖形辨識無法真正的識別要填的欄位因此無法順利將Excek的資料填入對的位置,因此這部分改為用讀檔的方式抓取資料加上TAB鍵的方式完成

圖五
提供USER網頁查詢資料是透過SYS128用網頁的方式製作欄位的需求並加入SQL完成初步的網頁,提供USER查詢已確認三聯單下載資料,在確認完實際需求後會用SYS133製作出符合Coding Stansard的報表並放置FAWEB上。

還有一個是用SYS118 ReportGenerator 做Autosend 彙整報表,此功能可以在每個月的1日到4日由系統自動寄出Excel檔,提供上個月整月清運數量、最大庫存量、剩下的庫存量,方便USER在申報時可以透過此檔案,在使用自動化機器人時,可以讀檔使用。
二、完成進度
我們有一Excel來紀錄工程師要交付給我們的工作項目,每個項目後方都有狀態欄 Open/Going/UT/UAT/Disable/Close,可以讓主管清楚了解我們的工作進度,也會在開始修改報表前壓上Duedate,透過這樣可以比較有效率完成工作。
目前完成的進度:
(1)CODE REVIEW的部分 從一月到四總共約300隻 Error共21隻 Alert共八隻
(2)FAWEB CODING 已完成的有三隻、正在進行的有一隻
(3)Project Support 完成了Sikuli填單上傳程式撰寫、提供USER網頁查詢資料、AutoSend彙整報表三個部分

三、工作中扮演的角色
在工作中扮演的角色為,協助工程師,完成他們所交付給我們的工作,如:將不符合Coding Standard的VB報表翻成C#,或是Project Support等等。而有時主管也會給我們一些簡單的事項,如:訓練課程的借會議室或Mail提醒學員老師等、每天都要寄的Errorlog Mail。除了擔任協助工程師完成工作的角色之外,也是邊做邊學,透過學習增進自己的基本能力。
貳、學習
一、技術層面
在公司工作時,是透過Visual Studio做為修改報表的工具,透過Visual 將東西改為符合Coding Standard的模樣。在資料庫部分是透過Oracle 的 SQL Developer,原本自己在SQL這個部分本來就很不熟,加上學校會用到的機會其實也不多。但在公司因為改報表會常常用到這個部分,去查詢自己要用到的Table並找自己要用的東西。並且在遇到不會的問題會上網找解決的辦法,或是請教正職。
在這個部分我覺得自己的SQL有比之前更進步,學到蠻多的。而公司的資料庫裡面的資料非常非常的多,因此每次在下SQL的時候,都要先透過說明計畫了解Cost有多少,若Cost過大還執行SQL,會造成資料庫的效能負擔。
二、非技術層面
在非技術層面的部分,我們的主管在我們一開始的訓練課程每個主題結束後,都會重新地做重點式的講解,有耐心的教導我們公司的製作流程跟相關的系統的內容。並在我們提出問題後為我們解答,並且每個禮拜開會一次,了解我們的工作進度,並在我們有困難時指導我們。也從工作中,學習到很多為人處世、與人相處的方式。
參、自我評估及心得感想
在一開始進去的時候,很怕自己什麼都不會,沒有辦法透過自己在學校學的東西解決工作上要用的,但在進去之後,透過訓練課程及講義,還有很多公司給的工作所遇到的問題而上網或學求學長姐所得到的解答,慢慢的在增加自己的能力。但由於正職也有績效問題,若一直問他們問題會造成他們自己的工作有所延遲,因此在問問題也需要有很多的技巧,讓自己的問題不會占用到他們過多的時間,讓問問題時間更節省。一直到現在,經歷三個多月後,比較熟悉了自己的作業,包括SQL的熟悉,跟一開始比起來有大大的進步,但卻還是有很多是還沒學會的,因此在接下來的工作,將需要學習更多的東西,更要靠自己去解決問題。
肆、給系上的建議
對於系上的實習安排,真的覺得這個專業實習項目除了可以讓我們提早了解職場的環境之外,還可以不單單只是在學校內學習知識、理論,可以讓我們真的透過工作,自己去解決問題。或許在學校有組員、有老師可以不斷地幫忙我們,但在公司很多事情都需要靠自己去找答案,即使是問問題,也要有方式的問,而不再是可以容易得取得答案或解決辦法。
給系上的建議是希望在學校的時候,課堂上可以給予多一些實作機會,特別是針對程式的部分,可以對於程式的部分進行加強,讓學生進入職場時可以對於程式部分更快的上手,減輕些負擔。
最後要謝謝系上給予如此機會讓我們可以提早認識職場的環境,而且這個機會可以讓我們在實習的過程中尋找自己未來的方向,在工作的過程中,可以知道自己以後想要做的工作,不論是繼續進入職場,或是選擇進修讀研究所,都可以因此更知道自己想要的是什麼,也可以在這之中學習許多職場所需的技能。
暑期成果
壹、基本內容
一、 學習心得
進入公司的時間,毫無察覺的已經半年了,這段時間,在技術方面,一開始進公司時,是在負責將VB翻成Coding Standard,透過公司的規範,翻寫網頁,在這過程中,更加熟悉C#許多技術的使用,還有一些SQL、資料庫的使用,了解一些公司資料庫內的TABLE功用及連結,在工作過程中,由於公司內的資料庫,內容非常的龐大,不同的報表連結到的TABLE,很多都是不同的,從中去發現許多的TABLE,每次在下SQL的時候,都會很小心,害怕因為自己的不注意,造成系統的負擔,甚至一個疏忽造成嚴重的後果。後面則被分配進行專案的Support,促進公司智慧化的推動,減少人力的耗費,學習Sikuli的語言,透過Sikuli的程式配合Python的使用,對於Python語言更加認識。另外還有對於正職需求,進行網頁的新增功能Enhance,在這過程中,更認識VB的程式,及一些上傳檔案的方法。最後還有學習一些基本的ETL,ETL主要是將資料從來源端經過萃取(extract)、轉置(transform)、載入(load)至目標資料庫的過程,在學習兩堂課後有進行測驗,發現還有很大的進步空間。
在非技術面的方面,因為專案的關係,接觸了一些其他部門的人,與他們進行合作,從合作的過程,了解了一些專案的運行過程,與User的溝通及配合,發現工作真的不單單自己做好就好,有些時候,即使自己的部分完成,但因為需要合作,需要不斷的督促其他人,甚至有些人,要駛進一些的方法去提醒不論是Mail或電話,才可以真的完成所需要的進度。
二、 自我評估
在一開始進去的時候,因為學姊會帶著我們,讓我們有問題都可以問他,人也很好的對於我們的問題都耐心解答,因此一開始導致我們有些依賴。但後來由於他完成交接工作後,時間到了離開公司後,很多東西我們都必須自己解決,會與同學互相討論想解決方法。雖然因此花了很多時間,但隨著遇到的問題多,也漸漸的可以解決一些以前不會的問題,對資料庫的運用跟瞭解也更多了一些。
三、 提案改善或建議
針對上班時間配合的選課問題,一開始開的上班時間為預設的選擇,一二三或三四五,而好不容易獲取進公司的資格,一開始進去什麼都還沒接觸過時,無法根據自己的意願與公司溝通上班的時間,因此很感謝系上為了配合我們的預設上班時間而開課,讓我們可以有配合上班時間的課可以選。但我本身覺得,若已經過了半年,若已經有能力自己與公司的主管溝通,讓公司的主管認為若有本身的需求或意願問題,想要在選擇不同的時間上班,選擇更適合自己的課程方式學習,選擇讓自己的學習更有幫助的課,讓主管認為選擇不同時間上班這件事,是沒有問題的,並且有辦法解決自己的選課。我認為在一開始的時候,建議可以跟公司配合固定上班的天數,但其實可以不要硬性規定整年的上班時間,這樣其實對於學生的學校課程學習方面,更有彈性及助益。 在選課方面的壓力也不會這麼大。最後很謝謝系上用心地給予我們這個去公司實際實習的機會,讓我們可以提早的認識職場的環境及需要。
四、 感想
就如自我評估時所言,一開始在公司的時候因為什麼都不認識而因此依賴學姊的幫助,在他們離開後其實也產生了有點不知所措的現象。之後遇到問題都不敢像問學姊一般的問正職,也知道他們的績效壓力,不好意思打擾他們,只能自己不斷不斷的嘗試,與同學的討論,互相幫忙的解決,產生了許多的進步。但即使如此,也在繼續的工作中發現自己仍然有許多需要進步的部分,也希望透過接下來的時間,增進自己更多的職場工作經驗,能力及更重要的軟實力。
貳、工作內容
一、 目標
1. 將自動化專案的Support完成
2.完成新增網頁功能的Enhance
3.學習ETL
二、 規範
網頁進行資料測試時,若是有新增修改功能的報表,只能在測試環境進行測試,不能動到正式區的資料,IT對於各部門對存取各資料也有做權限控管。
進行C#改Coding Standard專案時,產生的報表現結果要跟改寫的舊報表完全相同,如果需要更改呈現方式或結構,則要與SA溝通協商。
三、 執掌
幫助工程師,減少他們專案內容的壓力,讓他們專案工作內容壓力少一些,在專案截止日前完成專案。進行網頁功能新增後,做完後進行測試並寫UTR,寫更改的部分及測試結果,並將UTR寄給工程師,請工程師幫忙測試有無問題,沒問題後再煩請工程師幫忙上線。作為學習的角色,學習ETL的撰寫,並熟悉ETL。
四、 完成進度
1.水質申報RPA撰寫
2.原物料申報 RPA撰寫
3.網頁功能新增Enhance * 1
五、 工作報告或成果
1.RPA專案
此專案的目的為,由於進行申報的動作每個月都要透過人力的方式進行,既耗費人力資源,耗費時間,更會有因為人工輸入而造成資料輸入錯誤的問題,為了解決這個問題,因此User向我們提出希望我們可以利用Sikuli的程式再加上python的方式,利用智慧自動化,代替人力進行申報。
要先進入申報的網站
進去之後,針對指定代碼填寫使用量
Sikuli 為一種圖形化程式語言,提供了一些基本的功能,不需要一行行程式撰寫,而是用螢幕的截圖方式把截出來的圖形加上程式,完成需要的功能。Sikuli是以Python為基礎,並且搭配Java環境。它支援圖像辨識功能,讓電腦辨識電腦產生的圖線,也可以在裡面寫Python程式,可以讓腳本更靈活、更有彈性。
而根據研究論文(PDF)的描述,使用者只需對Python語言擁有基礎的瞭解,Sikuli可以利用截圖完成大部分的程式設計任務。其最大的特色為,可以自動化你在螢幕上所看到的東西,利用圖形辨識的方式來控制GUI元件。
Sikuli一些簡單的語法:
-
搜尋:
-
find(圖片):在搜尋範圍內找出最佳比對結果
-
findAll(圖片):在搜尋範圍內找出所有比對結果
-
wait(圖片, [time out]):在範圍內等待圖片出現,最多等待 [time out] 秒
-
exists(圖片):檢查範圍內是否存在目標,若否回傳 None,不會跳例外處理(與find() 不同)
-
-
滑鼠動作:
-
click(圖片):滑鼠左鍵單擊
-
doubleClick(圖片):滑鼠左鍵雙擊
-
rightClick(圖片):滑鼠右鍵單擊
-
hover(圖片):拖移滑鼠
-
dragDrop(圖片A, 圖片B ):將 圖片A拖到 圖片B放開(例如:將檔案拖移至垃圾桶)
-
-
鍵盤動作:
-
type(text):於視窗中鍵盤輸入 text
-
pasts(text):透過剪貼簿,將text貼入畫面中
-
學習到的東西
1.
一開始登入的部分,是透過Sikuli自動輸入帳號跟密碼,但由於認證碼的部分每次都不同,因此會透過Sikuli內建的物件,彈出一個視窗讓User輸入認證碼,按下Enter後Sikuli又會自動繼續申報的動作。
但由於想要整體自動化,因此使用Google所提供的Tesseract-OCR資源。
Tesseract為一種光學字元辨識引擎,支援多種作業系統。由Google贊助開發。可將指定的圖片,進行字元的辨識分析。
透過這個軟體,辨識驗證碼並配合Python程式碼,再將辨識出來的透過Sikuli自動輸入,並繼續申報的動作,不再需要人力在那邊等待程式執行到輸入驗證碼的部分,再進行手動輸入,造成時間的浪費。
2.
針對指定的位置,填入指定的數據。要針對格子1的項目填入正確的數據至格子2
原本是透過TAB的方式到達指定序號的使用量格子(格子2),並進行指定數據的TYPE,但如過使用此方式的話,需要將網站的序號、代碼位置製作網頁的類似於MAPPING LIST的東西,讓Sikuli可以知道相對的位置,如果使用這個方式的話,若網頁的順序有所更動,則MAPPING LIST也需要更動。
為了方便使用者可以不用這麼麻煩,順序稍有變動就要去改變Mapping List,因此改用Python thread模組 多線程的方法,調用thread模塊中的start_new_thread()函數來產生新線程。讓Sikuli在執行的過程中,指定創建一個線程,彈出Input的視窗,貼上原料代碼的Keyword。用Input的方式取代Mapping List,增加此程式的彈性。
2.網頁新增功能Enhance
新增PROTOCOL 下拉選單:
FTP:一般正常FTP連線
SFTP:使用SSH 連線方式
新增PORT欄位,並有預設值。
當PROTOCOL為FTP時PORT預設為21,當PROTOCOL為FTP時PORT預設為21,
新增SFTP使用金鑰路徑的欄位並給路徑預設值
而只有在PROTOCOL選擇SFTP時才會出現SFTP使用金鑰路徑的欄位
並會在新增的時候將PORT及PROTOCOL的值吃進DB的指定TABLE內
SFTP使用金鑰路徑的欄位是為了讓使用者透過電腦將檔案從傳送至指定的SERVER電腦裡,透過Server.MapPath(path)返回與Web伺服器上的指定虛擬路徑相對應的物理檔案路徑,其引數path為Web 伺服器的虛擬路徑。
取得目的地指定SERVER路徑後,透過Upload物件的HasFile,判斷是否有選取要上傳的檔案,若使用者有選取檔案則透過Upload物件的PostedFile.SaveAs方法,將來源檔案複製並丟到Server.MapPath(path)的指定路徑Server內。













暑期成果
壹、工作內容
一、工作詳述
在四上的實習中,相較於之前偏向WEB CODING 及RPA自動化的專案工作內容,還有接到偏向使用公司的TOOLING的工作,屬於ReportGenerator的工作。這個專案的需求為,使用這每個月都要在匯率更新的時候去匯率的網站抓取最新的匯率,進行一些文件的比對及更新,一個月須要去抓三次,但由於不想要每個月耗費人力又要去查又要去抓,又有鑑於之前我們部門有幫忙作自動化的前例,因此希望我們可以透過自動化的工具幫他們處理這個問題,節省人力。
經過與主管及正職的討論,原本想說也要用上面提到的Sikuli軟體,處理這個需求,但後來發現,其實公司內部的TOOL – ReportGenerator就可以處理這個需求。
我們透過ReportGenerator,設定每個月三次固定的排程,去網站抓取最新的匯率資訊,搭配做好的Template,製作出一個固定格式的Excel,生成需要的Excel後,再透過FILE2DB的工具,設定參數,將資料從Excel抓取定存入USER指定的Data Base,完成這些動作之後再寄信通知USER已抓取好新的資料了可以去進行抓取與使用了,就可以節省USER需要每次在最新匯率出來的時候就要去網路上在查詢在抓一次的動作及耗費的時間了。
二、實習期間完成之進度
(一)三旬匯率RPA
(二)Excel+ Support
(三)SYS001 Enhance
(四)SYS004 Enhance
貳、自我評估與心得感想
在工作實習之後,非技術面的部份學習到,在主管的帶領之下發現其實當工程師,不是單單只有在寫程式,還要透過與USER溝通,做出符合USER習慣或想要的東西,需要更人性化,更不是死板的CODING的東西。有時候從工程師角度出發去些一個系統或網頁,工程師可能覺得已經很完善了,各個要用到的技術都有寫到了,但其實到USER手上缺乏的是使用起來的順手及方便性。技術面的部份學習到更多的TOOLING的使用,更不同的工作內容,透過TOOLING去完成使用者的需求,也發現了很多很好用的TOOLING,更善用公司的東西,讓工作效率變得更快。
參、對系上的建議
對於系上的實習安排,真的覺得這個專業實習項目除了可以讓我們提早了解職場的環境之外,還可以不單單只是在學校內學習知識、理論,可以讓我們真的透過工作,自己去解決問題。或許在學校有組員、有老師可以不斷地幫忙我們,但在公司很多事情都需要靠自己去找答案,即使是問問題,也要有方式的問,而不再是可以容易得取得答案或解決辦法。
給系上的建議是希望在學校的時候,課堂上可以給予多一些實作機會,特別是針對程式的部分,可以對於程式的部分進行加強,讓學生進入職場時可以對於程式部分更快的上手,減輕些負擔。
針對上班時間配合的選課問題,一開始開的上班時間為預設的選擇,一二三或三四五,而好不容易獲取進公司的資格,一開始進去什麼都還沒接觸過時,無法根據自己的意願與公司溝通上班的時間,因此很感謝系上為了配合我們的預設上班時間而開課,讓我們可以有配合上班時間的課可以選。但我本身覺得,若已經過了半年,若已經有能力自己與公司的主管溝通,讓公司的主管認為若有本身的需求或意願問題,想要在選擇不同的時間上班,選擇更適合自己的課程方式學習,選擇讓自己的學習更有幫助的課,讓主管認為選擇不同時間上班這件事,是沒有問題的,並且有辦法解決自己的選課。我認為在一開始的時候,建議可以跟公司配合固定上班的天數,但其實可以不要硬性規定整年的上班時間,這樣其實對於學生的學校課程學習方面,更有彈性及助益。 在選課方面的壓力也不會這麼大。
最後要謝謝系上給予如此機會讓我們可以提早認識職場的環境,而且這個機會可以讓我們在實習的過程中尋找自己未來的方向,在工作的過程中,可以知道自己以後想要做的工作,不論是繼續進入職場,或是選擇進修讀研究所,都可以因此更知道自己想要的是什麼,也可以在這之中學習許多職場所需的技能。