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. Heute setzen wir das Thema der Automatisierung fort und erzählen über die Arbeit von unseren Berichten mit dem Planer Node Schedule.

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.
By using this website, you agree to the use of cookies for analytics and personalized content. Cookies store useful information on your computer to help us improve efficiency and usability. For more information, please read the privacy policy and cookie policy.