Klaus1: Dein PHP Skript

Beitrag lesen

Hallo,

Da wäre zu klären, ob die Dateien wirklich vorhanden waren.

Ich kann sicherstellen, dass die Dateien immer vorhanden sind, da ich während meiner Fehleranalyse immer jeden einzelnen Schritt überpüfe, d.h. bevor ich den Import starte, habe ich bereits manuell geprüft ob die Dateien vorhanden sind.

(Ich kann nicht erkennen, warum Du den Dateiname fehlerträchtig neu zusammenbaust, statt $file zu nehmen. mysqli_real_escape_string() fehlt.)

Das liegt daran, dass mit jedem Export aus SAP nicht nur eine sondern 3 Dateien erstellt werden, die zusammengehören und zusammen import werden müssen.

Bsp.:

t_company_1.csv
t_kopf_1.csv
t_position_1.csv
t_company_2.csv
t_kopf_2.csv
t_position_2.csv

Ich hole mir also den Zeitspempel von jeder t_company_x.csv und weiß damit, wie die korrespondierenden t_kopf und t_position heißen.

    if ( ! $erg ) {
      echo 'Import-Error: " . mysqli_error( $verbindung );
      echo '<pre>';
      echo "Datei: '$file'" . PHP_EOL;
      echo "Abfrage $abfrage "  . PHP_EOL;
      $shell = 'ls -l ' . escape_shell_arg( $file );
      echo `$shell` . PHP_EOL;
      echo '</pre>';
    }

(Wenn es nicht geht will man ja wissen, warum...)

echo mysqli_error($verbgindung);

zeigt die Fehlermeldung und auch den Dateinamen. Einzig die Abfrage könnte ich zusätzlich noch ausgeben lassen.

Du baust:

$importdateien .= "t_company_".$zeitstempel.".csv,t_position_".$zeitstempel.".csv,t_kopf_".$zeitstempel.".csv,";

Die Verwendung habe ich tatsächlich weggekürzt. Wird ausschließlich hier verwendet:

	// Protokolleintrag erstellen
	$wann = date("Y-m-d, H:i:s");
	$abfrage = "insert into importprotokoll (wer,wann,was) values ('$pnr','$wann','$importdateien')";
	$erg = mysqli_query($verbindung,$abfrage);

Das Error-Handling beim Verbindungsaufbau ist nicht vorhanden oder nicht sichtbar.

Habe ich auch rausgekürzt, da ich den Aufbau der DB-Verbindung (und des Errorhandlings) für nicht relevant hielt.

Was ich noch immer nicht verstehe: Ein Computer würfelt nicht. Er läuft immer einen vorgegebenen Pfad ab. Ohne Ausnahme. Das SAP exportiert die Dateien immer auf dieselbe Art, immer im selben Format. Die Dateien sind nach jedem Export da. Ohne erkennbaren Unterschied. Weder beim Namen, noch bei den Rechten, noch bei Struktur oder Inhalt. Das Script versucht unverändert die Dateien zu importieren. Bei 5 Versuchen gibt es immer dieselbe Fehlermeldung, beim 6. Versuch klappt es. Manchmal klappt es direkt (immer seltener), manchmal beim 2. Versuch, manchmal erst beim 8. Eine Regel habe ich bisher nicht erkennen können. Getestet habe ich auch: Die Zeit zwischen Export und Import, SAP abmelden, Webseite anmelden, Browser neustarten vor Import.

LG Klaus