<< 以下為轉載文章。。。>>
2019/6/9
接下來我們直接進入實戰的部份。在上一篇中,提到了使用 CSIDE 開發和 BC 中物件的概念。可能有人會問說 BC 不是應該用 Extensions / AL / VSCode 進行開發,怎麼還繼續用 CSIDE 呢?別急,CSIDE 除了有學習曲線較緩的好處,有試過傳統的 CSIDE 開發方式才知道為什麼之後應該要採用新的開發方式、新的方式有什麼優點。我也會在文章中解釋這些方法論背後的立意。
1. 新增一張表 “Expense”,裡面應有欄位 Code <code 20>, Description <text 50>, 和 Disabled <boolean>2. 在 G/L Account 中新增欄位 “Expense Code”,此欄位的值要可以從 table “Expense” 中選取3. 使用者要能在相關頁面 (Page) 去輸入有關 “Expense Code” 的資料4. 使用者在 G/L Account 和 Chart of Account 頁面中,可以去對 “Expense Code” 賦值5. 當 G/L Account 的項目被加到 Purchase Line 中,”Expense Code” 的值要能從 G/L Account 複製到 Purchase Line6. 如果使用者在 Purchase Line 中修改 Quantity,”Expense Code” 的值要能被清除掉7. 在 Purchase Line 過帳時,”Expense Code” 是必備 (mandatory) 的,而且系統會檢查 “Expense Code” 是否沒有被 Disabled 掉。否則,系統跳出錯誤訊息。8. 在過帳時, “Expense Code” 的資訊也要被帶入到 General Ledger Entries
看到了規格,先別急著要開始做系統客製或是寫程式。我們來分析一下這份規格:
1. 新增一張表 “Expense”,裡面應有欄位 Code <code 20>, Description <text 50>, 和 Disabled <boolean>分析:很直覺,就開一張 table 50000 取名為 Expense。2. 在 G/L Account 中新增欄位 “Expense Code”,此欄位的值要可以從 table “Expense” 中選取分析:就新增欄位,記得設定 Table relation 的欄位屬性3. 使用者要能在相關頁面 (Page) 去輸入有關 “Expense Code” 的資料分析:要開一個新的 page 50000 (取名 Expenses),並且要將 “Expense Code” 欄位加入那些既有的頁面。4. 使用者在 G/L Account 和 Chart of Account 頁面中,可以去對 “Expense Code” 賦值分析:在 G/L Account 和 Chart of Account 頁面中加入 Page Action5. 當 G/L Account 的項目被加到 Purchase Line 中,”Expense Code” 的值要能從 G/L Account 複製到 Purchase Line分析:我們知道 Purchase Line 中以 Type 加上 No. 來代表一項物品。在這個情況下,就是 Type 為 “G/L Account” 且 No. 被決定的當下,”Expense Code” 的資訊會被帶進到 Purchase Line。所以去查看 No. 的 OnValidate() 程式碼。6. 如果使用者在 Purchase Line 中修改 Quantity,”Expense Code” 的值要能被清除掉分析:VALIDATE “Quantity” 的欄位7. 在 Purchase Line 過帳時,”Expense Code” 是必備 (mandatory) 的,而且系統會檢查 “Expense Code” 是否沒有被 Disabled 掉。否則,系統跳出錯誤訊息。分析:要去追蹤過帳程式。因為跟 Purchase Order 有關,所以去追 Codeunit 90 (Purch.-Post)8. 在過帳時, “Expense Code” 的資訊也要被帶入到 General Ledger Entries分析:要去追蹤過帳程式。因為跟 GL Entries 有關,所以去追 Codeunit 12 (Gen. Jnl.-Post Line)
很明顯,規格中的第 1, 2, 3, 4 項是最簡單的,只要在 Table 或 Page 中加欄位或是 Page Action 即可。我們在這裡就直接把它做掉:
上面的截圖為了避免重複或是冗長,自然是沒有辦法每一個細節或是頁面都截給大家看,閱讀者只是抓到整個感覺即可。另外在開發時,記得要在物件中註記好 Documentation,並且在物件上標記 Version List。Version List 可以讓我們很快找到某一項客製的物件。例如,以上八項需求我統一給它們 BC1.00 的 Version List。日後,我只需要在開發環境篩選 BC1.00 的 Version List,就可以找到所有相關的客製物件。
留言
張貼留言
留下您的意見