Создание редакции файла

Автор Тема: Создание редакции файла  (Прочитано 1590 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн BazingaАвтор темы

  • ADN Club
  • **
  • Сообщений: 98
  • Карма: 4
Создание редакции файла
« : 02-03-2020, 10:05:39 »
Пытаюсь создать новую редакцию файла через метод .WebServiceManager.DocumentServiceExtensions.UpdateRevisionDefinitionAndNumbers, но выдает исключение 1137 (CannotCheckoutNontipFileVersion)
Код - C# [Выбрать]
  1. connection.WebServiceManager.DocumentServiceExtensions.UpdateRevisionDefinitionAndNumbers(new long[] { file.Id }, new long[] { s.First().Id (определение схемы редакции) }, new string[] { r (номер редакции)}, "revision");

Онлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 11717
  • Карма: 1524
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Создание редакции файла
« Ответ #1 : 02-03-2020, 11:57:32 »
Bazinga,
Нужен нормальный кусок кода, который я мог бы отправить в ADN DevHelp для анализа.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн BazingaАвтор темы

  • ADN Club
  • **
  • Сообщений: 98
  • Карма: 4
Re: Создание редакции файла
« Ответ #2 : 02-03-2020, 12:51:49 »
Код - C# [Выбрать]
  1.             Connection connection = e.Context.Application.Connection;
  2.             long _need = e.Context.CurrentSelectionSet.First().Id;
  3.  
  4.             //try revision file
  5.             File file = connection.WebServiceManager.DocumentService.GetFilesByMasterId(_need).First();
  6.             var s = connection.WebServiceManager.RevisionService.GetAllRevisionDefinitionInfo().RevDefArray.Where(itm => itm.Descr.Contains("Последовательная нумерация, начиная с 1"));
  7.  
  8.             if (s.Any())
  9.             {
  10.                 //get next revisison
  11.                 var rev1 = connection.WebServiceManager.RevisionService.GetNextRevisionNumbersByMasterIds(new long[] { file.MasterId }, new long[] { s.First().Id });
  12.                 var rev = rev1.First();//уровни вложенности
  13.                 var r = rev.Items.First();//первый уровень
  14.  
  15.                 //connection.WebServiceManager.DocumentServiceExtensions.UpdateFileRevisionNumbers(new long[] { file.Id }, new string[] { r }, "revision");
  16.                 connection.WebServiceManager.DocumentServiceExtensions.UpdateRevisionDefinitionAndNumbers(new long[] { file.Id }, new long[] { s.First().Id }, new string[] { r }, "revision");
  17.             }
« Последнее редактирование: 02-03-2020, 13:49:28 от Bazinga »

Онлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 11717
  • Карма: 1524
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Создание редакции файла
« Ответ #3 : 02-03-2020, 13:43:01 »
Bazinga,
Версия Vault?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн BazingaАвтор темы

  • ADN Club
  • **
  • Сообщений: 98
  • Карма: 4
Re: Создание редакции файла
« Ответ #4 : 02-03-2020, 13:49:40 »
Александр Ривилис, 2019

Онлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 11717
  • Карма: 1524
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Создание редакции файла
« Ответ #5 : 02-03-2020, 14:32:49 »
Bazinga,
А метод UpdateFileRevisionNumbers не подошёл?

Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн BazingaАвтор темы

  • ADN Club
  • **
  • Сообщений: 98
  • Карма: 4
Re: Создание редакции файла
« Ответ #6 : 02-03-2020, 15:07:10 »
Нет, на него тоже ругается. Если жестко не задавать схему, он  null возвращает в var rev = rev1.First();
Если
Код - C# [Выбрать]
  1. file.FileRev.RevDefId = s.First().Id;
  2.                 connection.WebServiceManager.DocumentServiceExtensions.UpdateFileRevisionNumbers(new long[] { file.Id }, new string[] { r }, "revision");
1092 падает
Если просто
Код - C# [Выбрать]
  1. connection.WebServiceManager.DocumentServiceExtensions.UpdateFileRevisionNumbers(new long[] { file.Id }, new string[] { r }, "revision");
1092 тоже

Онлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 11717
  • Карма: 1524
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Создание редакции файла
« Ответ #7 : 02-03-2020, 15:15:42 »
1092 падает


Интересно что за ограничения?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн BazingaАвтор темы

  • ADN Club
  • **
  • Сообщений: 98
  • Карма: 4
Re: Создание редакции файла
« Ответ #8 : 03-03-2020, 10:30:26 »
Александр Ривилис, https://justonesandzeros.typepad.com/blog/2009/11/errors-and-restrictions.html
trictions are types of exceptions with extra data documenting why an operation failed.  If the error code is 1092, 1387, or 1633, then there is restriction information, otherwise there is no restriction information.  An exception can have multiple restriction. - Это из документации.
SoapException xml не дает, чтобы посмотреть ошибку


Оффлайн BazingaАвтор темы

  • ADN Club
  • **
  • Сообщений: 98
  • Карма: 4
Re: Создание редакции файла
« Ответ #9 : 03-03-2020, 10:34:56 »
Александр Ривилис,DocumentServiceExtensions.UpdateFileLifeCycleDefinitions( ) для изменения редакции, но у метода на вход состояния жизненного цикла :-\
« Последнее редактирование: 03-03-2020, 11:47:33 от Bazinga »

Онлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 11717
  • Карма: 1524
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Создание редакции файла
« Ответ #10 : 03-03-2020, 12:03:28 »
Александр Ривилис,DocumentServiceExtensions.UpdateFileLifeCycleDefinitions( ) для изменения редакции, но у метода на вход состояния жизненного цикла :-\
Я так понимаю, что вся та тема связана не с изменением ревизии, а с загрузкой файла на сервер (Upload). В вашем случае, как я понял, нужно только изменить ревизию. Или не так?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн BazingaАвтор темы

  • ADN Club
  • **
  • Сообщений: 98
  • Карма: 4
Re: Создание редакции файла
« Ответ #11 : 03-03-2020, 13:14:30 »
Александр Ривилис, только изменить ревизию ( запустить через API команду "Изменить редакцию").

Онлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 11717
  • Карма: 1524
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Создание редакции файла
« Ответ #12 : 03-03-2020, 13:26:03 »
Александр Ривилис, только изменить ревизию ( запустить через API команду "Изменить редакцию").
Я отправил запрос в ADN DevHelp. Будем надеяться на их помощь.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Отмечено как Решение Александр Ривилис 03-03-2020, 15:24:42

Оффлайн BazingaАвтор темы

  • ADN Club
  • **
  • Сообщений: 98
  • Карма: 4
Re: Создание редакции файла
« Ответ #13 : 03-03-2020, 14:09:36 »
Александр Ривилис, я его победила всё-таки. Проблема была с id файла.
В File.id не содержится последняя версия файла.
Необходимо выполнить
Код - C# [Выбрать]
  1. var id = connection.WebServiceManager.DocumentService.GetLatestFileByMasterId(file.MasterId).Id;
и у него уже взять id. Тогда всё получает и меняет.


Онлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 11717
  • Карма: 1524
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Создание редакции файла
« Ответ #14 : 03-03-2020, 14:12:19 »
Bazinga,
Поздравляю! Достаточно отправить вопрос в ADN DevHelp, как находится решение.   ;D
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение