I tested the Web 8.5 publishing transactions API with Tridion Core service and do not see the old transactions. The results look just like the GUI.
There may be , an as yet, new filter to twiddle to include the later publish transaction for the same item, but I have not found it.
Maybe the feature Nuno mentions was in the plan but got pulled.
Try for yourself with this core service example that uses GetSystemWideList
with PublishTransactionsFilterData filer to retrieve Publish Transactions.
<#
Tool to view Tridion Publishing Queue
Chris Mills [email protected]
Capax Global 2015
#>
[CmdletBinding()]
Param
(
[Parameter(Mandatory=$False,HelpMessage="How many hours of Queue to show")]
[string]$Starthours = 48,
[Parameter(Mandatory=$False,HelpMessage="Grid title text")]
[string]$GridTitle = "Publishing Transactions last $Starthours hours - Capax Tridion PowerShell Tools",
[Parameter(Mandatory=$False,HelpMessage="File path for csv output file")]
[string]$filepath= "c:\PublishingTransactions.csv"
)
Import-Module Tridion.ContentManager.Automation
Add-Type -assemblyName System.ServiceModel
$TridionHome = $env:TRIDION_CM_HOME # it moves in Web 8
Add-Type -Path "$TridionHome\bin\client\CoreService\Tridion.ContentManager.CoreService.Client.dll"
$fqdn = "$env:computername"
$serviceurl ="http://localhost/webservices/CoreService201603.svc/wsHttp"
$binding = new-object System.ServiceModel.WsHttpBinding
$binding.MaxBufferPoolSize = [int]::MaxValue
$binding.MaxReceivedMessageSize = [int]::MaxValue
$binding.ReaderQuotas.MaxArrayLength = [int]::MaxValue
$binding.ReaderQuotas.MaxBytesPerRead = [int]::MaxValue
$binding.ReaderQuotas.MaxNameTableCharCount = [int]::MaxValue
$binding.ReaderQuotas.MaxStringContentLength = [int]::MaxValue
#$binding.CloseTimeout = New-TimeSpan -Minutes 10
#$binding.OpenTimeout = New-TimeSpan -Minutes 10
#$binding.ReceiveTimeout = New-TimeSpan -Minutes 10
#$binding.SendTimeout = New-TimeSpan -Minutes 10
#$binding.CloseTimeout.GetType()
$endpoint = new-object System.ServiceModel.EndpointAddress $serviceurl
$core = new-object Tridion.ContentManager.CoreService.Client.SessionAwareCoreServiceClient $binding,$endpoint
[datetime]$dt = (Get-Date).AddDays(-$DaysToKeep)
$utcdate = $dt.ToString("yyyy-MM-dd HH:mm:ss")
$n=[Environment]::NewLine
$sn = $MyInvocation.InvocationName
try
{
$filter = New-Object Tridion.ContentManager.CoreService.Client.PublishTransactionsFilterData
$filter.StartDate = (Get-Date).AddHours(-$Starthours)
$filter.EndDate = (Get-Date).AddHours(+1)
$filter.IsCompleted = $true
$transactions = $core.GetSystemWideList($filter)
}
catch
{
$Exeption = $_.Exception.Message
$Message = "Failed to read Publishing Transactions before $utcdate.$n $Exeption"
Write-EventLog -LogName Tridion -eventID 100 -Source "Tridion Data" -EntryType Error -Category 0 -Message $Message
write-output $Message
}
$outdata = @()
$no = 1
foreach($transaction in $transactions)
{
$transactionDetail = [ordered]@{
"No.#" = $no++
"Transaction" = $transaction.Id.Split("-")[1]
"Name" = $transaction.Title
"Item" = $transaction.Items.IdRef.Split(":")[1]
"Target" = $transaction.ListInfo.PublicationTargetTitle
"Publication" = $transaction.ListInfo.PublicationTitle
"Path" = $transaction.ListInfo.ItemPath
"Action" = if($transaction.ListInfo.PublishAction){"UnPublish"}else{"Publish"}
"State" = $transaction.State
"Priority" = $transaction.Priority
"Date" = $transaction.StateChangeDateTime.ToString("yyyy-MM-dd")
"Time" = $transaction.StateChangeDateTime.ToString("HH:mm:ss")
"User" = $transaction.Creator.Title.Split("\")[1]
}
$outdata += New-Object PSObject -Property $transactionDetail
}
$outdata | Out-GridView -Title $GridTitle -PassThru | Export-Csv -Path $filepath