Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more

Reply
lboldrino
Resolver I
Resolver I

Incremental refresh for Folder with xml-Files

I will use Incremental refresh for my monthly xml-Files. my xml-files dont have any date-column.

but the i can use files-Created date, how can i do it?

here is my xml-files :

 

 

code	name	description	packingUnit.Element:Text	orderUnit	country	taxCode	packingDescription	weightDependant	pricingMeasure.unit	pricingMeasure.value	unitPricingMeasure.unit	unitPricingMeasure.value	unitPricingBaseMeasure.unit
20146	Kürbiskernbrot	Kürbiskernbrot          Steinbauer	375 g	STK	AT	10	Stück	FALSE	STK	1	STK	1	STK
20146	Kürbiskernbrot	Kürbiskernbrot          Steinbauer	375 g	STK	AT	10	Stück	FALSE	STK	1	STK	1	STK
20146	Kürbiskernbrot	Kürbiskernbrot          Steinbauer	375 g	STK	AT	10	Stück	FALSE	STK	1	STK	1	STK
20146	Kürbiskernbrot	Kürbiskernbrot          Steinbauer	375 g	STK	AT	10	Stück	FALSE	STK	1	STK	1	STK
20146	Kürbiskernbrot	Kürbiskernbrot          Steinbauer	375 g	STK	AT	10	Stück	FALSE	STK	1	STK	1	STK
23362	Laugenbrötchen	Laugenbrötchen	85 g	STK	DE	10	Stück	FALSE	STK	1	GRM	85	KGM
23362	Laugenbrötchen	Laugenbrötchen	85 g	STK	DE	10	Stück	FALSE	STK	1	GRM	85	KGM
23362	Laugenbrötchen	Laugenbrötchen	85 g	STK	DE	10	Stück	FALSE	STK	1	GRM	85	KGM
23362	Laugenbrötchen	Laugenbrötchen	85 g	STK	DE	10	Stück	FALSE	STK	1	GRM	85	KGM
23362	Laugenbrötchen	Laugenbrötchen	85 g	STK	DE	10	Stück	FALSE	STK	1	GRM	85	KGM
23366	Laugencroissant	Laugencroissant	85 g	STK	DE	10	Stück	FALSE	STK	1	GRM	85	KGM
23366	Laugencroissant	Laugencroissant	85 g	STK	DE	10	Stück	FALSE	STK	1	GRM	85	KGM
23366	Laugencroissant	Laugencroissant	85 g	STK	DE	10	Stück	FALSE	STK	1	GRM	85	KGM
23366	Laugencroissant	Laugencroissant	85 g	STK	DE	10	Stück	FALSE	STK	1	GRM	85	KGM
23366	Laugencroissant	Laugencroissant	85 g	STK	DE	10	Stück	FALSE	STK	1	GRM	85	KGM
23396	Ab.SchokoDonuts 4er	Ab. Schoko Donuts 4er UTZ      aufgetaut	208 g	STK	AT	10	Packung	FALSE	STK	1	GRM	208	KGM
23396	Ab.SchokoDonuts 4er	Ab. Schoko Donuts 4er UTZ      aufgetaut	208 g	STK	AT	10	Packung	FALSE	STK	1	GRM	208	KGM
23396	Ab.SchokoDonuts 4er	Ab. Schoko Donuts 4er UTZ      aufgetaut	208 g	STK	AT	10	Packung	FALSE	STK	1	GRM	208	KGM
23396	Ab.SchokoDonuts 4er	Ab. Schoko Donuts 4er UTZ      aufgetaut	208 g	STK	AT	10	Packung	FALSE	STK	1	GRM	208	KGM
23396	Ab.SchokoDonuts 4er	Ab. Schoko Donuts 4er UTZ      aufgetaut	208 g	STK	AT	10	Packung	FALSE	STK	1	GRM	208	KGM
23397	Ab.Donuts gezuckert	Ab. Donuts gezuckert 4er       aufgetaut	192 g	STK	AT	10	Packung	FALSE	STK	1	GRM	192	KGM
23397	Ab.Donuts gezuckert	Ab. Donuts gezuckert 4er       aufgetaut	192 g	STK	AT	10	Packung	FALSE	STK	1	GRM	192	KGM
23397	Ab.Donuts gezuckert	Ab. Donuts gezuckert 4er       aufgetaut	192 g	STK	AT	10	Packung	FALSE	STK	1	GRM	192	KGM
code	name	description	packingUnit.Element:Text	orderUnit	country	taxCode	packingDescription	weightDependant	pricingMeasure.unit	pricingMeasure.value	unitPricingMeasure.unit	unitPricingMeasure.value	unitPricingBaseMeasure.unit
20146	Kürbiskernbrot	Kürbiskernbrot          Steinbauer	375 g	STK	AT	10	Stück	FALSE	STK	1	STK	1	STK
20146	Kürbiskernbrot	Kürbiskernbrot          Steinbauer	375 g	STK	AT	10	Stück	FALSE	STK	1	STK	1	STK
20146	Kürbiskernbrot	Kürbiskernbrot          Steinbauer	375 g	STK	AT	10	Stück	FALSE	STK	1	STK	1	STK
20146	Kürbiskernbrot	Kürbiskernbrot          Steinbauer	375 g	STK	AT	10	Stück	FALSE	STK	1	STK	1	STK
20146	Kürbiskernbrot	Kürbiskernbrot          Steinbauer	375 g	STK	AT	10	Stück	FALSE	STK	1	STK	1	STK
23362	Laugenbrötchen	Laugenbrötchen	85 g	STK	DE	10	Stück	FALSE	STK	1	GRM	85	KGM
23362	Laugenbrötchen	Laugenbrötchen	85 g	STK	DE	10	Stück	FALSE	STK	1	GRM	85	KGM
23362	Laugenbrötchen	Laugenbrötchen	85 g	STK	DE	10	Stück	FALSE	STK	1	GRM	85	KGM
23362	Laugenbrötchen	Laugenbrötchen	85 g	STK	DE	10	Stück	FALSE	STK	1	GRM	85	KGM
23362	Laugenbrötchen	Laugenbrötchen	85 g	STK	DE	10	Stück	FALSE	STK	1	GRM	85	KGM
23366	Laugencroissant	Laugencroissant	85 g	STK	DE	10	Stück	FALSE	STK	1	GRM	85	KGM
23366	Laugencroissant	Laugencroissant	85 g	STK	DE	10	Stück	FALSE	STK	1	GRM	85	KGM
23366	Laugencroissant	Laugencroissant	85 g	STK	DE	10	Stück	FALSE	STK	1	GRM	85	KGM
23366	Laugencroissant	Laugencroissant	85 g	STK	DE	10	Stück	FALSE	STK	1	GRM	85	KGM
23366	Laugencroissant	Laugencroissant	85 g	STK	DE	10	Stück	FALSE	STK	1	GRM	85	KGM
23396	Ab.SchokoDonuts 4er	Ab. Schoko Donuts 4er UTZ      aufgetaut	208 g	STK	AT	10	Packung	FALSE	STK	1	GRM	208	KGM
23396	Ab.SchokoDonuts 4er	Ab. Schoko Donuts 4er UTZ      aufgetaut	208 g	STK	AT	10	Packung	FALSE	STK	1	GRM	208	KGM
23396	Ab.SchokoDonuts 4er	Ab. Schoko Donuts 4er UTZ      aufgetaut	208 g	STK	AT	10	Packung	FALSE	STK	1	GRM	208	KGM
23396	Ab.SchokoDonuts 4er	Ab. Schoko Donuts 4er UTZ      aufgetaut	208 g	STK	AT	10	Packung	FALSE	STK	1	GRM	208	KGM
23396	Ab.SchokoDonuts 4er	Ab. Schoko Donuts 4er UTZ      aufgetaut	208 g	STK	AT	10	Packung	FALSE	STK	1	GRM	208	KGM
23397	Ab.Donuts gezuckert	Ab. Donuts gezuckert 4er       aufgetaut	192 g	STK	AT	10	Packung	FALSE	STK	1	GRM	192	KGM
23397	Ab.Donuts gezuckert	Ab. Donuts gezuckert 4er       aufgetaut	192 g	STK	AT	10	Packung	FALSE	STK	1	GRM	192	KGM
23397	Ab.Donuts gezuckert	Ab. Donuts gezuckert 4er       aufgetaut	192 g	STK	AT	10	Packung	FALSE	STK	1	GRM	192	KGM

 

 

