Linux.FTP-Sync: Unterschied zwischen den Versionen

Aus OrgaMon Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(20 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
== crontab ==
== Dateiformat auf dem FTP-Server ==
 
[[RF1-I]]
'''Dateiname'''
TTMMJJ_NNNN.CSV
'''Spalteninhalte'''
 
[[Bild:Ftp-sync-fileformat.png]]


<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>
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 20: 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 ==
 
<code>
*/5  *  *  *  *  fils-ftp  php /home/ftpheli/ftp_heli.php5
</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 ==


wird vom OrgaMon übernommen!
CSV-Datei                  Datenbank
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.  
---------------------------------------------------
Der CALIBRATIONID ist nach folgender Regel zu berechnen:
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