1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Lotus Error - как обойти?

Тема в разделе "Lotus - Программирование", создана пользователем -, 24 мар 2008.

  1. Гость

    Репутация:
    0
    error: Notes error: Field is too large (32K) or View's column & selection formulas are too large - выдается при обработке документа агентом, но все бы хорошо если бы оно было так. На самом деле в поле всего несколько записей. И если документ вырезать из базы и обратно его туда вставить, то ошибка изчезает....... вот. Вопрос: Это глюк лотуса или какого то процесса, и как это лечить?
     
  2. Sandr

    Sandr Гость

    Репутация:
    0
    Николай (Красноярск)
    Код агента в студию... Потому как ошибка и Ваши слова не сходятся...
     
  3. Гость

    Репутация:
    0
    Агент:
    Код:
    SFormula = {Form = "OfficeMemo" & Status = "Send" & IO_IntCorrPers ="}+Cstr(ioDoc.GetItemValue("PName")(0))+{|}+Cstr(ioDoc.GetItemValue("PUNID")(0))+{"}
    Set docColl = db.Search (SFormula, Nothing, 0)
    Set doc= docColl.GetFirstDocument
    While Not doc Is Nothing
    i=0
    Forall IO_IntCorrPer In doc.GetItemValue("IO_IntCorrPers") 
    If Debug Then Print "Данные персоны в списке: " + Cstr(IO_IntCorrPer) 				
    If IO_IntCorrPer=Cstr(ioDoc.GetItemValue("PName")(0))+"|"+Cstr(ioDoc.GetItemValue("PUNID")(0)) Then
    iElementNum=i	
    End If
    i=i+1
    End Forall
    If iElementNum=0 Then 
    Call	doc.ReplaceItemValue("CorrNameProxy",ioDoc.GetItemValue("IOName")(0)) 
    Else 
    Redim aAddressee (Ubound(doc.GetItemValue("CorrNameProxy"))) 
    For i=0 To Ubound(doc.GetItemValue("CorrNameProxy"))
    If i= iElementNum Then
    aAddressee (i)=ioDoc.GetItemValue("IOName")(0)
    Else
    aAddressee (i)=doc.GetItemValue("CorrNameProxy")(i)				
    End If
    Next
    Call	doc.ReplaceItemValue("CorrNameProxy",aAddressee)	
    End If
    Call doc.ReplaceItemValue("CorrNameProxy", Cstr(ioDoc.GetItemValue("IOName")(0)))			
    Call doc.ReplaceItemValue("CorrNameProxyLN", Cstr(ioDoc.GetItemValue("IONotesName")(0)))		
    Call doc.GetFirstItem ("CorrNameProxyLN").AppendToTextList (ioDoc.GetItemValue("IONotesName")(0))bChangeOrNot=True
    i=0
    quantity=Ubound(doc.GetItemValue("WriteAccess"))
    Redim aNotesPersonWA (quantity)
    Forall NotesPersonWA In doc.GetItemValue("WriteAccess")
    aNotesPersonWA(quantity- quantity +i)=NotesPersonWA 
    If Cstr(iodoc.IONotesName(0))=NotesPersonWA Then
    bChangeOrNot=False
    End If
    i=i+1
    End Forall
    If bChangeOrNot Then 
    Redim Preserve aNotesPersonWA (quantity+ 1)
    aNotesPersonWA (quantity+ 1) = Cstr(iodoc.IONotesName(0))
    Call doc.ReplaceItemValue("WriteAccess", aNotesPersonWA)	
    End If
    Call doc.GetFirstItem ("WriteAccess").AppendToTextList (ioDoc.GetItemValue("IONotesName")(0))		
    Call doc.Save(True, False)
    Ошибка вылетает на последней строке, при сохранении документа. Здесь изменяются всего 3 поля : CorrNameProxy, CorrNameProxyLN и WriteAccess.
    При сохранении:
    CorrNameProxy содержит 0 записей
    CorrNameProxyLN содержит 160 записей
    WriteAccess содержит 100 записей.

    После того как вырезал и вставил документ могу догнать количество записей до 600 с копейками.....

    /Moderated by Morpheus/ Пользуйтесь тегами КОД, а тоглаза можна поломать
     
  4. morpheus

    morpheus скриптописец

    Репутация:
    0
    Регистрация:
    7 авг 2006
    Сообщения:
    3.915
    Симпатии:
    1
    Дело не в кол-ве записей, а в РАЗМЕРЕ который занимают эти записи. Вы пытаетесь засунуть в одно поле слишком много байт... больше 32 КБ, вот Вам и ошибка

    Варианты - проверять размер используя LenB
     
  5. Medevic

    Medevic Что это ? :)
    Lotus team

    Репутация:
    0
    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Николай (Красноярск)
    Предлагаю после каждой операции с полями сохранять документ. Чтобы точно выявить какая операция вызывала переполнение.
     
Загрузка...
Похожие Темы - Lotus Error как
  1. cobra77777
    Ответов:
    5
    Просмотров:
    2.008
  2. cLif
    Ответов:
    0
    Просмотров:
    17
  3. Kay
    Ответов:
    1
    Просмотров:
    41
  4. cLif
    Ответов:
    0
    Просмотров:
    44
  5. Domino-Designer
    Ответов:
    0
    Просмотров:
    58

Поделиться этой страницей