Исключение при попытке скачать архив документооборота
Версия sdk 3.3.3
Стек: Diadoc.Api.exceptions.DiadocSdkException: com.google.protobuf.InvalidProtocolBufferException: Protocol message tag had invalid wire type. at Diadoc.Api.print.PrintFormClient.generateDocumentZip(PrintFormClient.java:111)
вызов в джава коде: DocumentZipResult result = diadocApi .getPrintFormClient() .generateDocumentZip(request.getBoxId(), request.getMessageId(), request.getDocumentId(), request.getFullDocflow());
С подставленными значениями это выглядит так: .generateDocumentZip("[email protected]", "136663de-ee59-4697-b8cb-2e6761eb200c", "1", true); (в качестве documentId передается заглушечное значение "1")
Попутный вопрос: почему с переданным флагом fullDocflow==true все равно нужно передать непустой documentId. Мне нужна вся переписка, а не конкретный документ. Почему я должен указывать документ?
Название метода подсказывает, что он выгружает архив по документу, а не по сообщению. Для того, чтобы выгрузить архив по сообщению, вам нужно будет сделать несколько вызовов. Метода для получения архива по сообщению нет. Кажется, что после указания documentId ошибка должна уйти
В ЛК есть кнопка (пункт в выпадающем меню) "Скачать всю цепочку документооборота". Как точно такой же архив скачать через SDK, указав messageId? В документации есть метод https://diadoc-sdk.readthedocs.io/ru/latest/http/GenerateDocumentZip.html В его описании указано: fullDocflow: признак того, что в формируемый архив требуется добавить все файлы документооборота.
Вот мне и нужны ВСЕ файлы. Тем не менее, при пустом documentId будет исключение:
java.lang.IllegalArgumentException: documentId Diadoc.Api.print.PrintFormClient.generateDocumentZip(PrintFormClient.java:91)

Почему игнорируется значение true в параметре fullDocflow?
Точно такой же архив можно скачать при помощи метода GenerateDocumentZip, указав boxid. messageid, documentid и fulldocflow=true. Только по messageid (без documentid) получить архив нельзя, т.к. в одном сообщении может быть несколько документов, а архив документооборота формируется только по одному документу.
Попробую еще раз. В ЛК я могу скачать архив для всего сообщения. Если в сообщении 4 файла, то в архиве будет 4 папки - по одной для каждого файла:
Пример содержимого одной из папок:

Насколько я понимаю предлагаемый вами вариант, он отличается от ЛК: мне надо будет делать четыре запроса на shelf (по одному на файл). И получу я четырех архива. Меня этот вариант не устраивает.
Как мне скачать такой же архив, как в ЛК?
Проверил ваш совет по поводу АПИ. Действительно, в архиве скачивается оборот по одному документу:
Поэтому остается вопрос: как скачать общий архив для всех файлов, как в ЛК?
Добрый день!
Поэтому остается вопрос: как скачать общий архив для всех файлов, как в ЛК?
В API такого метода нет и в ближайшее время не планируется. Можем зафиксировать ваше пожелание.
Зафиксируйте, пожалуйста. Учитывая, что это требование вашего крупного клиента, я думаю, что стоит поднять приоритет до максимума.