Zum Hauptinhalt springen

Gantt auf dem Server verwenden

In einigen Fällen benötigen Sie möglicherweise eine spezialisierte Logik von dhtmlxGantt separat vom Gantt-Diagramm, zum Beispiel:

  • Wenn Sie ein Update einer Aufgabe aus einer anderen Quelle erhalten (z. B. von der mobilen App) und die Auto-Scheduling durchführen müssen, um die Zeitplanung der verwandten Aufgaben zu aktualisieren
  • Wenn mehrere Benutzer derselben App gleichzeitig Änderungen vornehmen können und Sie den Zeitplan synchronisieren und validieren müssen
  • Wenn Sie Berechnungen durchführen und den Zeitplan mit Ihrem Servercode analysieren müssen

Aus diesem Grund bieten wir eine separate Build von dhtmlxGantt an, die serverseitig in der Node.js-Umgebung laufen kann.

DHTMLX Gantt für Node.js hat die gleiche Funktionalität wie die Commercial/Enterprise/Ultimate-Pakete, was bedeutet, dass die Methode Gantt.getGanttInstance verfügbar ist und das Erstellen einer neuen Instanz eines Gantt ermöglicht.

Nutzungsbedingungen

Das Node.js-Servermodul von DHTMLX Gantt wird als Add-on-Paket zur clientseitigen Version von Gantt bereitgestellt. Daher können Sie die Node.js-Build gegen eine zusätzliche Gebühr hinzufügen, während Sie Gantt unter jeder kommerziellen Lizenz erwerben (Individual, Commercial, Enterprise). Die Ultimate Lizenz umfasst es standardmäßig.

Falls Sie bereits die Hauptbibliothek von dhtmlxGantt erworben haben, können Sie das Node.js-Modul separat erwerben und wir senden Ihnen einen Link zur serverseitigen Version von Gantt.

Versionierung

dhtmlxGantt verwendet für das Node.js-Paket dasselbe Versionsnummerierungsschema wie für die Browser-Pakete (zum Beispiel ist v7.0.0 die erste Version von Gantt für ein Node.js-Paket).

Hinweis

Wir advi s e Ihnen, dieselbe Version der Gantt-Bibliotheken auf der Client-Seite wie auf der Server-Seite zu verwenden.

Die Bibliothek zum Projekt hinzufügen

Sie können dhtmlxGantt für Node.js als lokales Paket installieren:

"dependencies": {
"@dhtmlx/gantt-node": "file:../../gantt_7.0.0_node"
...
}

Oder Sie können dhtmlxgantt.node.js direkt aus Ihrem Code importieren, wie folgt:

import { Gantt } from "@dhtmlx/gantt-node";

const gantt = Gantt.getGanttInstance({
plugins:{
auto_scheduling: true,
},
config: {
work_time: true,
duration_unit: "hour",
auto_scheduling: true,
auto_scheduling_strict: true,
auto_scheduling_initial: false
},
data: {
tasks: [
{ id: 1, text: "Project #1", type: "project", parent: 0 },
{ id: 2, start_date: "05-04-2020 00:00", text: "Task #1", duration: 1,
parent: 1, type: "task" },
{ id: 3, start_date: "05-04-2020 00:00", text: "Task #2", duration: 3,
parent: 1, type: "task" },
{ id: 4, start_date: "05-04-2020 00:00", text: "Task #3", duration: 3,
parent: 1, type: "task" },
{ id: 5, start_date: "05-04-2020 00:00", text: "Task #4", duration: 3,
parent: 1, type: "task" },
{ id: 6, start_date: "05-04-2020 00:00", text: "Task #5", duration: 1,
parent: 1, type: "task" }
],
links: [
{ id: 1, source: 1, target: 2, type: "0" },
{ id: 2, source: 2, target: 3, type: "0" },
{ id: 3, source: 3, target: 4, type: "0" },
{ id: 4, source: 4, target: 5, type: "0" },
{ id: 5, source: 5, target: 6, type: "0" }
]
},
events:{
onAfterAutoSchedule: function(taskId, updatedTasks) {
console.log("Following tasks were auto scheduled:");
console.table(updatedTasks.map((taskId) => {
return {
id: taskId,
text: this.getTask(taskId).text
};
}));
},
onParse: function() {
console.log("Loaded data:")
console.table(this.serialize().data);
},
onGanttReady: () => {
console.log("Running dhtmlxGantt on the backend");
}
}
});

console.table(gantt.serialize());

Einschränkungen

dhtmlxGantt bietet dieselbe Kern-API für Node.js wie die Browser-Version.

Allerdings funktionieren einige Methoden, die in der clientseitigen Version von Gantt verfügbar sind, möglicherweise nicht oder sind in der Server-Bibliothek nicht definiert, nämlich:

Hinweis

Die Evaluierungsversion von dhtmlxGantt für Node.js hat eingeschränkte Funktionalität, die das Laden von bis zu 75 Aufgaben oder Verknüpfungen erlaubt. Wenn Sie versuchen, einen größeren Datensatz zu laden, werden nur die ersten 75 Elemente geladen.

Need help?
Got a question about the documentation? Reach out to our technical support team for help and guidance. For custom component solutions, visit the Services page.