DXLExporter Err=4601

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 805
21
#1
При экспорте документа
Код:
output1 = exporter.Export(doc)
Вот такая ошибка
<!--shcode--><pre><code class='xml'><?xml version='1.0'?>
<DXLExporterLog>
<error id='7112'>Error occurred during processing of note ID 0xDB6</error>
<error id='7001'>DXL exporter failed</error>
<error>DXL exporter operation failed</error>
</DXLExporterLog>[/CODE]
Чтобы это значило?
 

VladSh

начинающий
Lotus team
11.12.2009
1 260
5
#4
NickProstoNick
Код ошибки в Err не 4601 случайно?
 

VladSh

начинающий
Lotus team
11.12.2009
1 260
5
#8
Из своей базы знаний (по личному опыту):
<!--QuoteBegin-4601 Err - ошибка NotesDXLExporter'а+-->
<table border="0" cellpadding="0" cellspacing="0" align="center" width="98%"> [tr] <td class="vbquote"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> [tr] <td class="vbquote" width="75" valign="bottom"> <table border="0" cellpadding="0" cellspacing="0" width="50px"> [tr] <td class="vbquote" width="28" valign="top">
</td> <td class="vbquote" width="100%" style="background-image: url('style_images/ckr/quotes/quote-bg.gif'); background-position: center;" valign="middle"><span class="vbquote">Цитата:</span></td> <td class="vbquote" valign="top">
</td> [/tr] </table> </td> <td class="vbquote" align="left" style="background-image: url('style_images/ckr/quotes/quot-lr-bg.gif')" valign="bottom"></td><td class="vbquote" width="0" align="left" valign="bottom"> <table border="0" cellpadding="0" cellspacing="0" width="200"> [tr] <td class="vbquote" valign="top">
</td> <td class="vbquote" width="100%" style="background-image: url('style_images/ckr/quotes/quot-bye-bg.gif')" align="left" valign="middle" nowrap="nowrap"><span class="vbquote">(4601 Err - ошибка NotesDXLExporter'а)</span></td> <td class="vbquote" valign="top">
</td> [/tr] </table> </td><td class="vbquote" width="100%" align="right" valign="bottom"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> [tr] <td class="vbquote" width="100%"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> [tr] <td class="vbquote" style="background-image: url('style_images/ckr/quotes/quot-top-bg.gif')" width="100%" valign="middle"></td> <td class="vbquote" align="left" valign="top">
</td> [/tr] </table> </td> [/tr] </table> </td> [/tr] </table> <table border="0" cellpadding="0" cellspacing="0" width="100%"> [tr] <td class="vbquote" width="10" style="background-image: url('style_images/ckr/quotes/quoting-left.gif')"></td> <td class="vbquotemain" width="100%" valign="top"></td> <td class="vbquote" width="10" style="background-image: url('style_images/ckr/quotes/quoting-right.gif')"></td> [/tr] [tr] <td class="vbquote" width="10" style="background-image: url('style_images/ckr/quotes/quot-left-bg.gif')"></td> <td class="vbquotemain" width="100%" valign="top"><!--QuoteEBegin-->Возникает в следующих случаях:

1. NotesDXLExporter'у передан НЕсохранённый документ;

2. NotesDXLExporter'у передан только что сохранённый в UI документ.
Для обхода выполнить:
• необходимое условие: документ должен быть сохранён в UI, чтобы изменения в RT-полях корректно перешли в BackEnd.
Допускается BackEnd-сохранение, но в таком случае перед сохранением необходимо вызвать nuid.Refresh(False, False) для передачи изменений в RT-полях в BackEnd.
• после сохранения необходимо вытянуть документ (GetDocumentByUNID) из базы заново (база тоже должна быть взята заново, лучше всего её брать по имени файла), а затем уже передавать в NotesDXLExporter.

3. NotesDXLExporter'у передан элемент дизайна, полученный GetDocumentByUNID.
Элементы дизайна нужно получать с помощью GetDocumentByID или брать из NotesNoteCollection пример см. ниже.

В любом из перечисленных случаев необходимо объект БД взять заново с помощью Call ndb.Open(ServerName, filePath)!<!--QuoteEnd--></td> [/tr] [tr] [/tr] </table> </td> [/tr] </table>
<!--QuoteEEnd-->мне помогает.
Если вдруг не поможет (??), то попробовал бы и документы тоже брать методом GetDocumentByID (когда используешь этот метод, то БД брать заново необязательно).
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 805
21
#9
Из своей базы знаний (по личному опыту):
мне помогает.
Если вдруг не поможет (??), то попробовал бы и документы тоже брать методом GetDocumentByID (когда используешь этот метод, то БД брать заново необязательно).
Не получается ошибка 4601 остается.
Заметил что у RT-поля есть флаг SIGN SEAL.
Помогает только пересохранение в UI. Тогда все работает. Но это не панацея. На серверном агенте это не сделаешь ;)
 

