Linux.FTP-Sync: Unterschied zwischen den Versionen

Aus OrgaMon Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(18 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
== Dateiformat auf dem FTP-Server ==
== Dateiformat auf dem FTP-Server ==


 
[[RF1-I]]
'''Dateiname'''
'''Dateiname'''
   
   
Zeile 11: Zeile 11:
[[Bild:Ftp-sync-fileformat.png]]
[[Bild:Ftp-sync-fileformat.png]]
   
   
Ich stimme hiermit zu, dass im Echtbetrieb die Spaltenüberschriften in der CSV weggelassen werden dürfen. Mindestanforderung ist dann jedoch eine neue Spalte (Spalte 1) in der die Format-Revisions-Nummer steht (in diesem Fall die "R1.000"). So können wir im laufenden Produktiv-Betrieb gleitend von einem Format auf ein anderes übergehen. Andernfalls sehe ich Probleme.
mein Angebot ist auch in der Anlage.
== crontab ==


<code>
'''Beispieldatei'''
*/5  *  *  *  *  fils-ftp  /home/fils-ftp/ftp-sync.sh
</code>


== ftp-sync.sh ==
ACHTUNG: Die Zeile mit den Spaltenüberschriften werden im Echtbetrieb nicht erzeugt!


<code>
<code>
#!/bin/bash
FormatRevision;Datum;Uhrzeit;Zaehlertyp;Pruefwerkzeug;Membranhersteller;Chargennummer;fortlNummer;Station_Pruefkammer;Kammer_Glocke;Messwert;Grenzwert;Pruefergebnis<br>
syslog "FTP-Sync running"
R1.000;22.02.2006;12:34;ABCDEFGHIJKLMNOPQRST;1A2B3C4D5E6F7G8;UVWX;1234;9999;1;A;0.123456;0.120000;12<br>
php /home/fils-ftp/ftp-sync.php5
R1.000;20.07.06;16:25;G4 DN 25 D 250;000000000000;M;317;1431;2;2;+0.1815001E-05;+1.0000010E-04;00
</code>
</code>


== ftp-sync.php5 ==
== ftp_heli.php5 ==


FTP-Funktions Referenz: http://de3.php.net/manual/de/ref.ftp.php<br>
FTP-Funktions Referenz: http://de3.php.net/manual/de/ref.ftp.php<br>
Eine PHP Script lädt die CSV Datei vom FTP-Server der Prüfmaschine in ein lokales Verzeichnis. Nach der Übertragung wir die Datei vom FTP-Server gelöscht. Das lokale Ablageverzeichnis muss für den OrgaMon sichtbar sein.


<code>
<code>
Zeile 39: Zeile 32:
  3) Durchlaufen der Variable und im Falle das die Datei älter als 3 Sekunden ist:
  3) Durchlaufen der Variable und im Falle das die Datei älter als 3 Sekunden ist:
   a) Grösse der Datei bestimmen
   a) Grösse der Datei bestimmen
   b) Datei downloaden
   b) Datei ins lokale Dateisystem downloaden
   c) Grösse der Datei im lokalen Filesystem bestimmen
   c) Grösse der Datei im lokalen Filesystem bestimmen
   d) Wenn a=c die Datei auf dem FTP-server löschen
   d) Wenn a=c die Datei auf dem FTP-Server löschen
</code>
</code>


== Übernahme in die Datenbank ==
== crontab ==


wird vom OrgaMon übernommen!
<code>
im Autostart-Moment werden Verzeichnis-Inhalte des FTP-down-Sync abgesaugt und in das JJJ-MM-TT Verzeichnis verschoben, dabei ist das innere Datum aus der Datei zu nehmen.  
*/5  *  *  *  *  fils-ftp  php /home/ftpheli/ftp_heli.php5
Der CALIBRATIONID ist nach folgender Regel zu berechnen:
</code>
 
== Übernahme der Daten in die Datenbank ==
 
Das CSV-Quellverzeichnis (OrgaMon muss lese/schreib und verzeichnis-Anlege-Rechte haben) wird im Systemparamter:
 
AuftragsObjektPfad=I:\Kundenumgebung\heli\Rohstoffe\ftp_area\
 
angegeben. Dabei werden alle Dateien verarbeitet, die der Maske *.CSV entsprechen! Dies wird vom OrgaMon automatisch im Rahmen der Tagwache übernommen. Oder zu jeder Zeit sobald der Abfrage-Arbeitsplatz gestartet wird.
 
AuftragsAblagePfad=K:\Sicherung\heli\
 
Nach der Übernahme der CSV-Dateien werden diese in ein "~AuftragsAblagePfad~\Ablage" Verzeichnis verschoben um damit zu signalisieren, dass diese Datei bereits verarbeitet wurden.<br>
Im Problemfall (z.B. "falsche Revisionsnummer", "Wert ist bereits in der Datenbank") wird eine CSV in das "~AuftragsAblagePfad~\Unlesbar" Verzeichnis verschoben, laufen hier Dateien auf, so muss nach der Ursache in der CSV Datei oder der Datenbank gesucht werden.<br>
 
