ELMA API F.A.Q.

В данной статье будут рассмотрены часто задаваемые вопросы по ELMA API.

Внимание!
Сценарии, указанные ниже, актуальны для версий системы ELMA до 3.12.1 включительно.

Как узнать идентификатор объекта или уникальный идентификатор объекта?

Узнать уникальный идентификатор объекта (Guid) можно в веб-части. На вкладке с настройками таблицы нужно выбрать данную колонку для отображения.

Для того, чтобы узнать идентификатор объекта (Id), откройте в веб-части нужный Вам объект, последняя цифра в адресной строке браузера и будет идентификатором.

Данные идентификаторы Вы можете использовать для загрузки объектов с помощью метода Load, LoadOrNull, LoadOrCreate.

Как работать с CommentActionModel, CommentWithDocumentsActionModel и подобными?

Для начала нужно создать экземпляр данного класса, далее заполнить его и передать в метод.

Необходимые пространства имен:

using EleWise.ELMA.Common.Models;
using EleWise.ELMA.Model.Services;

Текст сценария:

//Создаем CommentActionModel
var model = InterfaceActivator.Create<ICommentActionModel>();
//Создаем комментарий
var comment = PublicAPI.Portal.Objects.Common.Comment.Create();
comment.Text = "Комментарий";
comment.CreationAuthor = PublicAPI.Portal.Security.User.GetCurrentUser();
comment.CreationDate = DateTime.Now;
comment.Save();
//Создаем вложение
var attach = PublicAPI.Portal.Objects.Common.Attachment.Create();
attach.CreationAuthor = PublicAPI.Portal.Security.User.GetCurrentUser();
attach.CreationDate = DateTime.Now;
attach.File = context.File;
attach.Save();
model.Attachments.Add(attach);
model.Comment = comment;
//Загружаем проектную задачу
var projectTask = PublicAPI.Projects.ProjectTask.LoadOrNull(24);
//Выполняем задачу
PublicAPI.Projects.ProjectTask.CompleteTask(projectTask, (CommentActionModel)model, false);

Как создавать объекты в ELMA API?

var sale = PublicAPI.CRM.Sale.Create(); 
// sale - не заполненный объект типа Sale 
// его нужно заполнить

Аналогично создаются и другие объекты системы. Например, документы:

//создаем пустой объект типа File 
var documentVersionStatus = PublicAPI.Enums.Documents.DocumentVersionStatus; 
//бинарный файл для версии 
var binaryFile = context.VersionFile; 
var file = PublicAPI.Docflow.Types.File.Create(); 
//заполняем свойства
file.CreationAuthor = PublicAPI.Portal.Security.User.GetCurrentUser(); 
file.CreationDate = DateTime.Now; 
PublicAPI.Docflow.DocumentVersion.AddDocumentVersion(file, binaryFile, documentVersionStatus.Current); 
file.Save();

Как работать с перечислениями в ELMA API?

В дереве ELMA API все перечисления собраны в одной ветке Enums, аналогично со всеми объектами, перечисления разбиты по модулям.

Пример работы с перечислениями:

//определяем перечисление DocumentVersionStatus 
var versionStatus = PublicAPI.Enums.Documents.DocumentVersionStatus; 
//создаем документ 
var document = PublicAPI.Docflow.Types.File.Create(); 
//добавляем версию документа, в context.File - BinaryFile для версии, и передаем статус версии из нашего перечисления PublicAPI.Docflow.DocumentVersion.AddDocumentVersion(document,context.File, versionStatus.InArchive); 
document.CreationDate = DateTime.Now; 
document.CreationAuthor = PublicAPI.Portal.Security.User.GetCurrentUser();
//сохраняем документ 
document.Save();