В СПИК предусмотрена возможность заказа отчетов на почту. Отчет может быть заказан, если пользователю доступен хотя бы один шаблон отчета. Шаблон отчета содержит настройки отчета, необходимые для его построения и отображения. С контрактами данных, используемыми для построения отчетов, можно ознакомиться здесь.
Для того, чтобы заказать отчет на почту, необходимо выполнить следующие действия:
public void BuildReport(SpicSoapReportsServiceClient client)
{
// Запрос доступных отчетов и шаблонов
var reportsInfo = client.GetAvailableReports();
// Создание запроса
var reportTypeId = reportsInfo.ReportInfos[0].Id;
var reportTemplateId =
reportsInfo.TemplateInfos.FirstOrDefault(reportTemplate => reportTemplate.ReportId == reportTypeId).Id;
var reportRequest = new SpicReportRequest
{
BeginDateTime = DateTime.Now.AddDays(-1),
EndDateTime = DateTime.Now,
ReportTargetCardinalityType = new SpicReportTargetCardinality {Value = "Many"},
ReportTargetType = new SpicReportTargetType {Value = "Unit"},
ReportTemplateId = reportTemplateId,
ReportType = reportTypeId,
Targets = new[] {235, 456, 219},
Emails = new[] {"some_email@asdf.com", "helloworld@helloworld.net"},
OutputFormat = new SpicSchedulingReportFormat {Value = "pdf"}
};
// Отправка запроса на построение
client.BuildReports(reportRequest);
}
var baseUrl = ’http://localhost:8081/spic/reports/rest/’;
var getAvailableReportsUrl = baseUrl + ’GetAvailableReports’;
var buildReportsUrl = baseUrl + ’BuildReports’;
var provider = new HttpJsonRequestProvider();
// Запрос доступных отчетов и шаблонов
var reportsInfo = getAvailableReports();
// Создание запроса
var reportTypeId = reports.ReportInfos[0].Id;
var reportTemplateId = null;
for (var i = 0; i < reportsInfo.TemplateInfos.length; i++) {
if (reportsInfo.TemplateInfos[i].ReportId == reportTypeId.toString()) {
reportTemplateId = reportsInfo.TemplateInfos[i].Id;
break;
}
}
var now = new Date();
var reportRequest = {
BeginDateTime: new Date(now.getTime() - 24 * 3600 * 1000),
EndDateTime: now,
ReportTargetCardinalityType: { Value: "Many" },
ReportTargetType: { Value: "Unit" },
ReportTemplateId: reportTemplateId,
ReportType: reportTypeId,
Targets: [235, 456, 219],
Emails: ["some_email@asdf.com", "helloworld@helloworld.net"],
OutputFormat: { Value: "pdf" }
};
// Отправка запроса на построение
buildReports(reportRequest);
// Метод получения доступных отчетов и шаблонов
function getAvailableReports() {
return provider.GETAuthorized(getAvailableReportsUrl,
null,
getAuthorizationToken()).response;
}
// Метод построения отчетов
function buildReports(reportsRequest) {
return provider.POSTAuthorized(buildReportsUrl,
reportsRequest,
getAuthorizationToken()).response;
Номер материала: 491
Отправлено: Wed, Sep 12, 2018
Последнее обновление: Sun, Oct 7, 2018
Отправлено: Анисимов Максим Михайлович [m.anisimov@scout-gps.ru]
Online URL: https://kb.scout-gps.ru/article/Запрос-построения-отчета-и-его-отправки-на-почтовые-адреса-в-СПИК-491.html