У меня есть 2 документа, которые должны работать таким образом, чтобы можно было передавать файлы между ними.Тем не менее, это не работает.Исключение, которое я получаю, это Exception occurred calling method NotesDocument.save() Notes error: One or more of the source document's attachment are missing. Run Fixup to delete the document in the source database.
Это происходит после того, как я пытаюсь вызвать функцию save()
для документа, в который я только что передал файлы из первого.
Функции приведены ниже:
function transferFiles(docToGetFrom, docToTransferTo, fileFieldFromFirstName, fileFieldFromSecondName)
{
var rit1:NotesRichTextItem = getFirstNotesRichTextItem(docToGetFrom, fileFieldFromFirstName);
docToTransferTo.copyItem(rit1, fileFieldFromSecondName);
deleteAllFilesFromDocument(docToGetFrom, fileFieldFromFirstName);
docToTransferTo.save();
}
function getFirstNotesRichTextItem(documentToGetFrom, fileFieldName)
{
if (documentToGetFrom == null)
{
return(null);
}
if (!documentToGetFrom.hasItem(fileFieldName))
{
return(null);
}
var rit1:NotesRichTextItem = documentToGetFrom.getFirstItem(fileFieldName);
return rit1;
}
function deleteAllFilesFromDocument(documentToDeleteFrom, fileFieldName)
{
var arr = getAllEmbeddedObjects(documentToDeleteFrom, fileFieldName);
for(var i = 0; i < arr.length; i++)
{
arr[i].remove();
}
documentToDeleteFrom.save();
}
function getAllEmbeddedObjects(documentToGetFrom, fileFieldName)
{
var rit1:NotesRichTextItem = getFirstNotesRichTextItem(documentToGetFrom, fileFieldName);
if (rit1 == null)
{
return(null);
}
try
{
var arr=rit1.getEmbeddedObjects();
return arr;
}
catch(e)
{
return(null);
}
}
В соответствии с простой логикой, мне нужно сделать следующее, чтобы заставить его работать:
- Получить вложения из документа A
- Скопировать их в документ B
- Удалить вложения из документа A
- Позвонить
save()
по A - Позвонить
save()
по B
Я сделал точно так же,но тем не менее получите это неприятное исключение.Кроме того, я попытался решить проблему, установив OLEDisableFX в 1, но безуспешно.Я предполагаю, что с методом copyItem()
что-то должно быть не так (полагаю, что он может корректно работать только с простыми типами данных).В чем проблема?Заранее спасибо.