logo

[ELMA3] Получение папки по умолчанию у типа документа для использования в сценариях

При создании документа в сценарии требуется указать папку, в которую будет сохранен документ.

Для получения папки, настроенной в типе документа, как папка по умолчанию, можно использовать следующий сценарий:

var metadata = (DocumentMetadata)MetadataLoader.LoadMetadata(doc.TypeUid);
var profile = DocumentMetadataProfileManager.Instance.LoadByDocumentType(metadata.ImplementationUid);

 if (profile.Folder != null)
 {
       doc.Folder = (Folder)profile.Folder;
 }

где doc – переменная с создаваемым/существующим документом.

Для работы необходимо подключить пространство имен:

using EleWise.ELMA.Documents.Models;
using EleWise.ELMA.Documents.Managers;
using EleWise.ELMA.Documents.Metadata;

Можно добавить в сценарий условие, что если папка по умолчанию в типе документа не указана, сохранять в папку Мои документы какого-либо пользователя. Пример с использованием PublicAPI:

var metadata = (DocumentMetadata)MetadataLoader.LoadMetadata(doc.TypeUid);
var profile = DocumentMetadataProfileManager.Instance.LoadByDocumentType(metadata.ImplementationUid);

 if (profile.Folder != null)
 {
        doc.Folder = (Folder)profile.Folder;
 }
 else
 {
      var user = PublicAPI.Portal.Security.User.GetCurrentUser();
      var folderMy = PublicAPI.Docflow.Folder.GetMyDocumentFolder(user);
      doc.Folder = (Folder)folderMy;
 }
 

Для работы необходимо подключить пространство имен:

using EleWise.ELMA.API;
using EleWise.ELMA.Documents.Models;
using EleWise.ELMA.Documents.Managers;
using EleWise.ELMA.Documents.Metadata;