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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.08.2012, 14:43   #1  
litvinenko_anton is offline
litvinenko_anton
Участник
 
11 / 10 (1) +
Регистрация: 28.08.2012
Доброго времени суток!
Подскажите кто знает где можно посмотреть документацию по тому как устроен Data Director. Меня интересует какие таблицы использует. Есть задача выполнить репликацию вручную через SQL, но я никак не могу найти таблицы хранилища и как оно устроено. Т.е. я понимаю, что надо куда-то записать идентификатор записи, что бы потом служба ее грамотно поняла и отправила, но вот куда и в каком формате - вопрос.
Старый 28.08.2012, 16:40   #2  
Alterant is offline
Alterant
Участник
 
378 / 10 (1) +
Регистрация: 31.03.2004
Цитата:
выполнить репликацию вручную через SQL
Вы хотите наладить репликацию средствами SQL? Или средствами SQL дернуть DD, чтобы тот отреплицировал данные?
Если второе, то хранилища, насколько я помню, нет. Взаимодействие с DD (в том числе и передача идентификаторов записей для репликации) осуществляется через COM компонент.
Старый 28.08.2012, 17:21   #3  
litvinenko_anton is offline
litvinenko_anton
Участник
 
11 / 10 (1) +
Регистрация: 28.08.2012
Цитата:
Сообщение от Alterant Посмотреть сообщение
Цитата:
выполнить репликацию вручную через SQL
Вы хотите наладить репликацию средствами SQL? Или средствами SQL дернуть DD, чтобы тот отреплицировал данные?
Если второе, то хранилища, насколько я помню, нет. Взаимодействие с DD (в том числе и передача идентификаторов записей для репликации) осуществляется через COM компонент.
Смотрите, примерно следующий процесс. Часть функционала НАВ надо перенести в SQL.
Я создаю запись (чего-то там не важно) посредством SQL-скрипта. Создание прошло - все отлично, а как теперь дернуть запись, что бы она положилась в репликацию. Классические репликаторы как правило делаю следующее: есть журнал. В него записываются идентификаторы и сущности. А служба по этим данным сама вытягивает строку и передает ее. У DD есть что-то похожее?
Старый 29.08.2012, 01:06   #4  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Регистрация: 28.12.2004
Адрес: Киев
Цитата:
Сообщение от litvinenko_anton Посмотреть сообщение
Смотрите, примерно следующий процесс. Часть функционала НАВ надо перенести в SQL.
Я создаю запись (чего-то там не важно) посредством SQL-скрипта. Создание прошло - все отлично, а как теперь дернуть запись, что бы она положилась в репликацию. Классические репликаторы как правило делаю следующее: есть журнал. В него записываются идентификаторы и сущности. А служба по этим данным сама вытягивает строку и передает ее. У DD есть что-то похожее?
Я немного описал в Вашем посте в соседней теме..
Старый 29.08.2012, 10:05   #5  
litvinenko_anton is offline
litvinenko_anton
Участник
 
11 / 10 (1) +
Регистрация: 28.08.2012
Мне нужно уйти от нав и перенести некоторую функциональность в SQL. Есть центральная база и есть несколько магазинов. Мне надо средствами SQL положить запись в таблицы и средствами SQL положить запись в репликацию. Примерно так.
Старый 29.08.2012, 10:22   #6  
InTacto is offline
InTacto
Участник
Аватар для InTacto
 
323 / 11 (1) +
Регистрация: 09.08.2005
DataDirector тогда тут вообще ни причем, у SQL свои инструменты переноса данных. Вы не в той теме пишите, а вам отвечают с учетом специфики данной темы.
Старый 29.08.2012, 10:34   #7  
litvinenko_anton is offline
litvinenko_anton
Участник
 
11 / 10 (1) +
Регистрация: 28.08.2012
Цитата:
Сообщение от InTacto Посмотреть сообщение
DataDirector тогда тут вообще ни причем, у SQL свои инструменты переноса данных. Вы не в той теме пишите, а вам отвечают с учетом специфики данной темы.
Я в курсе, но этот вариант пока не рассматривается. Т.е. на системе уже стоит DD и он настроен и работает. Задача стоит что бы новые разработки пустить вы обход НАВ
Старый 29.08.2012, 12:00   #8  
litvinenko_anton is offline
litvinenko_anton
Участник
 
