Страница 1 из 1

F_MBP::oMBP_Out.InsertObj - описание процедуры

Добавлено: 08 авг 2014, 11:43
Senkrid
Здравствуйте.

Для создания записи MBPOut решил отойти от привычного "ручного" создания и воспользоваться существующими средствами - oMBP_Out.InsertObj.
Что есть в справке по этому поводу:
Procedure F_MBP::oMBP_Out.InsertObj
Выполняет вставку новой записи. Производятся необходимые модификации связанных записей. Никаких проверок корректности изменений внутри не производится, поэтому процедуру необходимо предварять соответствующим набором процедур проверки, размещенных в одном _try-блоке с ней.

Procedure InsertObj (
var _Buf : TMBP_Out;
_Contx : F_MBPPUB::TCallCtx;
_Response : F_MBPPUB::TBatConf);
Описание
Выполняет вставку новой записи. Производятся необходимые модификации связанных записей. Никаких проверок корректности изменений внутри не производится, поэтому процедуру необходимо предварять соответствующим набором процедур проверки, размещенных в одном _try-блоке с ней. При возникновении проблем с модификацией таблиц внутри процедуры генерируется исключение.
Возвращает значение для позиционирования на новую запись в _Buf.NRec.
Подготовил _Buf - заполнил всеми необходимыми значениями. С остальными 2-я параметрами осталось разобраться (тип-запись, подробного описания нет).
Запись создается, но при этом получаю сообщение "Дублирование уникального ключа..." по nRec-ку. Возможно дело в _Buf или в этих параметрах
1. Кто может объяснить эти 2 параметра?

Код: Выделить всё

Type TCallCtx = Record  
  OutSide : Boolean;  
  BatMode : Integer;
  FrWhere : Integer;  
  BlPhase : Integer;  
  Level   : Integer;  
  NeedChk : Integer;
End;

Type TBatConf = Record  
  Action : LongInt;  
  Singl  : LongInt;  
  Multi  : LongInt;
End;
2. При использовании InsertObj происходит автоматическая корректировка MBPIn или проще сделать все руками?

Re: F_MBP::oMBP_Out.InsertObj - описание процедуры

Добавлено: 08 авг 2014, 13:07
Senkrid
Senkrid писал(а): 2. При использовании InsertObj происходит автоматическая корректировка MBPIn или проще сделать все руками?
Сам отвечаю - да, происходит корректировка (правятся кол-во, даты,статус).
Вопрос с дублированием по nRec -у решен: в _Buf нужно указывать nRec := 0 ;

Остаётся вопрос по 2-м параметрам.