Nach Migration keine Daten aus Extrafiles

Hallo Leute,
ich hab folgendes Problem. Nach der Migration von Dolibarr von unserer Syno NAS auf einen Ubuntu Server stehen mir leider keine Daten zur Verfügung, die in dem Modul „Extrafields“ definiert wurden. Es handelt sich hierbei nicht um die ODT Variante sondern es wurde php verwendet. Ich weiß nicht, wo ich suchen muss, dass sich das System wieder die Extrafileds bei Angebot und Rechnung zieht.
Vielen Dank für eure Hilfe.

Die gesamte Datenbank wurde nicht so weit migriert, wie es scheint.
Wenn du das NAS jetzt noch mit dolibarr hast, kann die Datenbank extrahiert werden.

Zudem Tip von Abdul ist noch etwas anzumerken.
Sollte auf dem neuen Server Dolibarr neu installiert worden sein und die Extrafelder nicht zu 100% die selben Parameter haben, aber den selben Feldnamen für die Datenbank, dann würden die alten Daten aus der Datenbank gelöscht.
Dieses Drama habe ich selber schon erlebt.
Darum ist es gut, wenn die „alte“ Datenbank noch auf dem vorherigen Server liegt.

Ich möchte das Problem nochmal näher spezifizieren. Die „Extrafields“ sind zwar da und auswählbar bzw. alle Daten sind vorhanden. Nur sie werden im PDF nicht angedruckt. Das ist das Dilemma

Dann liegt das „Dilemma“ an der FPDF-Datei. Ist es das „alte“ FPDF-Script oder ist es ein neues?
Soweit ich mich noch erinnern kann, muss der Pfad in dem Script angegeben werden.
Der lautet:
require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
Die Pfadangaben sind im Script ziemlich weit oben. Einfach nach „DOL_DOCUMENT_ROOT“ im Script suchen.

Ich versuche das gerade zu analysieren.
Die Pfadangaben sind in der Datei ziemlich weit oben und ja, da ich von einer Dolibarr-Version 9.0.3 komme, ist es ein altes Template, das wohl auf der Vorlage „azur“ basiert. Ich habe inzwischen nach 18.0.0 migriert. Auch dort funzt das Template nicht, wenn ich jedoch mit „Cyan“ als Vorlage arbeite, wird mir was aus der Tabelle „extrafields“ angedruckt, aber noch nicht das was ich will. Jetzt sollte man nur noch php programmieren können und alles wird gut.

Ist den die Pfad zu extrafields.class.php dabei?
Andere Pfade, aus denen Daten eingefügt werden sollen, müssen ebenfalls hinzugefügt werden.

Ja, die Pfade sind alle da bzw. ich habe an dem alten Template nichts verändert. Der konkrete Fall ist folgender: Der Kunde hat einen zentralen Firmensitz und verschiedene Objekte. In dem Template für Angebote ist die Objektanschrift als Extrafield definiert. Auswählen funktioniert, die Daten sind alle da.
Für mich scheint es so, dass diese Abfrage nicht mehr funktioniert:
// Adresse aus DB abfragen
// llx_propal → rowid == llx_propal_extrafields → fk_object
// llx_propal_extrafields → fk_object_address == llx_socpeople → rowid
// llx_socpeople → rowid == llx_socpeople_extrafields → fk_object

		$conn = new mysqli($this->sqlhost, $this->sqluser, $this->sqlpass, $this->sqldb, $this->sqlport);
		mysqli_set_charset($conn,"utf8");
		// Basisdaten zum Objekt aus der DB abfragen
		$sqlquery = "SELECT * FROM llx_socpeople WHERE rowid = ".$object->array_options['options_fk_object_address'];
		$result = $conn->query($sqlquery);
		$row = mysqli_fetch_array($result);
		$objname = $row["lastname"];
		$objanschrift = $row["address"];
		$objort = $row["zip"]." ".$row["town"];
		// Extrafields zum Objekt abfragen
		$sqlquery = "SELECT * FROM llx_socpeople_extrafields WHERE fk_object = ".$row["rowid"];
		$result = $conn->query($sqlquery);
		$row = mysqli_fetch_array($result);
		$objbbid = $row["bb_obj"];
		$objcustid = $row["cust_obj"];

Aber warum weiß ich eben nicht.

  1. Ist das Schnipsel aus der FPDF Rechnungsvorlage?
  2. Sind die Feldbezeichnungen und Abfragen genau mit den Namen in der Datenbank übereinstimmend?

Genauer gesagt aus der Angebotsvorlage, aber das ist mit der Rechnungsvorlage identisch.
Gute Idee! Ich checke mal, ob die Werte in der Datenbank auch noch so heißen.
Die ursprünglichen Vorlagen hat ein ehemaliger Mitarbeiter erstellt, auf den wir keinen Zugriff mehr haben :frowning:

So, ich habe die Ursache gefunden, warum die Datenbank-Abfrage nicht mehr funktioniert hat. Das PHP-Template, das die PDFs generiert hat sich als sqlhost die IP-Adresse des Hosts „irgendwo her“ gezogen. Nachdem ich den Parameter sqlhost auf „localhost“ geändert habe, hat die Abfrage wieder funktioniert.