IScheduledTaskResult.ReadDataStream

Синтаксис

ReadDataStream([Value: IIOStreamSys = Null]): IIOStreamSys;

Параметры

Value - поток, в который будут помещены считанные данные. По умолчанию передается значение Null, при этом будет создан новый поток.

Описание

Метод ReadDataStream осуществляет чтение результата выполнения задачи и помещает этот результат в поток.

Комментарии

Данный метод допустимо использовать для задач, осуществляющих вычисление регламентных отчетов. Результатом выполнения таких задач является рассчитанный регламентный отчет, либо файл, в который экспортируется отчет после расчета. Формат файла задается в свойстве FormatTag задачи.

Пример

Для выполнения примера предполагается наличие в репозитории контейнера запланированных задач с идентификатором "TASK_CONTAINTER". Первая задача контейнера осуществляет расчет регламентного отчета. Уведомление об окончании выполнения приходит по электронной почте, в качестве приложения высылается рассчитанный отчет, экспортированный в формат MHT.

Sub Main;

Var

MB: IMetabase;

CrInfo: IMetabaseObjectCreateInfo;

MObj: IMetabaseObject;

Doc: IDocument;

Cont: IScheduledTasksContainer;

Tasks: IMetabaseObjectDescriptors;

Task: ICalculateReportScheduledTask;

Results: IScheduledTaskResults;

Result: IScheduledTaskResult;

Begin

MB := MetabaseClass.Active;

Cont := MB.ItemById("TASK_CONTAINTER").Bind As IScheduledTasksContainer;

Tasks := Cont.Tasks;

Task := Tasks.Item(0).Bind As ICalculateReportScheduledTask;

Results := Task.GetResults;

Result := Results.Item(Results.Count - 1);

If Result.Succeeded Then

CrInfo := MB.CreateCreateInfo;

CrInfo.ClassID := MetabaseObjectClass.KE_CLASS_DOCUMENT;

CrInfo.Id := "Result_ReportCalc";

CrInfo.Name := "Result_ReportCalc";

CrInfo.Parent := MB.Root;

MObj := MB.CreateObject(CrInfo).Edit;

Doc := MObj As IDocument;

Doc.LoadFromStream(Result.ReadDataStream As IIOStream);

Doc.FileName := "Result_ReportCalc.mht";

MObj.Save;

End If;

End Sub Main;

После выполнения примера будет получена история выполнения первой задачи контейнера запланированных задач. Если последнее выполнение прошло успешно, то в корневом каталоге репозитория будет создан новый документ. В данный документ будет загружен файл, содержащий экспортированный отчет, полученный после выполнения задачи.

См. также:

IScheduledTaskResult