Erweitertes Suchen und Ersetzen
Hallo,
ich habe Buchungssätze die als Ascii/txt Datei ausgegeben und dann in die Buha Software eingelesen werden, in jeder Datei stehen dann mehrere dieser Zeilen:
EUR;H;179,43;9;9999;18-01111;;44444;55555;;;;0;Buchungstext,0;;;;XX;;;;;;;;;;
Um später auf einen Beleg zu verweisen müsste ich an der Stelle wo ich die zwei XX reingeschrieben habe eine
Eindeutige GUID eintragen, die zum Zeitpunkt der Erstellung der Ascii Datei noch nicht bekannt ist.
Die Eindeutige GUID könnte ich in einer separaten Liste mit einer Zusatzinformation RG-Nr und Betrag bzw. Kreditoren/Debitoren Nr. ausgeben lassen.
Es müßte nun ein Vergleich von RG.Nr + Betrag oder RG.Nr. + Kred./Deb. Nr. stattfinden, um dann die GUID im Text der Datei an der Stelle mit den XX einzutragen.
Kann man sowas mit einem erweiterten Suchen+Ersetzen bzw. einem Script lösen ? Wenn ich in das XX Feld vom Branchenprogramm auch nochmal die RG Nr. reinschreiben lassen würde,
wäre es ein einfaches Suchen und Ersetzen, jedoch gibt es mehrere Firmen, deshalb kommt es vor, das Belegnummern doppelt vorhanden sind, deshalb wird eine Abprüfung von zwei Komponenten benötigt.
Ich hoffe jemand hat eine Idee. Danke.
ich habe Buchungssätze die als Ascii/txt Datei ausgegeben und dann in die Buha Software eingelesen werden, in jeder Datei stehen dann mehrere dieser Zeilen:
EUR;H;179,43;9;9999;18-01111;;44444;55555;;;;0;Buchungstext,0;;;;XX;;;;;;;;;;
Um später auf einen Beleg zu verweisen müsste ich an der Stelle wo ich die zwei XX reingeschrieben habe eine
Eindeutige GUID eintragen, die zum Zeitpunkt der Erstellung der Ascii Datei noch nicht bekannt ist.
Die Eindeutige GUID könnte ich in einer separaten Liste mit einer Zusatzinformation RG-Nr und Betrag bzw. Kreditoren/Debitoren Nr. ausgeben lassen.
Es müßte nun ein Vergleich von RG.Nr + Betrag oder RG.Nr. + Kred./Deb. Nr. stattfinden, um dann die GUID im Text der Datei an der Stelle mit den XX einzutragen.
Kann man sowas mit einem erweiterten Suchen+Ersetzen bzw. einem Script lösen ? Wenn ich in das XX Feld vom Branchenprogramm auch nochmal die RG Nr. reinschreiben lassen würde,
wäre es ein einfaches Suchen und Ersetzen, jedoch gibt es mehrere Firmen, deshalb kommt es vor, das Belegnummern doppelt vorhanden sind, deshalb wird eine Abprüfung von zwei Komponenten benötigt.
Ich hoffe jemand hat eine Idee. Danke.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 377751
Url: https://administrator.de/contentid/377751
Ausgedruckt am: 05.11.2024 um 00:11 Uhr
4 Kommentare
Neuester Kommentar
Servus.
Hier ein Skript-Beispiel mit Powershell:
Wobei dann die GUID Liste so aussehen müsste:
Da nach deiner Beschreibung in der CSV Datei keine Header drin sind (steht zumindest nichts davon), werden im Skript einfach den Spalten Zahlen von 1-28 zugewiesen.
Nun musst du nur noch die passende Nummer der jeweiligen Spalte den Variablen in Zeile 11 und 13 zuweisen, und die Eingabe und Ausgabe Dateinamen anpassen, Fertig.
Alternativ könntest du natürlich die GUIDs auch selbst in Powershell erzeugen und in einer Ausgabedatei schreiben.
GUIDs erzeugt man ganz einfach so in Powershell:
Anpassungen gerne via PN gegen Aufwandsentschädigung.
Viel Spaß
Grüße Uwe
Kann man sowas mit einem erweiterten Suchen+Ersetzen bzw. einem Script lösen ?
Kein Problem, obwohl ich das vermutlich eher mit einer Datenbank und einem JOIN sauberer lösen würde, aber wir kennen ja deine Umgebung nicht.Hier ein Skript-Beispiel mit Powershell:
# Buchungsliste
$buchungen = 'D:\Buchungen.csv'
# Liste mit GUIDs
$guidliste = 'D:\GUIDList.csv'
# Beide Listen importieren
$quelle = Import-CSV $buchungen -Delimiter ";" -Header (1..28)
$guiddata = Import-CSV $guidliste -Delimiter ";"
# Zeilen der Buchungen durchlaufen
$quelle | %{
# Kreditoren-Nr (bspw. aus Spalte 5)
$krednr = $_.5
# Rech-Nr (bspw. aus Spalte 6)
$rechnr = $_.6
# Spalte 18 passenden Wert aus GUIDListe zuweisen
$_.18 = $guiddata | ?{$_.RECHNR -eq $rechnr -and $_.KREDNR -eq $krednr} | select -Expand GUID
}
# geänderte Daten in CSV Format zurückkonvertieren, Spalten-Überschriften und Anführungszeichen entfernen und das ganze wieder zurückschreiben.
($quelle | convertto-csv -delimiter ";" -NoType | select -skip 1) -replace '"','' | sc $buchungen
RECHNR;KREDNR;GUID
18-01111;9999;436b4909-23ed-4297-a0b7-f636b6356438
18-01112;9999;8ffe8aca-2dcd-47b1-b780-05f315bb8a9f
18-01113;2222;a7b643fb-1ec0-41ab-99fb-5cbb5a8b8f18
Nun musst du nur noch die passende Nummer der jeweiligen Spalte den Variablen in Zeile 11 und 13 zuweisen, und die Eingabe und Ausgabe Dateinamen anpassen, Fertig.
Alternativ könntest du natürlich die GUIDs auch selbst in Powershell erzeugen und in einer Ausgabedatei schreiben.
GUIDs erzeugt man ganz einfach so in Powershell:
[guid]::NewGuid().guid
Anpassungen gerne via PN gegen Aufwandsentschädigung.
Viel Spaß
Grüße Uwe