Fix Verarbeitung von mehreren Dateien

This commit is contained in:
2026-04-10 11:20:13 +02:00
parent facccc8ac4
commit afb807c87c

View File

@@ -13,7 +13,7 @@ param(
1. Optional Self-Update aus dem Public-Repo per Versionsvergleich 1. Optional Self-Update aus dem Public-Repo per Versionsvergleich
2. AZ_GITHUB_TOKEN pruefen 2. AZ_GITHUB_TOKEN pruefen
3. Private Konfiguration aus dem Private-Repo laden 3. Private Konfiguration aus dem Private-Repo laden
4. Genau eine Datei aus Input-Ordner lesen 4. Alle TXT-Dateien direkt im Input-Ordner lesen
5. Dateiname ohne Endung als Belegnummer verwenden 5. Dateiname ohne Endung als Belegnummer verwenden
6. SQL-Abfrage ausfuehren 6. SQL-Abfrage ausfuehren
7. Ergebnis an n8n senden 7. Ergebnis an n8n senden
@@ -25,7 +25,7 @@ param(
$ErrorActionPreference = 'Stop' $ErrorActionPreference = 'Stop'
$script:ScriptName = 'KANBAN-Rational-Druck' $script:ScriptName = 'KANBAN-Rational-Druck'
$script:ScriptVersion = '1.0.0' $script:ScriptVersion = '1.1.0'
$script:PublicRawUrl = 'https://git.az-gruppe.com/AZ-Intec-GmbH/AZ-PowerShell-Pub/raw/branch/main/scripts/KANBAN-Rational-Druck/KANBAN-Rational-Druck.ps1' $script:PublicRawUrl = 'https://git.az-gruppe.com/AZ-Intec-GmbH/AZ-PowerShell-Pub/raw/branch/main/scripts/KANBAN-Rational-Druck/KANBAN-Rational-Druck.ps1'
$script:PrivateRawUrl = 'https://git.az-gruppe.com/AZ-Intec-GmbH/AZ-PowerShell-Prv/raw/branch/main/scripts/KANBAN-Rational-Druck/KANBAN-Rational-Druck.ps1' $script:PrivateRawUrl = 'https://git.az-gruppe.com/AZ-Intec-GmbH/AZ-PowerShell-Prv/raw/branch/main/scripts/KANBAN-Rational-Druck/KANBAN-Rational-Druck.ps1'
$script:LogFilePath = $null $script:LogFilePath = $null
@@ -227,7 +227,7 @@ function Test-RequiredConfig
} }
} }
function Get-SingleInputFile function Get-InputFiles
{ {
param( param(
[Parameter(Mandatory = $true)] [Parameter(Mandatory = $true)]
@@ -239,19 +239,9 @@ function Get-SingleInputFile
throw "ERROR: Input-Ordner existiert nicht: $InputFolder" throw "ERROR: Input-Ordner existiert nicht: $InputFolder"
} }
$files = Get-ChildItem -Path $InputFolder -File $files = Get-ChildItem -Path $InputFolder -File -Filter '*.txt'
if ($files.Count -eq 0) return @($files)
{
throw "ERROR: Keine Datei im Input-Ordner gefunden: $InputFolder"
}
if ($files.Count -gt 1)
{
throw "ERROR: Es wurden mehrere Dateien gefunden. Erwartet wird genau eine Datei im Ordner: $InputFolder"
}
return $files[0]
} }
function Invoke-SqlTopOneQuery function Invoke-SqlTopOneQuery
@@ -375,14 +365,26 @@ try
Write-Log "Starte Skriptausfuehrung KANBAN-Rational-Druck..." "INFO" Write-Log "Starte Skriptausfuehrung KANBAN-Rational-Druck..." "INFO"
$inputFile = Get-SingleInputFile -InputFolder $config.InputFolder $inputFiles = Get-InputFiles -InputFolder $config.InputFolder
if ($inputFiles.Count -eq 0)
{
Write-Log "WARN: Keine TXT-Dateien im Input-Ordner gefunden." "WARN"
exit 0
}
Write-Log "Anzahl gefundener TXT-Dateien: $($inputFiles.Count)" "INFO"
foreach ($inputFile in $inputFiles)
{
try
{
$fileName = $inputFile.Name $fileName = $inputFile.Name
$fileBaseName = [System.IO.Path]::GetFileNameWithoutExtension($inputFile.Name) $fileBaseName = [System.IO.Path]::GetFileNameWithoutExtension($inputFile.Name)
$fileFullPath = $inputFile.FullName $fileFullPath = $inputFile.FullName
$fileExtension = $inputFile.Extension $fileExtension = $inputFile.Extension
Write-Log "Gefundene Datei: $fileName" "INFO" Write-Log "Verarbeite Datei: $fileName" "INFO"
Write-Log "Extrahierte Belegnummer: $fileBaseName" "INFO" Write-Log "Extrahierte Belegnummer: $fileBaseName" "INFO"
$sqlResult = $null $sqlResult = $null
@@ -425,6 +427,13 @@ try
Send-N8nWebhook -WebhookUrl $config.WebhookUrl -Payload $payload Send-N8nWebhook -WebhookUrl $config.WebhookUrl -Payload $payload
Write-Log "Datei erfolgreich verarbeitet: $fileName" "SUCCESS"
} catch
{
Write-Log "Fehler bei Verarbeitung von Datei '$($inputFile.FullName)': $($_.Exception.Message)" "ERROR"
}
}
Write-Log "Skriptausfuehrung abgeschlossen." "SUCCESS" Write-Log "Skriptausfuehrung abgeschlossen." "SUCCESS"
} catch } catch
{ {