All columns from the Budget Information table in the existing GL SL semantic model. Source is BUDGETTRANSACTIONLINE joined to BUDGETTRANSACTIONHEADER, BUDGETMODEL, BUDGETTRANSACTIONCODE, and the BudgetType enum. Target is fct_generalledgerbudget plus the new dim_budgetmodel dimension. All PBI 10 absorption items are now implemented — pending sync, Silver run, then Gold run.
Done Implemented in Gold config and notebook
No action No task required — covered elsewhere, redundant, or technical
Done — Added to fct_generalledgerbudget (Gold config and nb_fct_generalledgerbudget updated)
| Column Name | Type | Source | Treatment | Notes |
|---|---|---|---|---|
| Is One Time Amendment | boolean | BUDGETTRANSACTIONHEADER.ISONETIMEAMENDMENT | Done | Added to gold_config and nb_fct_generalledgerbudget as IsOneTimeAmendment boolean. Derived: 1 → True, otherwise False. |
| Budget Transaction Name | string | BUDGETTRANSACTIONCODE.DESCRIPTION (via header.BudgetTransactionCode) | Done | Added to gold_config and nb_fct_generalledgerbudget as BudgetTransactionName. Silver budgettransactioncode table created and joined via bhead.BudgetTransactionCode → btcode.RecID. |
| Budget Transaction Type | string | BUDGETTRANSACTIONCODE.NAME | Done | Added to gold_config and nb_fct_generalledgerbudget as BudgetTransactionType. Same Silver source and join as Budget Transaction Name. Distinct from IsExpenseRevenue: this is the transaction-record category (Budget, Forecast, etc.) rather than the line nature (Expense vs Revenue). |
| Comment | string | BUDGETTRANSACTIONLINE.COMMENT | Done | Added to gold_config and nb_fct_generalledgerbudget as Comment. Sourced directly from bline.Comment in Silver. |
Done — Covered by new dim_budgetmodel (BudgetModelKey FK on fct_generalledgerbudget)
| Column Name | Type | Source | Treatment | Notes |
|---|---|---|---|---|
| Budget Model ID | string | BUDGETMODEL.MODELID (via header BudgetModelID + BudgetSubModelID + BudgetModelDataAreaID) | Done | Available as ModelID on dim_budgetmodel. New Silver budgetmodel source created. Fact joins via the three-part natural key and stores BudgetModelKey as the FK. Defensive dropDuplicates applied to guard against any duplicate natural-key rows. |
| Budget Sub Model ID | string | BUDGETMODEL.SUBMODELID | Done | Available as SubModelID on dim_budgetmodel. Part of the three-part natural key (with ModelID and CompanyCode). BudgetSubModelID also added to budgettransactionheader in Silver to support the join. |
| Budget Model Name | string | BUDGETMODEL.TXT | Done | Available as ModelName on dim_budgetmodel. The only non-key attribute on the dimension — the merge updates it on RowHash change. |
No action — redundant with existing build
| Column Name | Type | Source | Treatment | Notes |
|---|---|---|---|---|
| Budget Type | string | SRSANALYSISENUMS lookup on BUDGETTRANSACTIONLINE.BUDGETTYPE | No action | Already covered by IsExpenseRevenue on fct_generalledgerbudget (Expense vs Revenue derived from budgettype). Use the existing column rather than duplicating. |
No action — technical
| Column Name | Type | Source | Treatment | Notes |
|---|---|---|---|---|
| RECID | int64 | BUDGETTRANSACTIONLINE.RECID | No action | D365 internal record ID. GeneralLedgerBudgetUID (surrogate key) serves this purpose in Gold. |