BPM ELMA Как вывести текущую версию документа или файла в форму задачи. Razor

В платформе BPM ELMA нет стандартной кнопки для отображения (предпросмотра) документа или файла в задаче.

К счастью, это можно очень быстро реализовать, используюя RAZOR и функции Элма.

1) Первый пример. Вывода текущей версии документа на форму задачи (в целом, вообще любой формы). Для начала зайдем в свойства документа, перейдем на вкладку "Системные" и создадим форму RAZOR. Кто делает это впервые, можно посмотреть подробно здесь.

Далее, введем код:

@using EleWise.ELMA.Documents
@using EleWise.ELMA.Documents.Managers
@using EleWise.ELMA.Documents.Models
@using EleWise.ELMA.Documents.Web.Extensions
@using EleWise.ELMA.Documents.Web.Models
@using EleWise.ELMA.Extensions
@using EleWise.ELMA.Model.Metadata
@using EleWise.ELMA.Web.Mvc.Views.Inputs
@using System.Threading;
@inherits InputControl<IDocument, EleWise.ELMA.Model.Types.Settings.EntitySettings>

@if (Model != null)
{
<div previewcontainer document="@Model.Id">
@if (Model.CurrentVersion != null && Model.CurrentVersion.File != null)
{
<div>
@Html.Partial("Previews/PreviewPanelControl", Model.CurrentVersion.File)
</div>
}
else
{
<div class="note" style="padding: 10px;">
@SR.T("Не определена версия для задачи по документу")
</div>
}
</div>
}

 

 

 

2) Второй пример. Вывода предпросмотра файла (не вложения) на форму ELMA. Для начала зайдем в свойства Файла (не вложения), перейдем на вкладку "Системные" и создадим форму RAZOR. Вводим код:

@inherits ViewItemControl<PropertyViewItem, object, BinaryFile>
@using System.IO
@using EleWise.ELMA.Files
@using EleWise.ELMA.Model.Views
@using EleWise.ELMA.Web.Mvc.Views.ViewItem

 

@if (Model != null)
{
<div>
@if (File.Exists(Model.ContentFilePath))
{
@Html.Partial("Previews/PreviewPanelControl", Model)
}
else
{
<p>Файл @Model.ContentFilePath был удален. Предпросмотр невозможен</p>
}

</div>
}

 

Этого достаточно для отображения файла стандартным вызовом в ELMA. Отработает плагин отображения, установленный конкретно в вашей системе Элма.

 

Здесь ссылка на готовый пример в формате elma3, который вы можете скачать и импортировать.