11 / 10 (1) +
Регистрация: 28.08.2012
Нашел немного инфы. Может кто подтвердит или опровергнет.
Если таблица «Предв.Действие». Она вроде как выступает хранилищем данных для отправки. Кто что может сказать по этому поводу?
Старый 29.08.2012, 12:23   #9  
Advisor is offline
Advisor
Участник
 
33 / 13 (1) ++
Регистрация: 07.09.2005
Цитата:
Сообщение от litvinenko_anton Посмотреть сообщение
Нашел немного инфы. Может кто подтвердит или опровергнет.
Если таблица «Предв.Действие». Она вроде как выступает хранилищем данных для отправки. Кто что может сказать по этому поводу?
Как настроена репликация: по действиям, по счетчику?
Если по действиям, то Вам уже написали про таблицы "Предв.Действие" и Действие.
Если же по счетчику, то не нужно никуда вставлять записи, а нужно ставить значение счетчика в создаваемой/модифицируемой записи.
Старый 29.08.2012, 12:34   #10  
litvinenko_anton is offline
litvinenko_anton
Участник
 
11 / 10 (1) +
Регистрация: 28.08.2012
Цитата:
Сообщение от advisor Посмотреть сообщение
Цитата:
Сообщение от litvinenko_anton Посмотреть сообщение
Нашел немного инфы. Может кто подтвердит или опровергнет.
Если таблица «Предв.Действие». Она вроде как выступает хранилищем данных для отправки. Кто что может сказать по этому поводу?
Как настроена репликация: по действиям, по счетчику?
Если по действиям, то Вам уже написали про таблицы "Предв.Действие" и Действие.
Если же по счетчику, то не нужно никуда вставлять записи, а нужно ставить значение счетчика в создаваемой/модифицируемой записи.
Прошу прощения я неверное не так понял. Дело в том, что это слегка новая тема для меня.
А не могли бы по-конкретнее прояснить (или скажите где посмотреть) по первому варианту - в каком формате надо заполнять поля таблицы Пред.Действие или что они означают; по второму варианту - саму идею. Т.к. я не в курсе про счетчики. Как они обрабатываются, куда их ставить (это отдельное создаваемое поле?) и откуда брать?
Заранее спасибо
Старый 29.08.2012, 14:00   #11  
Alterant is offline
Alterant
Участник
 
378 / 10 (1) +
Регистрация: 31.03.2004
Цитата:
Сообщение от InTacto Посмотреть сообщение
DataDirector тогда тут вообще ни причем, у SQL свои инструменты переноса данных. Вы не в той теме пишите, а вам отвечают с учетом специфики данной темы.
Думаю (я бы даже сказал, уверен ), что удаленные базы - нативные, и средствами SQL туда перенести данные не получится.
Старый 29.08.2012, 14:00   #12  
Advisor is offline
Advisor
Участник
 
33 / 13 (1) ++
Регистрация: 07.09.2005
Цитата:
Сообщение от litvinenko_anton Посмотреть сообщение
Цитата:
Сообщение от advisor Посмотреть сообщение
Цитата:
Сообщение от litvinenko_anton Посмотреть сообщение
Нашел немного инфы. Может кто подтвердит или опровергнет.
Если таблица «Предв.Действие». Она вроде как выступает хранилищем данных для отправки. Кто что может сказать по этому поводу?
Как настроена репликация: по действиям, по счетчику?
Если по действиям, то Вам уже написали про таблицы "Предв.Действие" и Действие.
Если же по счетчику, то не нужно никуда вставлять записи, а нужно ставить значение счетчика в создаваемой/модифицируемой записи.
Прошу прощения я неверное не так понял. Дело в том, что это слегка новая тема для меня.
А не могли бы по-конкретнее прояснить (или скажите где посмотреть) по первому варианту - в каком формате надо заполнять поля таблицы Пред.Действие или что они означают; по второму варианту - саму идею. Т.к. я не в курсе про счетчики. Как они обрабатываются, куда их ставить (это отдельное создаваемое поле?) и откуда брать?
Заранее спасибо
Как работает репликация по действиям:
1. Происходит вставка, изменение или удаление записи в некой таблице.
2. Срабатывают триггеры в Наве, которые пишут в таблицу предварительных действий что мы сделали (вставка,изменение,удаление), с какой записью (первичный ключ), когда и кто сделал.
3. Данные переносятся в таблицу Действий отдельным заданием в планировщике (постоянно крутится соответствующее задание и запускается с неким как правило небольшим интервалом)
4. Далее другое задание (уже непосредственно репликации) читает данные из этой таблицы, выбирает записи и отправляет получателю.
Что туда писать проще посмотреть на уже имеющиеся у Вас данные в этой таблице. Не вижу смысла перечислять все поля. Тем более они могут быть несколько кастомизированы. Основные это номер операции, номер таблицы, тип действия, ключ, дата. Если ключ составной, то его составные части перечисляются через ;


