TRS就是Transaction的意思,就是代表後端資料表與資料表之間的過帳與交易處理,也是我們 iCoder處理後端商業邏輯的核心,透過 TRS可以定義資料表之間彼此的關係與交易互動,透過TRS的設定即可完成多數的商業交易處理。
我們就以 "客戶資料表" 和 "出貨單" 為例,來了解這兩個Word表格間的關係,如下:
u關聯關係
如下圖,出貨單的 "客戶編號",需要用 "關聯選單" 的方式來參考 "客戶資料表",並傳回"客戶資料表" 相關的欄位給 "出貨單"。
u回寫關係
如上圖中,我們希望 "出貨單" 的 "聯絡人" 如果有更改的話,希望能回寫到 "客戶資料表"中的 "聯絡人" 中。
u累計關係
同上,我們希望 "出貨單" 的 "總計含稅" 數值,可以被累計到 "客戶資料表" 中的 "營業額" 中。
我們就以上面的需求,來實作一個 TRS功能。
Step1> 新增一個 TRS交易處理,選擇 "出貨單",代表是針對 "出貨單" 進行TRS的過帳設定。
Step2> 再來,請在 "出貨單" 主檔中,按下新增,如圖所示
1. 選擇TRS的對方資料表,這裡選 "客戶資料表" ,代表 "出貨單" 新增刪除修改時,會對客戶資料表產生我們所設定的連動或變更。
2. "對方交易模式" 設定為 "異常中止",代表找不到對方的話就會告知錯誤並中止繼續交易。
3. "對方欄位" 用來設定兩個資料表的對應關係,這裡會自動把 "客戶資料表" 的KEY也就是 "客戶編號" 對應到 "出貨單" 的 "客戶編號"去做一個關聯。
4. "交易欄位明細" 用來定義彼此的交易關係,這邊一樣會把兩邊資料表欄位名稱一樣的自動對應起來,建議可以全部清空,再挑選自己要的欄位。
Step3> 再來我們就針對 "交易欄位明細" 去做設定。
這邊要做的是把 "出貨單" 的 "總計含稅" 累加到 "客戶資料表" 的 "營業額",此類型要設定為 "累加";接著把 "出貨單" 的 "聯絡人" 回寫替換到 "客戶資料表" 的 "聯絡人"中,類型設定為 "替換"。如圖所示:
設定好後,記得一樣存檔並匯出,此時 "出貨單" 的 Server端就會自動產生 TRS的元件與程式碼,來進行過帳交易。
Step4> 接著,除了 "出貨單" 主檔的TRS設定外,我們也來設定 "出貨單明細表" 的部分。如下圖,我們以 "出貨單明細表" 進行新增更改刪除時,要對 "產品資料表" 做交易處理為例。
出貨單與產品資料表的關係,是以出貨單的產品明細為主,例如,我們要將 "出貨單明細表" 的 "數量"去扣掉 "產品資料表" 的 "庫存量";並把"出貨單明細表"的 "單價"覆寫到 "產品資料表" 的 "最近售價"上;另外,因為 "出貨單明細表" 上並沒有日期的欄位,所以我們也會把"出貨單" 的 "日期"覆寫到 "產品資料表" 的 "銷售日期"上。
Step5> 再來,我們在 "出貨單明細" 檔中,按下新增,如圖所示
Step6> 對方資料表我們選擇 "產品資料表" ,對方交易模式同樣設定為 "異常終止",對方欄位(對應的欄位)自動設定為 "出貨單明細表" 的 "產品編號"對應到 "產品資料表" 的 "產品編號"。
Step7> 接著把交易欄位明細全數刪除後,自行增加一個 "數量" 對應到 "庫存量",類型設定為"累減不小於0",代表"出貨單明細表" 的 "數量" 會去累減產品表的 "庫存量" ,當累減之後如果"庫存量"小於0就會自動停止交易,讓整個交易失敗與告知用戶。
Step8> 接著設定 "出貨單明細表" 的 "單價" 去覆蓋產品資料表的 "最近售價",因為 "出貨單明細表" 並沒有日期欄位,所以特別選擇 "出貨單" 的 "日期" 欄位去覆寫到 "產品資料表" 的 "銷售日期"。都設定好後記得按 "OK"。
Step9> 最後別忘了存檔並重新匯出。為了能證明這個TRS的過帳是正確的,我們先打開 Word裡的 "客戶資料表" ,並按下 "打開資料表"。
以上就可以看到客戶資料表內真實的資料內容,我們特別關注 2號客戶的"奇美電子"中的 "聯絡人"為王小維,"營業額" 為 20000。
Step10> 接著我們打開 "出貨單" 並 "預覽" 來新增一筆出貨單資料。選擇一張報價單客戶為 2號的 "奇美電子" (或自己選擇),並故意把 "聯絡人" 改成 "王大維" ;再來選擇新增產品資料(或整批新增),填入數量後會自動計算出 "總計含稅" 的金額(此例的金額為 13125),最後按下確定存檔,此時出貨單的 TRS也會同步進行過帳處理。
Step11> 回到 "客戶資料表" ,如果頁面已經開啟,先將其關閉再重新以 "打開資料表" 打開,如下,你會發現 "聯絡人" 已經被改成 "王大維" 了, "總計含稅" 也被累加了 13125,變成了 33125。
如果要檢驗 "出貨明細表" 的TRS過帳,請用同樣的方式,在新增出貨單前後去檢查 "產品資料表" 的相關內容即可。
Related Topics