Beantwortet csv Export - Herangehensweise?

hvbpb

Mitglied
9. Dezember 2020
29
2
Hallo,

ich möchte gerne in regelmäßigen Abständen (bspw. 5 minuten) eine CSV Bestandsdatei (Aufbau also in etwa : EAN; Bestand;Lagerort;Preis) auf einem entfernten Server (Http PUT + Api Key) ablegen. Wie mache ich das am besten? Ich bin doch bestimmt nicht die Erste, die dieses Problem hat - sondern nur die erste, die in der Suche nicht das richtige Ergebnis gefunden hat. Oder?

Edit: Nach dem ich mit der Ameise auf keinen grünen Ast gekommen bin, habe ich mir ein SQL gebastelt, dass die erforderlichen Daten aus der Datenbank zusammensucht. Dieses wird nun per PowerShell in eine csv Datei exportiert und gegen den Webservice geschmissen. Mit der Aufgabenplanung werde ich das Script dann alle 5 Minuten aufrufen lassen und einmal in der Nacht kommt ein Aufräum-Job vorbei und vernichtet die alten Dateien.

henrike
 
Zuletzt bearbeitet:

blablabundblupppp

Aktives Mitglied
31. Oktober 2019
13
3
Hallo Henrike,


vielen Dank für deine Antwort.

Ich benötige es für einen Export der Kundendaten inkl. BESTIMMTER eigener Felder. Auch als CSV für einen Upload -> FTP zu Weiterverarbeitung.

Die Ameise bringt mich hier nicht wirklich weiter. Ich habe noch nie einen SQL Server ausgelesen. Wie macht man das genau? Auch mit Powershell?


Vielen Dank
 

Oliver PP

Gut bekanntes Mitglied
28. April 2021
131
16
Hallo Henrike,
ich bräuchte auch diesen Vorgang und schließe mich mal an.
Wir müssen künftig auch für ein externes Tool (über FTP oder Dropbox) alle 4-5 Minuten eine CSV zur Verfügung stellen, gefüttert mit Daten aus JTL.
Könnte das gehen mit deiner Lösung?
Gruß
Oliver
 

ple

Sehr aktives Mitglied
20. August 2019
791
158
Also mich würde die batch / powershell mal interessieren auch bzgl. Upload auf dem FTP.
Für den Code wäre ich sehr dankbar.

Gruß
 

hvbpb

Mitglied
9. Dezember 2020
29
2
Was ich oben beschrieben habe läuft gegen einen Webservice (den von zalando connected retail btw) . ftp geht aber auch. Mein SQL sitzt in der Datei zcr_query.sql

Code:
$time = Get-Date -Format ddMMyyyyHHmmss
Invoke-Sqlcmd -ServerInstance xxx\yyy -Username xx -Password xx -InputFile "C:\Users\Public\Documents\zcr_query.sql" |
Export-Csv -NoTypeInformation -Path "C:\Users\Public\Documents\transfer\zcr_$time.csv" -Encoding UTF8 -Delimiter ";"
((Get-Content -path "C:\Users\Public\Documents\transfer\zcr_$time.csv" -Raw) -Replace ',','.') | Set-Content -Path "C:\Users\Public\Documents\transfer\zcr_$time.csv"
Invoke-WebRequest -UseBasicParsing -Uri https://merchants-connector-importer.zalandoapis.com/apikey/zcr_$time.csv -Headers @{ "x-api-key" = "apikey"} -Method PUT -ContentType "text/csv" -InFile "C:\Users\Public\Documents\transfer\zcr_$time.csv"


und ftp (mein eigener), hier Avocadostore, selbes Grundprinzip nur die Datenaufbereitung im sql sieht etwas anders aus. Außerdem wir die Datei auf dem ftp immer wieder überschrieben. Aber auch hier halte ich mir ein Backup vor, dass des Nächtens vernichtet wird.

Code:
$time = Get-Date -Format ddMMyyyyHHmmss
Invoke-Sqlcmd -ServerInstance xx\yy -Username xx -Password xx -InputFile "C:\Users\Public\Documents\avocado_query.sql" |
Export-Csv -NoTypeInformation -Path "C:\Users\Public\Documents\transfer\avocado.csv" -Encoding UTF8 -Delimiter ";"
copy-item "C:\Users\Public\Documents\transfer\avocado.csv"-destination "C:\Users\Public\Documents\transfer\avocado_$time.csv"
# Config
$Username = "user"
$Password = "pw"
$LocalFile = "C:\Users\Public\Documents\transfer\avocado.csv"
$RemoteFile = "ftp://blablabla.bla/avocado.csv"
 
# Create FTP Rquest Object
$FTPRequest = [System.Net.FtpWebRequest]::Create("$RemoteFile")
$FTPRequest = [System.Net.FtpWebRequest]$FTPRequest
$FTPRequest.Method = [System.Net.WebRequestMethods+Ftp]::UploadFile
$FTPRequest.Credentials = new-object System.Net.NetworkCredential($Username, $Password)
$FTPRequest.UseBinary = $true
$FTPRequest.UsePassive = $true
# Read the File for Upload
$FileContent = gc -en byte $LocalFile
$FTPRequest.ContentLength = $FileContent.Length
# Get Stream Request by bytes
$Run = $FTPRequest.GetRequestStream()
$Run.Write($FileContent, 0, $FileContent.Length)
# Cleanup
$Run.Close()
$Run.Dispose()
 
  • Gefällt mir
Reaktionen: ple
Ähnliche Themen
Titel Forum Antworten Datum
Neu Seit Update auf 1.11.4 läuft der CSV Abgleich ins Endlose! JTL-Ameise - Fehler und Bugs 6
Neu Monatsabschlüsse als csv-Datei erstellen lassen? Allgemeine Fragen zu JTL-POS 0
Neu Plugin-Idee: Überkäufe Lieferantenbestände & Lieferzeiten (API/CSV/XML) in Shop & Wawi Plugins für JTL-Shop 2
Neu Falsche URL in Exportformat CSV Schnittstellen Import / Export 4
Neu Export/Import aller Amazon Angebote über die JTL-Ameise JTL-Ameise - Fehler und Bugs 1
Neu JTL-Ameise Export "Artikeldaten WEEE-Richtlinie" - unvollständige Datenmenge JTL-Ameise - Fehler und Bugs 0
Neu JTLShop 5.6: Export -> Weitere Formate: Kampagnenparameter nicht im Artikel->cDeeplink JTL-Shop - Fehler und Bugs 8
Fehler Export PDF Datei / Senden per Email JTL-Wawi 1.11 2
Neu Dropshipping Import/Export von JTL zu JTL User helfen Usern - Fragen zu JTL-Wawi 6
Neu Ameise Export Datev Buchungsdaten - Lieferantenrechnungen fehlen? User helfen Usern - Fragen zu JTL-Wawi 3
Neu Export von nicht zugewiesenen Zahlungen JTL-Ameise - Fehler und Bugs 1
Neu Google shopping export kein Auswahl , ob nur Väter oder Kindartikel exportiert werden sollen Technische Fragen zu Plugins und Templates 2
Ameisen Export Netto-EK in Standardwährung fehlerhaft JTL-Wawi 1.10 0
Neu Datev Kassenbuch Export Allgemeine Fragen zu JTL-POS 0

Ähnliche Themen