VBA: загрузка файла в iManage/Worksite в определенную папку

Я знаю, что уже есть сообщения о загрузке на сайт, но у меня проблема с другой частью.

Допустим, у меня есть определенный FolderID, и я хотел бы иметь возможность загружать файлы в этот каталог. (У меня есть ссылка на iManage.dll и ImanEXTLib).

То, с чем я борюсь, это окно диалога / импорта. Я не могу заполнить определенные поля на уровне кода.

В идеале я хотел бы пропустить этот этап, чтобы сделать загрузку еще быстрее, потому что, если я передаю все необходимые данные, я не вижу никакой точки в диалоговом окне, кроме нажатия кнопки ОК. Но это продолжается... Это код (VBA):

Я нахожу папку с помощью ManDMS.CreateSearchParameters

После получения результатов:

Dim rslts as IManFolders
Set rslts = IManSession.WorkArea.SearchFolders(<ManStrings>,<SearchParameters>)
If rslts.Empty = True Then
    MsgBox "Found shit."
Elseif rslts.Empty = False Then
    Dim TgtFdr as ImanFolder
    Set impCmd = ImportCmd
    Set context = New ContextItems
    Set TgtFdr = rslts.ItemByIndex(1)

Сейчас я устанавливаю элементы контекста, но у меня проблема с Matter и Subclass. Они обязательны для загрузки, но поля остаются пустыми, и я не знаю, как к ним обратиться, чтобы завершить загрузку:

context.Add("IManDestinationObject", TgtFdr)
context.Add("IManExt.Import.DocAuthor", UserID)
context.Add("IManExt.Import.DocDescription", file Name)           
context.Add("IManExt.Import.FileName", file path)
context.Add("IManExt.Import.DocClass", "some info")
context.Add("IManExt.Import.DocSubclass", "some info")
context.Add("IManExt.Import.DocMatter", "some info")

impCmd.Initialize context
impCmd.Update

If impCmd.Status = IMANEXTLib.CommandStatus.nrActiveCommand Then

    impCmd.Execute
Else
Endif

Пробовал разные вещи - MatterID, MatterDesc, Custom1,2,3,. Бесполезно Можно ли пропустить деталь в этом окне и загрузить файл более простым способом? Кроме того, как вы думаете, возможно ли взять номер документа недавно импортированного файла в конце с VBA?

Я попробовал ниже, но это не работает:

UplDoc = (ImanDocument)context.Item("ImportedDocument")  

Заранее спасибо за любые советы.

1 ответ

Я все понял.

Вроде... Я зашел в браузер объектов и сумел обойти проблему и воспользоваться методом.DuplicateProfileFromDoc. Я просто отражаю профиль загруженного документа от другого, уже сохраненного на рабочем месте.

Последний бит тоже решен. Так должно быть:

Set UplDoc = context.Item("ImportedDocument")

Ура!

Другие вопросы по тегам