2017-03-24 5 views
0

Ich bin nicht sehr technisch, also bitte ertragen Sie mit mir, während ich versuche, das Problem zu erklären. Wir haben einen täglichen geplanten Job, der ein SAS-Programm auf einem Unix-Server startet. Das Programm analysiert Daten und spuckt eine CSV-Datei aus, die auf dem Server gespeichert und dann per E-Mail an mich gesendet wird. Ich lade die Datei dann manuell von der E-Mail herunter und lade sie in ein Dienstprogramm hoch, um die Datei zu verarbeiten. Ich suche nach einer Möglichkeit, die manuellen Schritte zu umgehen und stattdessen das SAS-Programm die CSV-Datei direkt in einen Ordner auf dem Server für das Dienstprogramm zur Dateiverarbeitung hochladen.Verschieben CSV-Datei auf andere Server mit SAS

Da also die CSV-Datei auf dem Server gespeichert ist, mit dem SAS verbunden ist (/user/folder/file.csv), kann ich diese Datei in einen anderen Ordner (/ Inbox) auf einem anderen Server (server2.test) transportieren .com)?

Hier ist, was ich bisher habe, aber ich denke, ich bin etwas fehlt, weil die Datei nicht wird es in den Ordner zu machen:

proc import file="/user/folder/file.csv"  
      dbms=csv out=file1 replace;  
run; 

filename outdir ftp "/inbox" DIR 
        host="server2.test.com" 
        user="username" pass="pwd"; 

data _null_; 
    file outdir(file1); 
    put file1; 
run; 

Dank!

Mike

Antwort

0

Sie sind in der Nähe. Ich würde einen Dateinamen für das Lesen der CSV-Datei und einen für das Schreiben auf den FTP-Server definieren.

filename in "/user/folder/file.csv"; 
filename outdir ftp "/inbox" DIR 
       host="server2.test.com" 
       user="username" pass="pwd" 
; 

Kopieren Sie dann die Datei.

data _null_; 
    infile in; 
    file outdir("file.csv"); 
    input; 
    put _infile_; 
run; 
+0

Dank Tom. Ich habe das Programm ausgeführt und es hatte keine Fehler, aber wenn ich eine Verbindung mit dem Server mit Filezilla, sehe ich nicht die Datei im Ordner Posteingang gespeichert. Irgendeine Idee, warum es nicht funktionieren würde? – mrfreda

+0

Die Notizen aus dem Datenschritt sollten Ihnen zeigen, wie viele Zeilen gelesen und geschrieben wurden. Können Sie mit FileZilla eine solche Datei auf diesem Server erstellen? Vielleicht versuchen Sie, an einen Ort zu schreiben, an dem Sie keine Schreibberechtigung haben. Auch wenn Sie die Syntax für die 'FILE'-Anweisung wie in Ihrem Beispiel ohne die Anführungszeichen verwendet haben, dann hat SAS möglicherweise die' .dat'-Erweiterung der von ihm geschriebenen Datei hinzugefügt. – Tom

+0

Die Notizen sagten, dass die Datensätze erfolgreich gelesen und geschrieben wurden: HINWEIS: 5 Datensätze wurden von der INF IN gelesen. Die minimale Datensatzlänge war 34. Die maximale Datensatzlänge war 106. HINWEIS: Insgesamt 5 Datensätze wurden in die Dateibibliothek OUTDIR geschrieben. Die minimale Satzlänge war 34. Die maximale Satzlänge war 106. HINWEIS: 5 Datensätze wurden in die Datei OUTDIR ("file.csv") geschrieben. Die minimale Satzlänge war 34. Die maximale Datensatzlänge war 106. – mrfreda

Verwandte Themen