1 ACCEPTED SOLUTION
lboldrino
Resolver I
Resolver I

Here is my Solution:

(StartDate as datetime, EndDate as datetime) =>
let
    Source = SharePoint.Files("https://......sharepoint.com/sites/Test/", [ApiVersion = 15]),
    #"Filtered Rows" = Table.SelectRows(Source, each ([Extension] = ".xml")),
    #"Added Custom" = Table.AddColumn(#"Filtered Rows", "FileDate", each #date(1970, 1, 1) + 
#duration(0, 0, 0, Number.FromText(
    Text.Replace(Text.Replace([Name], "Test_0_product_", ""), ".xml", ""))/1000)),
    #"Added Custom1" = Table.AddColumn(#"Added Custom", "FolderDateAsString", each Text.Start(Text.End([Folder Path],8), 7) & ".01"),
    #"Inserted Parsed Date" = Table.AddColumn(#"Added Custom1", "FolderDate", each Date.From(DateTimeZone.From([FolderDateAsString]))),
    #"Changed Type" = Table.TransformColumnTypes(#"Inserted Parsed Date",{{"FileDate", type datetime}, {"FolderDate", type datetime}}),
    #"Filtered Rows1" = Table.SelectRows(#"Changed Type", each [FolderDate] >= StartDate and [FolderDate] < EndDate),
    #"Filtered Hidden Files1" = Table.SelectRows(#"Filtered Rows1", each [Attributes]?[Hidden]? <> true),
    #"Invoke Custom Function1" = Table.AddColumn(#"Filtered Hidden Files1", "Transform File", each #"Transform File"([Content])),
    #"Removed Other Columns1" = Table.SelectColumns(#"Invoke Custom Function1",{"Date modified", "FolderDate", "Transform File"}),
    #"Expanded Transform File" = Table.ExpandTableColumn(#"Removed Other Columns1", "Transform File", {"product"}, {"product"}),
    
    #"Expanded product" = Table.ExpandTableColumn(#"Expanded Transform File", "product", {"name", "description", "packingUnit", "categories", "eans", "prices", "gtins"}, {"name", "description", "packingUnit", "categories", "eans", "prices", "gtins"}),
    #"Expanded packingUnit" = Table.ExpandTableColumn(#"Expanded product", "packingUnit", {"Element:Text"}, {"packageUnit"}),
    #"Expanded categories" = Table.ExpandTableColumn(#"Expanded packingUnit", "categories", {"category"}, {"category"}),
    #"Expanded category" = Table.ExpandRecordColumn(

    // Retaining only first rows in the nested tables as 'records'
    Table.TransformColumns(#"Expanded categories", {"category", Table.First}),

    "category", {"Attribute:name"}, {"firstCategory"}
),
    #"Expanded eans" = Table.ExpandRecordColumn(

    // Retaining only first rows in the nested tables as 'records'
    Table.TransformColumns(#"Expanded category", {"eans", Table.First}),

    "eans", {"ean"}, {"eans.ean"}
),
    #"Added Custom2" = Table.AddColumn(#"Expanded eans", "Custom", each try Table.First(Table.TransformColumnTypes([eans.ean],{{"Element:Text", type text}})) otherwise null),
    #"Expanded Custom" = Table.ExpandRecordColumn(#"Added Custom2", "Custom", {"Element:Text"}, {"firstEan"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Expanded Custom",{{"firstEan", type text}, {"eans.ean", type text}, {"firstCategory", type text}, {"packageUnit", type text}, {"description", type text}, {"name", type text}}),
    #"Added Custom3" = Table.AddColumn(#"Changed Type1", "EAN", each try [eans.ean] otherwise [#"firstEan"]),
    #"Removed Columns1" = Table.RemoveColumns(#"Added Custom3",{"eans.ean", "firstEan"}),
    #"Expanded prices" = Table.ExpandTableColumn(#"Removed Columns1", "prices", {"price"}, {"price"}),
    #"Expanded price" = Table.ExpandTableColumn(#"Expanded prices", "price", {"value"}, {"price"}),
    #"Removed Columns" = Table.RemoveColumns(#"Expanded price",{"gtins"}),
    #"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Date modified", "ModifiedDate"}}),
    #"Replaced Value" = Table.ReplaceValue(#"Renamed Columns",".",",",Replacer.ReplaceText,{"price"}),
    #"Changed Type2" = Table.TransformColumnTypes(#"Replaced Value",{{"price", type number}}),

    Schema = #table( type table [ModifiedDate = datetime, FolderDate = datetime, name = text, description = text, packageUnit = text, firstCategory = text, price = number, EAN = text], {})
