// Filter Criteria - Provide as MANY values as you know to improve performance. Base case should be Cost_Division OR Responsible Person AND IAN OR Charge Code
Cost_Division = null,
Responsible_Person = null,
IAN = null,
Charge_Code = null,
Project_Name = null,
//Initial Data Pull, Cost_Division and Repsonsible Person
{Cube.AddAndExpandDimensionColumn, "[Date Months]", {"[Date Months].[Current 3 Periods of FY Flag].[Current 3 Periods of FY Flag]", "[Date Months].[FY Abbrev and Month Abbrev].[FY Abbrev and Month Abbrev]", "[Date Months].[FY Abbrev And Period Number].[FY Abbrev And Period Number]", "[Date Months].[Rolling 3 Periods Flag].[Rolling 3 Periods Flag]"}, {"Date Months.Current 3 Periods of FY Flag", "Date Months.FY Abbrev and Month Abbrev", "Date Months.FY Abbrev And Period Number", "Date Months.Rolling 3 Periods Flag"}},
{Cube.AddAndExpandDimensionColumn, "[Personnel]", {"[Personnel].[Lastname First Middle].[Lastname First Middle]"}, {"Personnel.Lastname First Middle"}}
}),
#"Added Items1" = Cube.Transform(#"Add Line Item Details",
{
{Cube.AddAndExpandDimensionColumn, "[Cost Elements]", {"[Cost Elements].[Cost Element Descr].[Cost Element Descr]"}, {"Cost Elements.Cost Element Descr"}}
}),
#"Added Items2" = Cube.Transform(#"Added Items1",
{
{Cube.AddAndExpandDimensionColumn, "[Purchase Order Master]", {"[Purchase Order Master].[Purchase Order Number].[Purchase Order Number]", "[Purchase Order Master].[Brief Description].[Brief Description]"}, {"Purchase Order Master.Purchase Order Number", "Purchase Order Master.Brief Description"}}
}),
#"Changed Type" = Table.TransformColumnTypes(#"Added Items2",{{"Total Cost & Ovh", type number}}),
#"Renamed Columns" = Table.RenameColumns(#"Changed Type",{{"Cost Elements.Cost Categ Level 1", "Cost Category L1"}, {"Date Months.FY Abbrev and Month Abbrev", "Month"}, {"Date Months.FY Abbrev And Period Number", "Period"}, {"Cost Elements.Cost Categ Level 2", "Cost Category L2"}, {"Date Months.Current 3 Periods of FY Flag", "Current 3 Periods"}, {"Date Months.Rolling 3 Periods Flag", "Rolling 3 Periods Flag"}}),
#"Replaced Value" = Table.ReplaceValue(#"Renamed Columns","9999999999","",Replacer.ReplaceText,{"Purchase Order Master.Purchase Order Number"}),
#"Renamed Columns1" = Table.RenameColumns(#"Replaced Value",{{"Purchase Order Master.Purchase Order Number", "PO Number"}, {"Purchase Order Master.Brief Description", "PO Description"}}),
#"Added Conditional to filter PALS" = Table.AddColumn(#"Renamed Columns1", "Line Item Details", each if Text.Contains([Line Item Desc.Line Item Descr], "PALS") then "" else [Line Item Desc.Line Item Descr]),
#"Added Conditional for Date" = Table.AddColumn(#"Added Conditional to filter PALS", "Date", each if Text.Contains([Line Item Desc.Line Item Descr], "PALS") then "" else [Date.DateYMD]),
#"Added Conditional for Name" = Table.AddColumn(#"Added Conditional for Date", "Name", each if Text.Contains([Line Item Desc.Line Item Descr], "PALS") then "" else [Personnel.Lastname First Middle]),
#"Added Conditional Column" = Table.AddColumn(#"Added Conditional for Name", "Cost Element Description", each if Text.Contains([Line Item Desc.Line Item Descr], "PALS") then "" else [Cost Elements.Cost Element Descr]),
#"Removed Columns" = Table.RemoveColumns(#"Added Conditional Column",{"Line Item Desc.Line Item Descr", "Personnel.Lastname First Middle", "Date.DateYMD", "Cost Elements.Cost Element Descr"}),
{Cube.AddAndExpandDimensionColumn, "[Charge Numbers]", {"[Charge Numbers].[Charge Number Status].[Charge Number Status]"}, {"Charge Numbers.Charge Number Status"}},
#"Renamed Columns" = Table.RenameColumns(#"Changed Type2",{{"Charge Numbers.Charge Number Status", "Status"}, {"Budget - Cost", "Remaining"}, {"Budget - Cost - PO - PR w Cmt Ovh", "Remain - Commits"}, {"Budget Cumulative", "Cum Budget"}}),
#"Changed Type" = Table.TransformColumnTypes(#"Renamed Columns",{{"Remaining", type number}, {"Remain - Commits", type number}, {"Cum Budget", type number}, {"Budget - Cost - POs w Cmt Ovh", type number}, {"BA New FYTD", Currency.Type}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "POs", each [Remaining]-[#"Budget - Cost - POs w Cmt Ovh"]),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "PRs", each [#"Budget - Cost - POs w Cmt Ovh"]-[#"Remain - Commits"]),
#"Changed Type1" = Table.TransformColumnTypes(#"Added Custom1",{{"POs", type number}, {"PRs", type number}})
{Cube.AddMeasureColumn, "Total PO Commit w Ovh", "[Measures].[Total PO Commit w Ovh]"},
{Cube.AddMeasureColumn, "Total Cost w Ovh", "[Measures].[Total Cost w Ovh]"}
}),
#"Added Items1" = Cube.Transform(#"Added Items",
{
{Cube.AddAndExpandDimensionColumn, "[Purchase Order Items]", {"[Purchase Order Items].[Vendor - PO - Item].[Vendor Name]"}, {"Purchase Order Items.Vendor Name"}},
{Cube.AddAndExpandDimensionColumn, "[Purchase Order Master]", {"[Purchase Order Master].[Purchase Order Number].[Purchase Order Number]", "[Purchase Order Master].[Brief Description].[Brief Description]"}, {"Purchase Order Master.Purchase Order Number", "Purchase Order Master.Brief Description"}}
{Cube.AddAndExpandDimensionColumn, "[Purchase Order Items]", {"[Purchase Order Items].[Closeout Status].[Closeout Status]"}, {"Purchase Order Items.Closeout Status"}}
}),
#"Changed Type" = Table.TransformColumnTypes(#"Add Closeout Status",{{"Invoiced Cost", type number}, {"Total PO Commit w Ovh", type number}}),
#"Filtered Rows" = Table.SelectRows(#"Changed Type", each (Cube.AttributeMemberId([Purchase Order Master.Purchase Order Number]) <> "[Purchase Order Master].[Purchase Order Number].&[9999999999]" meta [DisplayName = "9999999999"])),
#"Renamed Columns" = Table.RenameColumns(#"Filtered Rows",{{"Purchase Order Items.Vendor Name", "Vendor"}, {"Purchase Order Master.Purchase Order Number", "PO Number"}, {"Purchase Order Master.Brief Description", "PO Description"}, {"Total Cost w Ovh", "Base w OH"}}),
#"Added Custom" = Table.AddColumn(#"Renamed Columns", "% PO Spent", each [Base Cost]/([Rem Commitment]+[Base Cost])),
#"Changed Type1" = Table.TransformColumnTypes(#"Added Custom",{{"% PO Spent", type number}, {"Base w OH", type number}})
in
#"Changed Type1"
/***************************
Req
****************************/
let
Source = Reference,
#"Added Items" = Cube.Transform(Source,
{
{Cube.AddMeasureColumn, "PR Amount w Ovh", "[Measures].[PR Amount w Ovh]"},
#"Add Current Period Flag" = Cube.Transform(#"Add Req Details",
{
{Cube.AddAndExpandDimensionColumn, "[Date Current Flags]", {"[Date Current Flags].[Current Period Flag].[Current Period Flag]"}, {"Date Current Flags.Current Period Flag"}}
}),
#"Changed Type" = Table.TransformColumnTypes(#"Add Current Period Flag",{{"PR Amount w Ovh", type number}}),
#"Filtered Rows" = Table.SelectRows(#"Renamed Columns", each (Cube.AttributeMemberId([Date Current Flags.Current Period Flag]) = "[Date Current Flags].[Current Period Flag].&[Y]" meta [DisplayName = "Y"]))
#"Add Dates" = Cube.Transform(#"Add Cost and Hours",
{
{Cube.AddAndExpandDimensionColumn, "[Date Months]", {"[Date Months].[Current 3 Periods of FY Flag].[Current 3 Periods of FY Flag]", "[Date Months].[Current FY Flag].[Current FY Flag]", "[Date Months].[Current Period Flag].[Current Period Flag]", "[Date Months].[FY Abbrev and Month Abbrev].[FY Abbrev and Month Abbrev]", "[Date Months].[FY Abbrev And Period Number].[FY Abbrev And Period Number]", "[Date Months].[Rolling 3 Periods Flag].[Rolling 3 Periods Flag]"}, {"Date Months.Current 3 Periods of FY Flag", "Date Months.Current FY Flag", "Date Months.Current Period Flag", "Date Months.FY Abbrev and Month Abbrev", "Date Months.FY Abbrev And Period Number", "Date Months.Rolling 3 Periods Flag"}},
{Cube.AddAndExpandDimensionColumn, "[Personnel]", {"[Personnel].[Lastname First Middle Hier].[Lastname First Middle Hier]"}, {"Personnel.Lastname First Middle Hier"}},
{Cube.AddAndExpandDimensionColumn, "[Date Months]", {"[Date Months].[Current 3 Periods of FY Flag].[Current 3 Periods of FY Flag]", "[Date Months].[Current Period Flag].[Current Period Flag]", "[Date Months].[FY Abbrev and Month Abbrev].[FY Abbrev and Month Abbrev]", "[Date Months].[FY Abbrev And Period Number].[FY Abbrev And Period Number]", "[Date Months].[Rolling 3 Periods Flag].[Rolling 3 Periods Flag]"}, {"Date Months.Current 3 Periods of FY Flag", "Date Months.Current Period Flag", "Date Months.FY Abbrev and Month Abbrev", "Date Months.FY Abbrev And Period Number", "Date Months.Rolling 3 Periods Flag"}},
{Cube.AddAndExpandDimensionColumn, "[Personnel]", {"[Personnel].[Personnel No].[Personnel No]", "[Personnel].[Lastname First Middle].[Lastname First Middle]"}, {"Personnel.Personnel No", "Personnel.Lastname First Middle"}}
}),
#"Changed Type" = Table.TransformColumnTypes(#"Add Line Item Details",{{"Total Cost & Ovh", type number}}),
#"Renamed Columns" = Table.RenameColumns(#"Changed Type",{{"Cost Elements.Cost Categ Level 1", "Cost Category L1"}, {"Date Months.FY Abbrev and Month Abbrev", "Month"}, {"Date Months.FY Abbrev And Period Number", "Period"}, {"Cost Elements.Cost Categ Level 2", "Cost Category L2"}, {"Date Months.Current 3 Periods of FY Flag", "Current 3 Periods"}, {"Date Months.Rolling 3 Periods Flag", "Rolling 3 Periods Flag"}, {"Cost Elements.Cost Element Descr", "Cost Ele Descr"}, {"Cost", "Base Cost"}, {"Overhead Cost", "OH"}, {"Total Cost & Ovh", "Total w OH"}, {"Date.DateYMD", "DateYMD"}, {"Line Item Desc.Line Item Descr", "Line Item Descr"}, {"Personnel.Personnel No", "Personnel No"}, {"Personnel.Lastname First Middle", "Name"}, {"Date Months.Current Period Flag", "Current Period Flag"}})