ELMA API F.A.Q.
В данной статье будут рассмотрены часто задаваемые вопросы по ELMA API.
Как узнать идентификатор объекта или уникальный идентификатор объекта?
Узнать уникальный идентификатор объекта (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();