Как работает репликация по счетчикам:
1. Происходит вставка, изменение или удаление записи в некой таблице.
2. Срабатывают триггеры в Наве, которые обновляют специальное поле в этой же модифицируемой таблице. Тут возможны нюансы. Может туда ставится "имеющееся в этой таблице максимальное значение" +1, а может 0. Это тоже зависит есть ли кастомизация.
3. Далее задание репликации читает данные из этой таблицы, отправляет получателю и запоминает максимальное значение счетчика, чтобы в следующий раз читать только записи с большим значением счетчика.
В этом случае все просто для обработки SQL. Правильный update счетчика и готово.

Опять же из самих технологий понятно, что репликация по действиям может удалять записи у получателя, а по счетчикам - нет.

Очень бы рекомендовал прежде чем писать при помощи SQL записи в предействия посмотреть на код заполнения этой таблицы в Нав. Т.е. берете процедуру CreateAction искомой таблицы и по цепочке смотрите где что и как.

P.S. Еще дополню, что при репликации по действиям также запоминается последний отправленный номер счетчика. Боюсь ошибиться, но по-моему идентификатором счетчика служит номер записи из таблицы Action. Т.е. если сегодня была отреплицирована запись с номером 10, а завтра вы вставите запись с номером 1, то она не уйдет без сброса счетчика.
Старый 29.08.2012, 14:07   #13  
Alterant is offline
Alterant
Участник
 
378 / 10 (1) +
Регистрация: 31.03.2004
Цитата:
Сообщение от litvinenko_anton Посмотреть сообщение
Цитата:
Сообщение от advisor Посмотреть сообщение
Цитата:
Сообщение от litvinenko_anton Посмотреть сообщение
Нашел немного инфы. Может кто подтвердит или опровергнет.
Если таблица «Предв.Действие». Она вроде как выступает хранилищем данных для отправки. Кто что может сказать по этому поводу?
Как настроена репликация: по действиям, по счетчику?
Если по действиям, то Вам уже написали про таблицы "Предв.Действие" и Действие.
Если же по счетчику, то не нужно никуда вставлять записи, а нужно ставить значение счетчика в создаваемой/модифицируемой записи.
Прошу прощения я неверное не так понял. Дело в том, что это слегка новая тема для меня.
А не могли бы по-конкретнее прояснить (или скажите где посмотреть) по первому варианту - в каком формате надо заполнять поля таблицы Пред.Действие или что они означают; по второму варианту - саму идею. Т.к. я не в курсе про счетчики. Как они обрабатываются, куда их ставить (это отдельное создаваемое поле?) и откуда брать?
Заранее спасибо
Я бы рекомендовал вам сначала разобраться чего вы хотите.
Если хотите "средствами SQL положить запись в репликацию" и уйти от использования нативной репликации (под этим я подразумеваю все ее настройки - задания, подзадания, и т.п. и функции, которые ее выполняют) и Application Server, то смысла разбираться с таблицей "Пред.Действие" нет, т.к. она используется там.
При репликации по действиям принцип примерно следующий:
1. В процессе модификации записей в рабочих таблицах в "Пред.Действие" складываются значения первичных ключей этих записей и типы действий (создание/модификация/удаление).
2. Дальше функция в NAV (обычно работающая под Application Server) читает эту таблицу и через COM компонент передает данные Data Director.
3. DD отсылает данные в удаленную БД.
Старый 29.08.2012, 14:26   #14  
litvinenko_anton is offline
litvinenko_anton
Участник
 
