cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - Have a PTC product question you need answered fast? Chances are someone has asked it before. Learn about the community search. X

Purge Stream from Beginning of Time till Certain Date

ague
12-Amethyst

Purge Stream from Beginning of Time till Certain Date

I have a stream that I would like to purge of any data which is older than 7 days old. My thought is to attempt something like this (below), where my startDate is undefined and my endDate equals seven days ago (DateTime format). 

 

Things["MY_STREAM"].PurgeStreamEntries({
endDate: sevenDaysAgo,
immediate: true,
startDate: undefined
});

 

Will this work? I'm worried that if the startDate is undefined, it'll start from the newest entry of the stream, rather than the oldest entry.

 

TWX v. 8.4.1

1 ACCEPTED SOLUTION

Accepted Solutions
Rajesh_Sayana
12-Amethyst
(To:ague)

You may try this out:

var sDate = '0000-01-01T00:00:00.000-00:00'; // This will allow purging from the dawn of time, and not just the 1970s epoch
var nowDate = Date.now();
var eDate = new Date(nowDate - 7*86400000); 
// Multiply by the milliseconds in a day to convert days to ms
// 7 here specifies the number of days of data you would want to keep
Things["MY_STREAM"].PurgeStreamEntries({
endDate: eDate,
immediate: true,
startDate: sDate
})

View solution in original post

4 REPLIES 4
Rajesh_Sayana
12-Amethyst
(To:ague)

Please refer to the following document for best practices on purging data: Purging Data: Best Practices 

 

ague
12-Amethyst
(To:Rajesh_Sayana)

So, the relevant points from this article that I'm taking are this (emphasis mine):

 

  • For each, if no start date is given, all values will be purged (starting with the 1970s epoch, see KCS Article CS271231 to purge older values)
  • If no end date is given, all properties up until the runtime of the service will be purged

So my options are to just purge 100% of my data OR purge everything from the start of time until the time my service ran?

 

What I want to do is run a service now (on June 6th, for example) that purges from the beginning of time until March 30th (for example). Is this possible? I can find nothing in the article which addresses this, unless the points I copied, above, are trying to say that and are just extremely poorly worded. 

Rajesh_Sayana
12-Amethyst
(To:ague)

You may try this out:

var sDate = '0000-01-01T00:00:00.000-00:00'; // This will allow purging from the dawn of time, and not just the 1970s epoch
var nowDate = Date.now();
var eDate = new Date(nowDate - 7*86400000); 
// Multiply by the milliseconds in a day to convert days to ms
// 7 here specifies the number of days of data you would want to keep
Things["MY_STREAM"].PurgeStreamEntries({
endDate: eDate,
immediate: true,
startDate: sDate
})
ague
12-Amethyst
(To:Rajesh_Sayana)

Thank you! I will give this a try! 

Top Tags