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

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

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

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

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

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

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

  • ADN Club
  • ***
  • Сообщений: 101
  • Карма: 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
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Создание редакции файла
« Ответ #3 : 02-03-2020, 13:43:01 »
Bazinga,
Версия Vault?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

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

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

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

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

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

  • ADN Club
  • ***
  • Сообщений: 101
  • Карма: 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
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Создание редакции файла
« Ответ #7 : 02-03-2020, 15:15:42 »
1092 падает


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

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

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

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

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

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

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

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

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

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

  • ADN Club
  • ***
  • Сообщений: 101
  • Карма: 4
Re: Создание редакции файла
« Ответ #15 : 03-03-2020, 15:22:55 »
Александр Ривилис, спасибо! Так всегда зачастую бывает :D

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Создание редакции файла
« Ответ #16 : 06-03-2020, 10:19:17 »
Bazinga,

А вот и подоспел ответ от ADN DevHelp:

Цитировать
Dear Alexander Rivilis,
Thanks for contacting ADN support.
From the error, it seems that the code is trying to check out a file which is not the tip version.
So in your code instead of the below line:

File file = connection.WebServiceManager.DocumentService.GetFilesByMasterId(_need).First();

Try using:

File file = connection.WebServiceManager.DocumentService.GetLatestFileByMasterId(_need);

Hope this helps. Do let me know if it doesn't.


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