== Zuordnungen der Felder in die Datenbank ==
 
CSV-Datei                 Datenbank
---------------------------------------------------
FormatRevision            -
Datum+Uhrzeit              CALIBRATIONS.FIELD_DATE
Zaehlertyp                METERS.METERDATA2
Preufwerkzeug              CALIBRATIONS.EQUIPMENTID
Membranhersteller          METERS.METERDATA4
Chargennummer              METERS.METERDATA5
fortlNummer                METERS.SERIALNUMBER
Station_Pruefkammer        METERS.POSITIONNUMBER
Kammer_Glocke              METERS.METERDATA6
Messwert                  TESTS.METERPLOSS
Grenzwert                  TESTS.METERMAXPLOSS
Pruefergebnis              METERS.METERDATA9
AUTO-QUELLE                Datenbank
------------------------------------------------------
GEN_CALIBRATIONID          CALIBRATIONS.CALIBRATIONID

Aktuelle Version vom 5. Dezember 2006, 15:44 Uhr

Dateiformat auf dem FTP-Server

RF1-I Dateiname

TTMMJJ_NNNN.CSV


Spalteninhalte


Beispieldatei

ACHTUNG: Die Zeile mit den Spaltenüberschriften werden im Echtbetrieb nicht erzeugt!

FormatRevision;Datum;Uhrzeit;Zaehlertyp;Pruefwerkzeug;Membranhersteller;Chargennummer;fortlNummer;Station_Pruefkammer;Kammer_Glocke;Messwert;Grenzwert;Pruefergebnis
R1.000;22.02.2006;12:34;ABCDEFGHIJKLMNOPQRST;1A2B3C4D5E6F7G8;UVWX;1234;9999;1;A;0.123456;0.120000;12
R1.000;20.07.06;16:25;G4 DN 25 D 250;000000000000;M;317;1431;2;2;+0.1815001E-05;+1.0000010E-04;00

ftp_heli.php5

FTP-Funktions Referenz: http://de3.php.net/manual/de/ref.ftp.php
Eine PHP Script lädt die CSV Datei vom FTP-Server der Prüfmaschine in ein lokales Verzeichnis. Nach der Übertragung wir die Datei vom FTP-Server gelöscht. Das lokale Ablageverzeichnis muss für den OrgaMon sichtbar sein.

1) Login in den FTP Server
2) Auflisten aller Dateien *.csv in eine Variable
3) Durchlaufen der Variable und im Falle das die Datei älter als 3 Sekunden ist:
 a) Grösse der Datei bestimmen
 b) Datei ins lokale Dateisystem downloaden
 c) Grösse der Datei im lokalen Filesystem bestimmen
 d) Wenn a=c die Datei auf dem FTP-Server löschen

crontab

*/5  *  *  *  *  fils-ftp  php /home/ftpheli/ftp_heli.php5

Übernahme der Daten in die Datenbank

Das CSV-Quellverzeichnis (OrgaMon muss lese/schreib und verzeichnis-Anlege-Rechte haben) wird im Systemparamter:

AuftragsObjektPfad=I:\Kundenumgebung\heli\Rohstoffe\ftp_area\

angegeben. Dabei werden alle Dateien verarbeitet, die der Maske *.CSV entsprechen! Dies wird vom OrgaMon automatisch im Rahmen der Tagwache übernommen. Oder zu jeder Zeit sobald der Abfrage-Arbeitsplatz gestartet wird.

AuftragsAblagePfad=K:\Sicherung\heli\

Nach der Übernahme der CSV-Dateien werden diese in ein "~AuftragsAblagePfad~\Ablage" Verzeichnis verschoben um damit zu signalisieren, dass diese Datei bereits verarbeitet wurden.
Im Problemfall (z.B. "falsche Revisionsnummer", "Wert ist bereits in der Datenbank") wird eine CSV in das "~AuftragsAblagePfad~\Unlesbar" Verzeichnis verschoben, laufen hier Dateien auf, so muss nach der Ursache in der CSV Datei oder der Datenbank gesucht werden.

Zuordnungen der Felder in die Datenbank

CSV-Datei                  Datenbank
---------------------------------------------------
FormatRevision             -
Datum+Uhrzeit              CALIBRATIONS.FIELD_DATE
Zaehlertyp                 METERS.METERDATA2
Preufwerkzeug              CALIBRATIONS.EQUIPMENTID
Membranhersteller          METERS.METERDATA4
Chargennummer              METERS.METERDATA5
fortlNummer                METERS.SERIALNUMBER
Station_Pruefkammer        METERS.POSITIONNUMBER
Kammer_Glocke              METERS.METERDATA6
Messwert                   TESTS.METERPLOSS
Grenzwert                  TESTS.METERMAXPLOSS
Pruefergebnis              METERS.METERDATA9

AUTO-QUELLE                Datenbank
------------------------------------------------------
GEN_CALIBRATIONID          CALIBRATIONS.CALIBRATIONID