rippchen
Goto Top

Powershell Workflow, CSV Stapelverarbeitung Problem

Hallo,

ich nutze folgendes Skript:

workflow TEST  {

$folder = 'C:\Daten Bearbeitung\Import'  
$out = 'C:\Daten Bearbeitung\Export\Gesamte Daten.csv'  

gci $folder -Filter *.csv -recurse | %{
    $raw = ((gc $_.FullName) | select -Skip 7)
    $csv = $raw[0..($raw.GetUpperBound(0)-1)]| ConvertFrom-CSV -Delimiter ";" -Header "Car","ID","TimeStamp","Note","PublicationTimeStamp","ModificationTimeStamp"  
   
 parallel {  
   
    $csv | %{$_."TimeStamp" = get-date $_."Timestamp" -Format 'dd-MM-yyyy HH:mm:ss'}   
    $csv | %{$_."PublicationTimeStamp" = get-date $_."PublicationTimeStamp" -Format 'dd-MM-yyyy HH:mm:ss'}   
    $csv | %{$_."ModificationTimeStamp" = get-date $_."ModificationTimeStamp" -Format 'dd-MM-yyyy HH:mm:ss'}   
    
    }
$csv | export-csv $out -Append -Delimiter ";" -Notype -Encoding UTF8      

}
}


Ich dachte eigentlich, dass man die Workflow Funktion so nutzen kann. Daher habe ich aus meinem eigentlichen Skript diesen parallelen Workflow gebastelt.

Beim Starten des Workflows erhalte ich folgende Fehlermeldung:

PS C:\Users\Laptop> test
Der Workflow "test" konnte nicht gestartet werden: Folgende Fehler traten bei der   
Verarbeitung der Workflowstruktur auf:
'DynamicActivity': Überprüfungsfehler bei der privaten Implementierung von Aktivität   
'1: DynamicActivity':   [5, 1]: Unerwartetes Schlüsselwort "parallel".  
In Zeile:418 Zeichen:21
+ ...             throw (New-Object System.Management.Automation.ErrorRecor ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (System.Manageme...etersDictionary:PSB 
   oundParametersDictionary) , RuntimeException
    + FullyQualifiedErrorId : StartWorkflow.InvalidArgument


Google konnte mir leider nicht weiterhelfen.


Ich vermute, dass der Workflow so gar nicht funktionieren kann, da die Umwandlung vom Skript zu einem Workflow nicht so einfach zu handhaben ist. Möglich ist auch, dass er die Variablen nicht mehr erkennt. Ich komme leider nicht weiter. Auch nicht nach dem Lesen zahlreicher howtos und Workflow Tutorials.


Kann mir jemand bitte mein Skript so umbauen, dass es funktioniert und ggf. Kommentare hinzufügen, sodass ich verstehe was verändert wurde und wie es funktioniert?


Vielen Dank im Voraus.

VG
Rippchen

Content-Key: 320281

Url: https://administrator.de/contentid/320281

Ausgedruckt am: 19.03.2024 um 03:03 Uhr

Mitglied: 131381
131381 08.11.2016 aktualisiert um 15:58:43 Uhr
Goto Top
Freds löschen um sie dann wieder neu einzustellen damit sie oben erscheinen, damit erreichst du hier eher das Gegenteil face-confused

Wenn du die Threads zu Workflows richtig gelesen hättest, hättest du deinen Fehler entdeckt.

Hier ein simpler Workflow mit einer parallel verarbeitenden Schleife
workflow Test {
    param([string[]]$computers)
    
    foreach -parallel -throttle 5 ($computer in $computers){
        $computer
    }
}
Test -computers (1..100 | %{"Computer_$_"})  
Du hast das oben komplett an der falschen Stelle platziert. Du willst ja über die CSV-Dateien eine Schleife bauen, und diese muss ja parallel laufen.

Btw. parallel in ein und dasselbe File zu schreiben wird fehlschlagen warum? das kannst du dir sicherlich selber schon denken...

Wenn du was fertiges haben willst: Für'n Fuffy mach ich dir das gerne.

Gruß

VG
Rippchen
Rippchen gönn ich mir jetzt :-P
Mitglied: Rippchen
Rippchen 10.11.2016 um 09:39:30 Uhr
Goto Top
Danke für die Antwort face-smile

Ich probiere es mal so, ansonsten komme ich auf den Fuffi zurück :D

Ich hoffe es hat gemundet.

VG
Rippchen
Mitglied: Rippchen
Rippchen 10.11.2016 um 14:54:38 Uhr
Goto Top
Hallo,
ich habe mir folgende Datenverarbeitungsreihenfolge überlegt. Ist dieses so mit dem Workflow machbar?

parallele datenverarbeitung

Das mit dem Export klappt nicht hast recht. Wie ist es, wenn man es wie in dem Diagramm über einen Puffer regelt, der im Arbeitsspeicher liegt ?

VG
Mitglied: 131381
131381 10.11.2016 um 14:59:27 Uhr
Goto Top
wenn man es wie in dem Diagramm über einen Puffer regelt, der im Arbeitsspeicher liegt ?
Kann man machen, Kost halt einiges an Arbeitsspeicher.
Mitglied: Rippchen
Rippchen 10.11.2016 um 15:17:26 Uhr
Goto Top
Hier nochmal meine Rechnerdaten:

I7 2600k

32GB Arbeitsspeicher + (virtueller Speicher)


Geht das mit dem von dir gezeigten Ansatz von oben oder wäre ich da auf dem Holzweg?`

VG
Mitglied: 131381
131381 10.11.2016 aktualisiert um 15:20:20 Uhr
Goto Top
Geht alles, du musst dich halt damit auseinandersetzen, von nix kütt halt nix face-smile