11 / 10 (1) +
Регистрация: 28.08.2012
Цитата:
Сообщение от advisor Посмотреть сообщение
Цитата:
Сообщение от litvinenko_anton Посмотреть сообщение
Цитата:
Сообщение от advisor Посмотреть сообщение
Цитата:
Сообщение от litvinenko_anton Посмотреть сообщение
Нашел немного инфы. Может кто подтвердит или опровергнет.
Если таблица «Предв.Действие». Она вроде как выступает хранилищем данных для отправки. Кто что может сказать по этому поводу?
Как настроена репликация: по действиям, по счетчику?
Если по действиям, то Вам уже написали про таблицы "Предв.Действие" и Действие.
Если же по счетчику, то не нужно никуда вставлять записи, а нужно ставить значение счетчика в создаваемой/модифицируемой записи.
Прошу прощения я неверное не так понял. Дело в том, что это слегка новая тема для меня.
А не могли бы по-конкретнее прояснить (или скажите где посмотреть) по первому варианту - в каком формате надо заполнять поля таблицы Пред.Действие или что они означают; по второму варианту - саму идею. Т.к. я не в курсе про счетчики. Как они обрабатываются, куда их ставить (это отдельное создаваемое поле?) и откуда брать?
Заранее спасибо
Как работает репликация по действиям:
1. Происходит вставка, изменение или удаление записи в некой таблице.
2. Срабатывают триггеры в Наве, которые пишут в таблицу предварительных действий что мы сделали (вставка,изменение,удаление), с какой записью (первичный ключ), когда и кто сделал.
3. Данные переносятся в таблицу Действий отдельным заданием в планировщике (постоянно крутится соответствующее задание и запускается с неким как правило небольшим интервалом)
4. Далее другое задание (уже непосредственно репликации) читает данные из этой таблицы, выбирает записи и отправляет получателю.
Что туда писать проще посмотреть на уже имеющиеся у Вас данные в этой таблице. Не вижу смысла перечислять все поля. Тем более они могут быть несколько кастомизированы. Основные это номер операции, номер таблицы, тип действия, ключ, дата. Если ключ составной, то его составные части перечисляются через ;


Как работает репликация по счетчикам:
1. Происходит вставка, изменение или удаление записи в некой таблице.
2. Срабатывают триггеры в Наве, которые обновляют специальное поле в этой же модифицируемой таблице. Тут возможны нюансы. Может туда ставится "имеющееся в этой таблице максимальное значение" +1, а может 0. Это тоже зависит есть ли кастомизация.
3. Далее задание репликации читает данные из этой таблицы, отправляет получателю и запоминает максимальное значение счетчика, чтобы в следующий раз читать только записи с большим значением счетчика.
В этом случае все просто для обработки SQL. Правильный update счетчика и готово.

Опять же из самих технологий понятно, что репликация по действиям может удалять записи у получателя, а по счетчикам - нет.

Очень бы рекомендовал прежде чем писать при помощи SQL записи в предействия посмотреть на код заполнения этой таблицы в Нав. Т.е. берете процедуру CreateAction искомой таблицы и по цепочке смотрите где что и как.

P.S. Еще дополню, что при репликации по действиям также запоминается последний отправленный номер счетчика. Боюсь ошибиться, но по-моему идентификатором счетчика служит номер записи из таблицы Action. Т.е. если сегодня была отреплицирована запись с номером 10, а завтра вы вставите запись с номером 1, то она не уйдет без сброса счетчика.
Спасибо очень информативно
Старый 29.08.2012, 14:27   #15  
litvinenko_anton is offline
litvinenko_anton
Участник
 
11 / 10 (1) +
Регистрация: 28.08.2012
Цитата:
Сообщение от Alterant Посмотреть сообщение
Цитата:
Сообщение от litvinenko_anton Посмотреть сообщение
Цитата:
Сообщение от advisor Посмотреть сообщение
Цитата:
Сообщение от litvinenko_anton Посмотреть сообщение
Нашел немного инфы. Может кто подтвердит или опровергнет.
Если таблица «Предв.Действие». Она вроде как выступает хранилищем данных для отправки. Кто что может сказать по этому поводу?
Как настроена репликация: по действиям, по счетчику?
Если по действиям, то Вам уже написали про таблицы "Предв.Действие" и Действие.
Если же по счетчику, то не нужно никуда вставлять записи, а нужно ставить значение счетчика в создаваемой/модифицируемой записи.
Прошу прощения я неверное не так понял. Дело в том, что это слегка новая тема для меня.
А не могли бы по-конкретнее прояснить (или скажите где посмотреть) по первому варианту - в каком формате надо заполнять поля таблицы Пред.Действие или что они означают; по второму варианту - саму идею. Т.к. я не в курсе про счетчики. Как они обрабатываются, куда их ставить (это отдельное создаваемое поле?) и откуда брать?
Заранее спасибо
Я бы рекомендовал вам сначала разобраться чего вы хотите.
Если хотите "средствами SQL положить запись в репликацию" и уйти от использования нативной репликации (под этим я подразумеваю все ее настройки - задания, подзадания, и т.п. и функции, которые ее выполняют) и Application Server, то смысла разбираться с таблицей "Пред.Действие" нет, т.к. она используется там.
При репликации по действиям принцип примерно следующий:
1. В процессе модификации записей в рабочих таблицах в "Пред.Действие" складываются значения первичных ключей этих записей и типы действий (создание/модификация/удаление).
2. Дальше функция в NAV (обычно работающая под Application Server) читает эту таблицу и через COM компонент передает данные Data Director.
3. DD отсылает данные в удаленную БД.
Мне надо уйти не от нативной репликации, но от функционала НАВ. Т.е. то что НАВ делает кодеюнитами, мне надо сделать "ручками"
Старый 29.08.2012, 14:42   #16  
Alterant is offline
Alterant
Участник
 
