本節要來簡單說明PROC的各個活動組件的屬性與用途,共分類成四大類的活動組件,說明如下。
輸入活動組件
輸入活動,通常用來讀取數據,可以由前端網頁傳入、外部API傳入、內部資料庫讀取、內部文件讀入(外部可透過FTP傳入)、從郵件中讀入、使用網路爬蟲讀入等等,說明如下:
開始活動:可透過Client端傳入參數(變數),可自由定義變數名稱與數量,如下Items的屬性定義,設定傳入變數名稱與初值(如果有的話)。
SQL查詢:透過SQL命令來讀取對應的資料庫與資料表,此為最常用的讀取活動組件。如下,Var代表讀取後存放的變數名稱(陣列變數)。
Parameters用來定義CommandText內的"@"變數對應關係,如下,Name為"@"變數名稱,Var則為對應的值(可以為運算式)。
文件匯入:可讀取指定的資料檔案,檔案格式(InputType)目前可以為DOCX(Word)/Excel(XLSX)/XML/JSON等。
MAIL讀入:可指定一個郵件地址來讀取郵件的內容,並可設定新郵件或未讀取郵件等。如下,Host為郵件服務器的主機名稱,MailAccount/PassWord則代表要讀取的郵件帳號與密碼,MailType可以有NEW(新郵件)與UNSEEN(未讀)及FLAGGED(設為標誌的)。
Web服務:指定一個外部的Web Service網址,並可設定讀入的參數內容。如下指定一個URL的Web Service讀入台北今天天氣,Parameters為該Web Service的傳入參數,並將Web Service傳回的資料存入Var當中(下圖的變數名稱為"天氣")。
網頁解析:指定一個外部的網頁,此為一個簡單的網頁爬蟲,用來讀取網頁的部分內容。(開發中,尚未完成)
處理活動組件
處理活動,顧名思義就是用來處理數據與資料,可以由前端網頁傳入、外部API傳入、郵件讀入或內部資料庫讀取,經過處理活動進行資料分析或交易處理等,最後寫回資料庫或透過輸出活動組件回寫檔案及通知各業務窗口等,如下的組件:
設值:這是最常用的處理,可以設定多個變數的內容值或運算關係,可根據變數的型態使用不同的函數,並進行任何加減乘除等計算式處理,如下的設定畫面:
設值活動可以一次設定多個Var變數,Operator可以設定"="或是"+="(累加累減),Value可以設定變數內容或是運算式或常數等。畫面下方可以選擇存在的變數名稱與其相對的可用函數等,讓USER更容易使用。
SQL命令:以SQL命令來執行資料庫的Insert/Update/Delete或執行Stored Procedure等。如下的CommandText代表命令內容,Parameters代表CommandText的'@'參數對應關係。
SQL插入:此專門用來將一個變數內容(多筆數組)寫入到指定資料表中,如了插入資料(Insert)外,如果資料表中已經存在資料的話,還可以設定UpdateIfExist是否要進行更新數據(Update)。
程序:用來呼叫EEPCloud的Server Method,通常PROC可以完成所有的程式邏輯處理,但如果喜歡用程式來撰寫的話,可以在此調用。如下的Function可以選擇一個Server Method來呼叫,呼叫時PROC的所有變數都會傳入到該Server Method中,傳回結果可存放於Var的指定變數上。
批量過帳:這個是專門給EEPCloud的TRS模組(ServerMove+Transaction組件)所使用,在TRS可以是On-Line過帳處理交易,也可以是Batch方式處理交易,而這個活動組件則專門用來處理TRS中的批次過帳交易。如下的ServerMoveID可以選擇一個Server端的ServerMove組件,ExcecuteMode可以選擇Execute(批次執行)/CarryOver(結轉處理)/CarryTrial(結轉試算)/DeletePeriod(刪除結轉)等。
流程觸發:專門用來觸發啟動一個流程所使用。如下,可以指定一個EEPCloud的工作流程(FlowName),並指定一個RWD表單(FormName)來呈送,RowVar為呈送的資料內容變數。
FTP:專門用來進行FTP的上傳與下載所使用。如下,可以指定一個Host網址,設定好Local與Host的目錄,進行FTP上傳與下載的動作。
輸出活動組件
輸出活動,用來將處理的結果透過各式管道自動通知給相關人員,及輸出檔案或可以指定印表等。如下的組件:
發送消息:用來發送消息或檔案的活動組件,如下SentToVar代表要發送的對象變數,SubjectVar為發送主題變數(這裡可以用運算式設定),Body為發送內容,SendType目前有Mail(郵件)/Push(APP推送)/Line等發送方式可以選擇。
比較特別的是Body可以套用變數的資料內容,如下:
文件輸出:用來輸出各式文件到特定的目錄上,如下OutPutVar代表要輸出的變數(可以是一個Table對象),FileName代表輸出的檔案名稱,Columns可設定要輸出的欄位,OutputType目前有TXT/DOC/XLS/WordPlate/ExcelPalte/WordPDF等可以選擇(WordPlate代表Word套表,ExcelPlate代表Excel套表)。
文件列印:專門用來直接印表文件到網路印表機上。要列印的文件可以透過FileSource屬性設定來自"文件輸出"產生(export),或是使用者上傳(upload)而來。FileNameVar可以指定一個要列印的文件(副檔名必須為docx/xlsx/pdf);PrinterName可以選中一台網路印表機或是主機端的印表機。
結束: 用來傳回前端網頁,可指定一個變數傳回。
基礎控制活動組件
最基礎的活動組件,用來串接各活動的執行次序與邏輯判斷或循環執行等,控制從開始的輸入活動經處理活動,一直到輸出活動結束為止。
條件與分支:用來設定不同條件可執行不同分支活動,一個條件活動可以貼入多個分支活動,每個分支活動可以循序貼入不同的活動(支援巢狀式條件)。分支條件可以如下的設定,條件式可以多個條件(AND與OR),並可使用變數的對應函數等,如下:
循環與跳出循環:用來進行迴圈循環處理,循環活動中可以貼入多個活動依序執行(同樣支援巢狀式迴圈);跳出循環代表跳出該迴圈往下執行活動。循環活動如下的LoopArrayVar代表循環的陣列變數(如資料表),從陣列元素0一直循環到陣列數量為止,LoopObjVar代表每個元素取出的暫存單一變數。下圖代表迴圈程式為 Foreach(var row in emp)的意思。
又如下圖的例子,LoopExpression代表循環的條件變數,則LoopObjVar則循環的index變數,下圖則代表迴圈程式for (var Curr=0;Curr<END;Curr++) 的意思。
子程序:當PROC處理程序很複雜或是有些程序需要共用時,則可以使用子程序來簡化活動流程或讓程序可以共用。如下的ProcessorName可以選擇另一個PROC來做為子程序,子程序會自動傳遞原程序所有既有的變數。
Related Topics