Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124

在 Business Central (BC) 中,Value Entries (價值分錄) 與 General Ledger Entries (總帳分錄) 之間存在一個明確的關聯,這對於庫存 (Inventory) 成本核算和總帳和解 (Reconciliation) 至關重要。
Value Entries 專門記錄庫存價值的變動,而 General Ledger Entries 則記錄財務總帳的變動。
關聯:庫存的價值變動(Value Entries)最終會透過庫存過帳設定 (Inventory Posting Setup) 自動或手動批次過帳到總帳科目,生成對應的 General Ledger Entries。
Value Entries 和 General Ledger Entries 之間的直接對應是通過一個專門的中間表格來實現的:
關鍵對應表:G/L - Item Ledger Relation (總帳 - 庫存分錄關聯) (Table 5823)
這個表格是系統自動產生且不可編輯的,它的主要目的是建立一個審計追蹤路徑,將一個或多個 Value Entries 連結到其對應產生的 General Ledger Entries。
| G/L – Item Ledger Relation (Table 5823) | 欄位說明 | 對應的條目 |
Value Entry No. | 價值條目的唯一編號 | Value Entries (Table 5802) |
G/L Entry No. | 總帳條目的唯一編號 | General Ledger Entries (Table 21) |
G/L Register No. | 總帳登記簿編號(用於批次過帳的追蹤) | G/L Register (Table 45) |
在 Business Central 的使用者介面中,最常用的對應方式是使用 導覽 (Navigate) 功能:
Cost Posted to G/L (已過帳到總帳的成本) 會被勾選或填入金額,表示該價值條目已經產生了對應的總帳條目。當您過帳一筆庫存交易(如採購發票、銷貨出貨)時:
Item Ledger Entry Type 欄位的主要選項在 Business Central 的 Item Ledger Entry (庫存總帳分錄) 表格中,Entry Type 欄位是一個 Option (選項) 欄位,用來標示該條目是由哪種庫存交易產生的。
| 選項 (Option) | 英文名稱 | 說明 |
| 0 | Purchase (採購) | 透過採購單/採購發票等文件進行的商品入庫,增加庫存。 |
| 1 | Sale (銷貨) | 透過銷貨單/銷貨發票等文件進行的商品出庫,減少庫存。 |
| 2 | Positive Adjmt. (正向調整) | 透過庫存日誌或盤點進行的正面調整,增加庫存數量。 |
| 3 | Negative Adjmt. (負向調整) | 透過庫存日誌或盤點進行的負面調整,減少庫存數量。 |
| 4 | Transfer (移轉) | 透過移轉單在不同地點 (Location) 之間移動庫存,通常是 A 地點的負向調整對應 B 地點的正向調整。 |
| 5 | Consumption (耗用) | 於生產或裝配過程中耗用原料或零組件,減少庫存。 |
| 6 | Output (產出) | 生產或裝配完成後產出成品或半成品,增加庫存。 |
| 7 | (空白) | 很少見,通常在某些特殊系統操作或客製化情境下可能出現,但實務中應避免。 |
| 8 | Assembly Consumption (裝配耗用) | 專門用於裝配單中耗用零組件,減少庫存。 |
| 9 | Assembly Output (裝配產出) | 專門用於裝配單中產出成品,增加庫存。 |
Positive Adjmt. / Negative Adjmt.):這主要用於非銷售、採購、移轉等標準流程的庫存調整,例如盤點差異、損壞報廢等,通常通過庫存日誌 (Item Journal) 進行過帳。Consumption / Output / Assembly Consumption / Assembly Output):這幾個選項用於追蹤製造業或裝配業的庫存變動,清楚區分原料的耗用與成品的產出。在 Business Central 的 AL 開發中,如果您要自定義一個欄位,並且讓它的選項(Option)清單和標準的 Item Ledger Entry Type 完全一樣,您有兩種主要的做法,其中第一種是推薦的做法。
標準的 Item Ledger Entry Type 已經在 Business Central 中被定義為一個 Enum (列舉) 物件。這是標準做法,可以確保您的欄位定義與標準系統保持同步,並且更容易維護。
標準的 Item Ledger Entry Type 對應的 Enum ID 是 78,它的名稱是 "Item Ledger Entry Type" (命名空間為 Microsoft.Inventory.Ledger.)。
您應該將欄位類型直接指定為這個標準 Enum 的名稱。
AL 程式碼範例 (使用 Enum 參考)
table 50010 "My Custom Inventory Log"
{
fields
{
field(1; "Entry No."; Integer)
{
DataClassification = SystemMetadata;
}
// 這是您的自定義欄位定義
field(10; "Custom ILE Type"; Enum "Item Ledger Entry Type")
{
Caption = '自定義庫存類型';
DataClassification = ToBeClassified;
// 不需要 OptionMembers 或 OptionCaption
}
}
keys
{
key(PK; "Entry No.")
{
Clustered = true;
}
}
}優點:
Item Ledger Entry Type (例如新增或移除選項),您的自定義欄位會自動繼承這些變動。如果您由於某些原因(例如您的 BC 版本較舊,或者您需要修改部分選項但又想保留大部分)不能使用 Enum 參考,您可以手動複製選項清單。
您需要找到標準 Item Ledger Entry 表格 (Table 32) 中 Entry Type 欄位的完整 OptionMembers 和 OptionCaption。
根據標準定義,其選項清單如下:
| 數值 | OptionMember | OptionCaption (中文) |
| 0 | Purchase | 採購 |
| 1 | Sale | 銷貨 |
| 2 | Positive Adjmt. | 正向調整 |
| 3 | Negative Adjmt. | 負向調整 |
| 4 | Transfer | 移轉 |
| 5 | Consumption | 耗用 |
| 6 | Output | 產出 |
| 7 | ||
| 8 | Assembly Consumption | 裝配耗用 |
| 9 | Assembly Output | 裝配產出 |
您需要將這些選項值填入您的 Option 欄位的 OptionMembers 和 OptionCaption 屬性中。
AL 程式碼範例 (手動複製)
table 50011 "My Custom Manual Log"
{
fields
{
field(1; "Entry No."; Integer)
{
DataClassification = SystemMetadata;
}
// 這是您的自定義欄位定義
field(10; "Manual ILE Type"; Option)
{
Caption = '手動定義庫存類型';
DataClassification = ToBeClassified;
// 複製 OptionMembers (英文值)
OptionMembers = Purchase,Sale,"Positive Adjmt.","Negative Adjmt.",Transfer,Consumption,Output," ", "Assembly Consumption", "Assembly Output";
// 複製 OptionCaption (中文值)
OptionCaption = '採購,銷貨,正向調整,負向調整,移轉,耗用,產出, ,裝配耗用,裝配產出';
}
}
// ...
}注意: 在
OptionMembers中,如果選項名稱包含特殊字符 (如句號.) 或空格,則必須使用雙引號 ("") 包裹,例如"Positive Adjmt."。選項之間的逗號不能有空格。
結論:
強烈建議使用做法一 (Enum 參考):field(10; "Custom ILE Type"; Enum "Item Ledger Entry Type"),因為它確保了最高的程式碼品質和未來的相容性。