VladSh

начинающий
Lotus team
11.12.2009
1 260
5
#10
Не получается ошибка 4601 остается.
Помогает только пересохранение в UI. Тогда все работает. Но это не панацея. На серверном агенте это не сделаешь :mellow:
Сохранение в UI, как написано, - обязательное условие. Т.е. все доки, при работе в UI (EditMode) должны сохраняться как UI. Такой трабл будет, когда нарушен этот принцип: док в EditMode, производились действия с ричтекстом, но сохранение документа производилось в back-end'е. Если всё правильно сделано, то потом, не в режиме EditMode, док можно сохранять в back-end'е хоть 100500 раз, хоть на сервере, хоть где. Так что все эти правила работают, нужно только соблюдать все условия.
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 805
21
#11
Сохранение в UI, как написано, - обязательное условие. Т.е. все доки, при работе в UI (EditMode) должны сохраняться как UI. Такой трабл будет, когда нарушен этот принцип: док в EditMode, производились действия с ричтекстом, но сохранение документа производилось в back-end'е. Если всё правильно сделано, то потом, не в режиме EditMode, док можно сохранять в back-end'е хоть 100500 раз, хоть на сервере, хоть где. Так что все эти правила работают, нужно только соблюдать все условия.
В том-то и фишка, что сохранение в UI не всегда нужно.
Еще не понял в чем прикол, но некоторые документы "работают" в бекэнде, а некоторые нет.
Может на досуге по вычисляю "виновника" :mellow:
 

VladSh

начинающий
Lotus team
11.12.2009
1 260
5
#12
В том-то и фишка, что сохранение в UI не всегда нужно.
Это понятно.

Я о том, что есть неписанные правила:
- если документ в EditMode, то работать с ним (в т.ч. сохранять) его как UI;
- если это по каким-то причинам делать нежелательно, значит брать объект документа не из Source или NUIWS, а получать заново из БД, добавлять в back-end и сохранять через back-end, но тогда блокировать сохранение через UI, иначе либо конфликт либо такой вот трабл.
которые следует соблюдать, тогда не будет необходимости борьбы с ветряными мельницами.
 

VladSh

начинающий
Lotus team
11.12.2009
1 260
5
#13
Попытался экспортировать ноты скрытого дизайна и также получил error id='7112' "Error occurred during processing of note ID ...", причина: "Cannot access design elements because the database design is hidden".

Странно как-то сделан этот экспортер, к некоторым item'ам скрытых нот имеем доступ и можем по их значениям сами сгенерить какой хочешь xml, а экспортер не работает, ну что за глупость?
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 231
17
#14
мне всегда порой повторный запуск агента с экспортом помогает
 

VladSh

начинающий
Lotus team
11.12.2009
1 260
5
#15
В 9-ке, похоже, спецом ошибку генерят, хоть 150 раз запускай...
Копирую док в cache.ndk а оттуда экспортирую, - никаких проблем. После экспорта подчищаю.