Vor Kurzem haben wir einen Artikel über die Verwendung von Quartz.NET-Bibliothek mit unseren Berichten im Kontext der Automatisierung von Aufgaben, die mit den Berichten verbunden sind, veröffentlicht.
Außerdem, man muss das Paket Node Schedule für Hinzufügen und Verwendung vom Scheduler installieren.
Was ist Node Schedule?
Node Schedule ist ein flexibler Aufgabeplaner für Node.js, der auf cron-Syntax basiert. Der Scheduler verwirklicht das Ausführen der Aufgaben mit optionalen Wiederholregeln auf Grund der Zeit, nicht der Intervalle. Node Schedule wird, zum Beispiel, für Senden von E-Mails mit Berichten, routinemäßige Datenbankwartung oder Erfüllen der Aufgaben periodischer Datenanalyse verwendet. Mehr über den Scheduler können Sie hier erfahren.Erstellen vom Projekt
Zuerst erstellen wir ein Projekt unter Steuerung der JavaScript-Plattform. Demzufolge, verwenden wir in diesem Fall den JS-Berichtsgenerator – einen breiten Satz von Berichtskomponenten, der auf nativer JavaScript entwickelt wurde. Sie können unsere Software einfach in Benutzer-Anwendung integrieren, dafür muss man nur dieses npm-Paket installieren.Installation der Pakete
Für die Arbeit mit Berichten muss man das Paket stimulsoft-reports-js, und für die Arbeit mit Dashboards – das Paket stimulsoft-dashboards-js installieren.Außerdem, man muss das Paket Node Schedule für Hinzufügen und Verwendung vom Scheduler installieren.
Festlegen von Aufgaben und Einstellung vom Zeitplan
Kommen wir gleich zum Hauptpunkt unseres Artikels. Also, wir haben Beispiel des Exports vom Bericht in PDF ausgewählt. Dann legen wir das Ausführen des Exports um 10:00 täglich fest:// Node Schedule module
var schedule = require("node-schedule");
console.log("Node Schedule loaded");
// Stimulsoft Reports module
var Stimulsoft = require("stimulsoft-reports-js");
console.log("Stimulsoft Reports loaded");
// Creating new report
var report = new Stimulsoft.Report.StiReport();
console.log("New report created");
// Loading report template
report.loadFile("SimpleList.mrt");
console.log("Report template loaded");
// Run the task every day at 10:00
var rule = new schedule.RecurrenceRule();
rule.hour = 10;
rule.minute = 0;
console.log("Rule for the task created");
// Scheduling the task
schedule.scheduleJob(rule, function () {
// Renreding report
report.renderAsync(() => {
console.log("Report rendered. Pages count: ", report.renderedPages.count);
// Export to PDF
report.exportDocumentAsync((pdfData) => {
// Converting Array into buffer
var buffer = Buffer.from(pdfData);
// File System module
var fs = require("fs");
// Saving string with rendered report in PDF into a file
fs.writeFileSync("./SimpleList.pdf", buffer);
console.log("Rendered report saved into PDF-file.");
}, Stimulsoft.Report.StiExportFormat.Pdf);
});
});
So haben wir die Automatisierung des Prozesses angezeigt, und derzeit wird der Bericht jeden Tag um 10:00 in PDF-Datei umgewandelt und auf die Platte in diesem Format gespeichert.