Присвоить документу нужный Unid

Тема в разделе "Lotus - Программирование", создана пользователем AlexeyStaf, 20 июл 2010.

  1. AlexeyStaf

    AlexeyStaf Гость

    Здравствуйте!
    Возможно ли с использованием Lotus C/C++ API создать документ с определенным UNIDом? Сейчас используется вызов агента, который создает документ с прописывает туда нужный идентификатор, а хочется без него :ya_lamo:
     
  2. divankin

    divankin Senjor developer

    Регистрация:
    13 авг 2009
    Сообщения:
    182
    Симпатии:
    0
    В С API можно установить OID, в который UNID входит как составная часть.
    Вот выдержка из хелпа

    Use _NOTE_OID to reference the Originator ID. Generate a new OID and set the OID in the header before updating the note to ensure the new note has a unique Originator ID. A Domino database must not contain more than one note with the same UNID portion of the OID. NSFNoteUpdate sets the SequenceTime member of the OID and increments the Sequence number.

    Sample Usage :


    Код (C++):
        NOTEHANDLE   hOldNote;
    NOTEHANDLE   hNewNote;
    STATUS       error;
    OID          oidNew;

    if (error = NSFNoteOpen (
    *(DBHANDLE*)db_handle,
    NoteID,
    0,          /* open flags */
    &hOldNote))     /* note handle (return) */
    {
    printf("Error: unable to open note %lx.\n", NoteID);
    return (ERR(error));
    }

    if (error = NSFNoteCopy(hOldNote, &hNewNote))
    {
    printf("Error: unable to copy note.\n");
    NSFNoteClose(hOldNote);
    return(ERR(error));
    }

    if (error = NSFDbGenerateOID(*(DBHANDLE*)db_handle, &oidNew))
    {
    printf("Error: unable to generate new OID.\n");
    NSFNoteClose(hNewNote);
    NSFNoteClose(hOldNote);
    return(ERR(error));
    }

    NSFNoteSetInfo(hNewNote, _NOTE_ID, NULL);
    NSFNoteSetInfo(hNewNote, _NOTE_OID, &oidNew);
    NSFNoteSetInfo(hNewNote, _NOTE_DB, &db_handle2);

    if (error = NSFNoteUpdate (hNewNote, UPDATE_FORCE))
    {
    printf("Error: unable to update note to DB.\n");
    NSFNoteClose(hNewNote);
    return(ERR(error));
    }

    if (error = NSFNoteClose(hNewNote))
    {
    printf("Error: unable to close new note.\n");
    return(ERR(error));
    }
     
  3. AlexeyStaf

    AlexeyStaf Гость

    Спасибо, оно самое. Странно только что в C++ API в LNDocument или LNDatabase такого функционала нет уже
     
  4. divankin

    divankin Senjor developer

    Регистрация:
    13 авг 2009
    Сообщения:
    182
    Симпатии:
    0
    Ничего странного. С API первично, а вот С++ API такая же надстройка над С API, как LotusScrupt или Java API. И часть возможностей в ней тупо не реализована.
     
Загрузка...

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