AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.04.2011, 15:07   #1  
EdVegas is offline
EdVegas
Участник
Аватар для EdVegas
 
3 / 10 (1) +
Регистрация: 01.03.2011
Имеем экспортированный текстовый файл со счетами продаж. При перекачке (импорте) этих счетов датапортом в другой БД при совпадении полей получаем сообщение "Счет номер ключевое поле уже существует". Каким образом сравнить два ключевых поля на совпадение и "подменить" всю запись новым значением из файла экспорта?
Старый 21.04.2011, 15:19   #2  
VProk is offline
VProk
Участник
 
25 / 10 (1) +
Регистрация: 07.03.2007
В общем случае в коде триггера OnBeforeImportRecord() можно воспользоваться механизмом

IF NOT INSERT THEN ...
подменить в текущей записи ключевые поля, после чего выполнить вставку
Старый 21.04.2011, 15:39   #3  
EdVegas is offline
EdVegas
Участник
Аватар для EdVegas
 
3 / 10 (1) +
Регистрация: 01.03.2011
А каким образом производить подмену? Есть ли для этого какой-то оператор?
Старый 21.04.2011, 15:47   #4  
VProk is offline
VProk
Участник
 
25 / 10 (1) +
Регистрация: 07.03.2007
Цитата:
Сообщение от EdVegas Посмотреть сообщение
А каким образом производить подмену? Есть ли для этого какой-то оператор?
Обычным присваиванием.
Пример из закачки Gen. Journal Line

LineNo := LineNo + 10000;
"Gen. Journal Line"."Line No." := LineNo;
"Gen. Journal Line"."Account Type" := "Gen. Journal Line"."Account Type"::"G/L Account";
"Gen. Journal Line"."Bal. Account Type" := "Gen. Journal Line"."Bal. Account Type"::"G/L Account";
"Gen. Journal Line"."Journal Template Name" := 'ОБЩИЙ';
"Gen. Journal Line"."Journal Batch Name" := 'СТАНДАРТ';

но это в качестве примера :-)
Старый 21.04.2011, 15:47   #5  
.Quattro. is offline
.Quattro.
Участник
Лучший по профессии 2009
 
194 / 22 (1) +++
Регистрация: 22.05.2006
Оператор присваивания

Вообще, вам надо менять первичный ключ в заголовке счета и во всех строках, старый номер необходимо сохранять для последующей сверке.
В идеале, если делаете экспорт из одной базы в другую, то лучше вести разную нумерацию счетов в разных базах, чтобы не было пересечений.
Старый 21.04.2011, 17:15   #6  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Регистрация: 28.12.2004
Адрес: Киев
Цитата:
Сообщение от EdVegas Посмотреть сообщение
А каким образом производить подмену? Есть ли для этого какой-то оператор?
Ну что-то типа для заголовка (и потом строк соответственно):
SalesHeader."No" := NoSeriesMgt.GetNextNo(SalesHeader."No. Series", SalesHeader."Posting Date", TRUE);
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 15:52.