workflow MissingTransactions {
    
    
    foreach -parallel ($servernum in 1..10) {
    
        
    
        
        $dates = Get-Item -Path "D:\IFSBOData\FSV\Outgoing_notprocessed_files\*"

        foreach -parallel -throttlelimit 10 ($date in $dates) {
            try {
                $files = Get-ChildItem -Recurse "D:\IFSBOData\FSV\Outgoing_notprocessed_files\$($date.Name)\rejk-p-mdl003v\dcp_ud" | Where-Object -FilterScript { $_.Attributes -cnotcontains 'directory' } 

                Write-Verbose "$computername - csv import"
                $csv = Import-Csv "D:\IFSBOData\FSV\outgoing_histo\$($date.Name)\fsv_histooutgoing.txt" -Header ('box name ; file name ; date of arrival ; number of retries ; date of last send info ; date of ack ; row of sending ; current date' -split ' ; ') -Delimiter ';'
                    
                $dateFormatted = [datetime]::ParseExact($date.Name,'yyyyMMdd', [cultureinfo]::InvariantCulture)


                $filecount = 0
                foreach($file in $files) {
                    try { 
                        $filecount++

                        $filename = $file.Name

                        Write-Verbose "$computername - file filter"
                        $result = $csv | Where-Object -FilterScript { $_.'file name' -match $filename }
                        if($result.'date of ack' -ne $null) { 
                            Write-Verbose "$computername - returning obj"
                            $foundInSql = 0
                            [pscustomobject]@{
                                Filename = $filename
                                DateOfAck = $($result.'date of ack')
                                FoundInSQL = $foundInSql
                                Server = $servername
                                Date = $date.Name
                            }
                        }
                            
                    }
                    catch {
                        Write-Warning "File $($file.Name) failed: $_"
                    }
                }
            }
            catch {
                Write-Warning "Date $($date.Name) failed: $_"
            }
        }
    }
}

$result = MissingTransactions