378 / 10 (1) +
Регистрация: 31.03.2004
Цитата:
Сообщение от litvinenko_anton Посмотреть сообщение
Цитата:
Сообщение от Alterant Посмотреть сообщение
Я бы рекомендовал вам сначала разобраться чего вы хотите.
Если хотите "средствами SQL положить запись в репликацию" и уйти от использования нативной репликации (под этим я подразумеваю все ее настройки - задания, подзадания, и т.п. и функции, которые ее выполняют) и Application Server, то смысла разбираться с таблицей "Пред.Действие" нет, т.к. она используется там.
При репликации по действиям принцип примерно следующий:
1. В процессе модификации записей в рабочих таблицах в "Пред.Действие" складываются значения первичных ключей этих записей и типы действий (создание/модификация/удаление).
2. Дальше функция в NAV (обычно работающая под Application Server) читает эту таблицу и через COM компонент передает данные Data Director.
3. DD отсылает данные в удаленную БД.
Мне надо уйти не от нативной репликации, но от функционала НАВ. Т.е. то что НАВ делает кодеюнитами, мне надо сделать "ручками"
NAV все делает кодеюнитами, в том числе читает таблицу "Пред.Действие" и передает данные DD.
Если вы хотите и этот шаг делать делать вне NAV, то смысла разбираться с таблицей "Пред.Действие"- нет. Изучайте COM интерфейс DD.
Если хотите эмулировать работу NAV по созданию действий (записей в "Пред.Действие"), а репликацию все же оставить на NAV, то это другое дело.
Старый 29.08.2012, 14:47   #17  
litvinenko_anton is offline
litvinenko_anton
Участник
 
11 / 10 (1) +
Регистрация: 28.08.2012
Цитата:
Сообщение от Alterant Посмотреть сообщение
Цитата:
Сообщение от litvinenko_anton Посмотреть сообщение
Цитата:
Сообщение от Alterant Посмотреть сообщение
Я бы рекомендовал вам сначала разобраться чего вы хотите.
Если хотите "средствами SQL положить запись в репликацию" и уйти от использования нативной репликации (под этим я подразумеваю все ее настройки - задания, подзадания, и т.п. и функции, которые ее выполняют) и Application Server, то смысла разбираться с таблицей "Пред.Действие" нет, т.к. она используется там.
При репликации по действиям принцип примерно следующий:
1. В процессе модификации записей в рабочих таблицах в "Пред.Действие" складываются значения первичных ключей этих записей и типы действий (создание/модификация/удаление).
2. Дальше функция в NAV (обычно работающая под Application Server) читает эту таблицу и через COM компонент передает данные Data Director.
3. DD отсылает данные в удаленную БД.
Мне надо уйти не от нативной репликации, но от функционала НАВ. Т.е. то что НАВ делает кодеюнитами, мне надо сделать "ручками"
NAV все делает кодеюнитами, в том числе читает таблицу "Пред.Действие" и передает данные DD.
Если вы хотите и этот шаг делать делать вне NAV, то смысла разбираться с таблицей "Пред.Действие"- нет. Изучайте COM интерфейс DD.
Если хотите эмулировать работу NAV по созданию действий (записей в "Пред.Действие"), а репликацию все же оставить на NAV, то это другое дело.
Если хотите эмулировать работу NAV по созданию действий (записей в "Пред.Действие"), а репликацию все же оставить на NAV, то это другое дело. самый подходящий вариант))
 


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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 12:19.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.