Отдел продаж
8 800 250 60 77

Запрос построения отчета и его отправки на почтовые адреса в СПИК

В СПИК предусмотрена возможность заказа отчетов на почту. Отчет может быть заказан, если пользователю доступен хотя бы один шаблон отчета. Шаблон отчета содержит настройки отчета, необходимые для его построения и отображения. С контрактами данных, используемыми для построения отчетов, можно ознакомиться здесь.

Для того, чтобы заказать отчет на почту, необходимо выполнить следующие действия:

  1. Пройти авторизацию в системе СКАУТ (если не пройдена).
  2. Запросить доступные пользователю отчеты и их шаблоны (путем вызова метода GetAvailableReports сервиса SpicReportsService; метод возвращает объект типа SpicReportInfoCollection).
  3. Составить запрос на построение отчета, указав необходимые данные (запрос должен иметь тип SpicReportRequest).
  4. Отправить запрос на построение в СПИК (необходимо вызвать метод BuildReports сервиса SpicReportsService, передав в параметр запрос на построение, сделанный в пункте выше; метод вернет объект типа SpicOperationResult).

Пример на C#:

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);
}

Пример на JS:

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;
}


<<Назад                                                       К оглавлению                                                                     Далее>>

Уважаемые партнеры ГК СКАУТ.
Для доступа к Базе Знаний пожалуйста авторизируйтесь на ресурсе СКАУТ-Университет.
В качестве логина используйте свой электронный ящик, а в качестве пароля используйте пароль для доступа к ресурсам СКАУТ-Сайт и СКАУТ-Форум. Если вы не знаете или забыли свой пароль, то вы можете восстановить пароль здесь.
Также в Базе Знаний есть специальная статья, описывающая операцию по восстановлению пароля.