Недавно мы опубликовали статью об использовании библиотеки Quartz.NET с нашими отчетами в контексте автоматизации задач, связанных с отчетностью. Сегодня мы продолжим тему и расскажем о работе наших отчетов с планировщиком Node Schedule.

Что такое Node Schedule?

Node Schedule – это гибкий планировщик задач для Node.js, основанный на синтаксисе cron. Планировщик осуществляет выполнение задач с необязательными правилами повторения на основе времени, а не интервалов. Node Schedule используется, например, для отправки электронных писем с отчетами, регулярного обслуживания базы данных или выполнения задач периодического анализа данных. Подробнее о планировщике - здесь.

Создание проекта

Сначала мы создаём проект под управлением платформы JavaScript. Соответственно, использовать будем JS-генератор отчетов - широкий набор компонентов отчетности, разработанный на чистом JavaScript. Его легко интегрировать в пользовательское приложение, установив соответствующий npm-пакет.

Установка пакетов

Для работы с отчетами нам понадобится пакет = stimulsoft-reports-js, а для дашбордов - stimulsoft-dashboards-js.

Кроме этого, для добавления и возможности использования планировщика, необходимо установить пакет Node Schedule.

Определение задач и настройка расписания

Переходим непосредственно к основному вопросу нашей статьи. Итак, мы взяли за основу пример экспорта отчета в PDF. Далее устанавливаем выполнение экспорта на 10:00 ежедневно:
// 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);
  });
});
Таким образом, сегодня мы на примере показали автоматизацию процесса, и теперь каждый день в 10:00 отчет будет преобразовываться в PDF-файл и сохраняться на диск в этом формате.
Используя этот сайт, вы соглашаетесь на использование файлов Cookie для аналитики и персонализированного контента. Файлы Cookie хранят полезную информацию на вашем компьютере, чтобы помочь нам повысить эффективность и удобство использования. Для получения дополнительной информации, пожалуйста, прочтите Конфиденциальность и Использование Cookie.