İçeriğe geç

Report API

Report API; platformdaki rapor tanımlarını (klasik + Jasper) script’ten zamanlamak, iptal etmek, PDF/Excel dosyasına export etmek veya e-posta ile ulaştırmak için kullanılır.

ReportStatus enum döner — iki değer:

DeğerAnlam
"Scheduled"Zamanlayıcıya bağlı
"Not Scheduled"Bağlı değil
if (ins.getReportStatus("daily_energy_report") == "Not Scheduled") {
ins.scheduleReport("daily_energy_report");
}

Tek bir raporu zamanlayıcıya ekler — rapor tanımındaki periyoda göre çalışır.

ins.scheduleReport("daily_energy_report");

Raporu zamanlayıcıdan çıkarır — kalan tetiklemeler iptal; o anda üretilmekte olan bir rapor doğal olarak tamamlanır.

ins.cancelReport("daily_energy_report");

ins.scheduleReports() / ins.cancelReports()

Section titled “ins.scheduleReports() / ins.cancelReports()”

Projedeki tüm rapor tanımlarını bir seferde zamanla ya da iptal et.

ins.scheduleReports();
// ...
ins.cancelReports();

ins.mailReport(reportName, startDate, endDate)

Section titled “ins.mailReport(reportName, startDate, endDate)”

Klasik (Jasper olmayan) raporu verilen tarih aralığı için üretir ve rapor tanımındaki alıcılara e-posta ile gönderir.

var end = ins.now();
var start = ins.getDate(end.getTime() - 86400000); // son 24 saat
ins.mailReport("daily_energy_report", start, end);

ins.mailJasperReport(reportName, params, usernames, subject, content)

Section titled “ins.mailJasperReport(reportName, params, usernames, subject, content)”

Jasper raporunu PDF ek olarak verilen kullanıcılara e-postalar.

ParametreTürAçıklama
reportNameStringJasper rapor tanım adı
paramsMap<String, Object>Rapora geçirilecek parametreler
usernamesString[]Alıcı kullanıcı adları (e-posta profilden)
subjectStringE-posta konusu
contentStringE-posta gövdesi
var params = {
"START_DATE": ins.getDate(ins.now().getTime() - 86400000),
"END_DATE": ins.now(),
"PROJECT_ID": 153
};
ins.mailJasperReport(
"energy_report",
params,
["manager", "operator"],
"Günlük Enerji Raporu",
"Ekteki PDF rapor otomatik oluşturulmuştur."
);

ins.mailJasperExcelReport(reportName, params, usernames, subject, content)

Section titled “ins.mailJasperExcelReport(reportName, params, usernames, subject, content)”

Aynı imza — ama PDF yerine Excel ek olarak gönderir.

ins.mailJasperExcelReport(
"energy_report",
params,
["manager"],
"Günlük Enerji Raporu (Excel)",
"Ekteki Excel rapor otomatik oluşturulmuştur."
);

ins.exportJasperPdfToFile(reportName, filePath)

Section titled “ins.exportJasperPdfToFile(reportName, filePath)”

Jasper raporunu PDF olarak platformun dosya sistemine yazar.

ins.exportJasperPdfToFile("energy_report", "reports/daily_report.pdf");

ins.exportJasperExcelToFile(reportName, filePath)

Section titled “ins.exportJasperExcelToFile(reportName, filePath)”

Jasper raporunu Excel olarak yazar.

ins.exportJasperExcelToFile("energy_report", "reports/daily_report.xlsx");

Her gün 08:00’de önceki günün raporunu PDF dosyasına yazar + e-postalar.

// Schedule Type: Daily, Time: 08:00
function main() {
var now = ins.now();
var y = ins.getDate(now.getTime() - 86400000);
var yyyy = 1900 + y.getYear();
var mm = ins.leftPad(String(y.getMonth() + 1), 2, "0");
var dd = ins.leftPad(String(y.getDate()), 2, "0");
var file = "reports/energy_" + yyyy + mm + dd + ".pdf";
ins.exportJasperPdfToFile("energy_report", file);
ins.mailReport("energy_report", y, now);
ins.writeLog("info", "Report", "Günlük rapor oluşturuldu: " + file);
}
main();