in
      try #"Changed Type2" otherwise Schema

 

View solution in original post

2 REPLIES 2
lboldrino
Resolver I
Resolver I

Here is my Solution:

(StartDate as datetime, EndDate as datetime) =>
let
    Source = SharePoint.Files("https://......sharepoint.com/sites/Test/", [ApiVersion = 15]),
    #"Filtered Rows" = Table.SelectRows(Source, each ([Extension] = ".xml")),
    #"Added Custom" = Table.AddColumn(#"Filtered Rows", "FileDate", each #date(1970, 1, 1) + 
#duration(0, 0, 0, Number.FromText(
    Text.Replace(Text.Replace([Name], "Test_0_product_", ""), ".xml", ""))/1000)),
    #"Added Custom1" = Table.AddColumn(#"Added Custom", "FolderDateAsString", each Text.Start(Text.End([Folder Path],8), 7) & ".01"),
    #"Inserted Parsed Date" = Table.AddColumn(#"Added Custom1", "FolderDate", each Date.From(DateTimeZone.From([FolderDateAsString]))),
    #"Changed Type" = Table.TransformColumnTypes(#"Inserted Parsed Date",{{"FileDate", type datetime}, {"FolderDate", type datetime}}),
    #"Filtered Rows1" = Table.SelectRows(#"Changed Type", each [FolderDate] >= StartDate and [FolderDate] < EndDate),
    #"Filtered Hidden Files1" = Table.SelectRows(#"Filtered Rows1", each [Attributes]?[Hidden]? <> true),
    #"Invoke Custom Function1" = Table.AddColumn(#"Filtered Hidden Files1", "Transform File", each #"Transform File"([Content])),
    #"Removed Other Columns1" = Table.SelectColumns(#"Invoke Custom Function1",{"Date modified", "FolderDate", "Transform File"}),
    #"Expanded Transform File" = Table.ExpandTableColumn(#"Removed Other Columns1", "Transform File", {"product"}, {"product"}),
    
    #"Expanded product" = Table.ExpandTableColumn(#"Expanded Transform File", "product", {"name", "description", "packingUnit", "categories", "eans", "prices", "gtins"}, {"name", "description", "packingUnit", "categories", "eans", "prices", "gtins"}),
    #"Expanded packingUnit" = Table.ExpandTableColumn(#"Expanded product", "packingUnit", {"Element:Text"}, {"packageUnit"}),
    #"Expanded categories" = Table.ExpandTableColumn(#"Expanded packingUnit", "categories", {"category"}, {"category"}),
    #"Expanded category" = Table.ExpandRecordColumn(

    // Retaining only first rows in the nested tables as 'records'
    Table.TransformColumns(#"Expanded categories", {"category", Table.First}),

    "category", {"Attribute:name"}, {"firstCategory"}
),
    #"Expanded eans" = Table.ExpandRecordColumn(

    // Retaining only first rows in the nested tables as 'records'
    Table.TransformColumns(#"Expanded category", {"eans", Table.First}),

    "eans", {"ean"}, {"eans.ean"}
),
    #"Added Custom2" = Table.AddColumn(#"Expanded eans", "Custom", each try Table.First(Table.TransformColumnTypes([eans.ean],{{"Element:Text", type text}})) otherwise null),
    #"Expanded Custom" = Table.ExpandRecordColumn(#"Added Custom2", "Custom", {"Element:Text"}, {"firstEan"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Expanded Custom",{{"firstEan", type text}, {"eans.ean", type text}, {"firstCategory", type text}, {"packageUnit", type text}, {"description", type text}, {"name", type text}}),
    #"Added Custom3" = Table.AddColumn(#"Changed Type1", "EAN", each try [eans.ean] otherwise [#"firstEan"]),
    #"Removed Columns1" = Table.RemoveColumns(#"Added Custom3",{"eans.ean", "firstEan"}),
    #"Expanded prices" = Table.ExpandTableColumn(#"Removed Columns1", "prices", {"price"}, {"price"}),
    #"Expanded price" = Table.ExpandTableColumn(#"Expanded prices", "price", {"value"}, {"price"}),
    #"Removed Columns" = Table.RemoveColumns(#"Expanded price",{"gtins"}),
    #"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Date modified", "ModifiedDate"}}),
    #"Replaced Value" = Table.ReplaceValue(#"Renamed Columns",".",",",Replacer.ReplaceText,{"price"}),
    #"Changed Type2" = Table.TransformColumnTypes(#"Replaced Value",{{"price", type number}}),

    Schema = #table( type table [ModifiedDate = datetime, FolderDate = datetime, name = text, description = text, packageUnit = text, firstCategory = text, price = number, EAN = text], {})
in
      try #"Changed Type2" otherwise Schema

 

lbendlin
Super User
Super User

Helpful resources

Announcements
Power BI DataViz World Championships

Power BI Dataviz World Championships

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!

December 2025 Power BI Update Carousel

Power BI Monthly Update - December 2025

Check out the December 2025 Power BI Holiday Recap!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.