• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы AlexeyStaf
  • Дата начала
A

AlexeyStaf

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

divankin

В С 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));
}
 
A

AlexeyStaf

В С 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.
Спасибо, оно самое. Странно только что в C++ API в LNDocument или LNDatabase такого функционала нет уже
 
D

divankin

Ничего странного. С API первично, а вот С++ API такая же надстройка над С API, как LotusScrupt или Java API. И часть возможностей в ней тупо не реализована.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!