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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.03.2005, 16:52   #1  
Mihon is offline
Mihon
Участник
 
39 / 10 (1) +
Регистрация: 25.03.2005
Thumbs up
Копаю Навижн. Возник вопрос - можно ли выполнять какое-либо действие при Insert, Update, Delete в таблице, вне зависимости от того, указано ли (TRUE) в параметрах уметодов, производящих эти действия.
Т.е. если я где-нибудь в коде пишу
Код:
SalesLine.INSERT;
// SalesLine = record ("Sales Line" No.37)
триггер OnInsert не отрабатывает. А хочется. Чтобы не ловить по всему навижну подобные вызовы.
Только тут проблема еще в том, что на OnInsert выполняется куча всякой хрени, которая далеко не всегда нужна. А свой код нужен всегда. Куды копать?

PS: Navision Attain 3.10
Старый 25.03.2005, 17:24   #2  
Dzemon is offline
Dzemon
Moderator
 
1,247 / 12 (3) ++
Регистрация: 09.09.2004
Есть функции в 1 кодеюните, в конце (верси 3.хх)
Старый 25.03.2005, 18:33   #3  
Kirvisniemi is offline
Kirvisniemi
Moderator
 
342 / 13 (1) ++
Регистрация: 21.12.2004
Нельзя.
Старый 25.03.2005, 19:26   #4  
Mihon is offline
Mihon
Участник
 
39 / 10 (1) +
Регистрация: 25.03.2005
Цитата:
Сообщение от Dzemon
Есть функции в 1 кодеюните, в конце (верси 3.хх)
Смотрим список функций...

Name
CompanyOpen
FindPrinter
LogInStart
LogInEnd
ApplicationVersion
ApplicationBuild
ApplicationLanguage
CodeCoverage
MakeDateText
MakeTimeText
MakeText
MakeDateFilter
MakeDateFilter2
FindPeriod
FindText
ReadSymbol
ReadNumeral
ReadCharacter
AutoFormatTranslate
ReadRounding
CaptionClassTranslate
DimCaptionClassTranslate
VATCaptionClassTranslate
Fmt Decimal
evаl Decimal
SetGlobalLanguage
NASHandler
ApplicationServerLanguageID
UserPortalApplServer
PriceCaptionClassTranslate

Тут вроде ничего похожего на то, что мне нужно, нет...

Второй вариант ответа, хоть и не утешителен, но близок к правде.
Старый 28.03.2005, 11:43   #5  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
Оч. странно. Вообще в конце должны быть забавные функции типа OnGlobalInsert, OnGlobalModify etc.
Может, гранула нужна какая?
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 29.03.2005, 10:13   #6  
konrad_imported is offline
konrad_imported
Участник
 
183 / 10 (1) +
Регистрация: 25.11.2004
В 3.10 нет таких функций. В 3.70 - есть.
Старый 29.03.2005, 15:13   #7  
Dzemon is offline
Dzemon
Moderator
 
1,247 / 12 (3) ++
Регистрация: 09.09.2004
В 3.60 тоже есть.
Старый 29.03.2005, 15:39   #8  
Mihon is offline
Mihon
Участник
 
39 / 10 (1) +
Регистрация: 25.03.2005
Цитата:
Сообщение от konrad
В 3.10 нет таких функций. В 3.70 - есть.
Да, проверили сегодня с нашими навизаторами. В 3.10 такой штуки нет. Жаль. Придется долго морочиться. Спасибо за помощь.
Старый 29.03.2005, 15:54   #9  
Wizard_imported is offline
Wizard_imported
Участник
 
157 / 10 (1) +
Регистрация: 25.11.2004
Не надо морочиться, эти триггеры в обсуждаемом контексте бесполезны, как лаконично и верно отметил tyrex.
Только триггеры SQL (если версия позволяет) или шерстить весь код (нереально имхо)
или прописать аккуратненько то что требуется, в конкретной ветке действий пользователя (надеясь что он не пойдет в будущем другим путем)
или попробовать найти альтернативное решение бизнес-задачи, для которой понадобилась такая функциональность...
Старый 30.03.2005, 13:29   #10  
Mihon is offline
Mihon
Участник
 
39 / 10 (1) +
Регистрация: 25.03.2005
Цитата:
Сообщение от Wizard
Не надо морочиться, эти триггеры в обсуждаемом контексте бесполезны, как лаконично и верно отметил tyrex.
Только триггеры SQL (если версия позволяет) или шерстить весь код (нереально имхо)
или прописать аккуратненько то что требуется, в конкретной ветке действий пользователя (надеясь что он не пойдет в будущем другим путем)
или попробовать найти альтернативное решение бизнес-задачи, для которой понадобилась такая функциональность...
Это не бизнес-задача, а техническая. Требуется знать о КАЖДОМ внесенном изменении в некоторый перечень таблиц.

Можете что-нибудь посоветовать?
Старый 30.03.2005, 15:14   #11  
johndoe is offline
johndoe
Участник
 
88 / 10 (1) +
Регистрация: 15.10.2004
Адрес: Москва
Можем Обратите внимание на 3 таблицы:
402 - Change Log Setup
403 - Change Log Setup (Table)
404 - Change Log Setup (Field)
Когда все заработает , смотрите в таблицу 405 - Change Log Entry.
Будут вопросы, спрашивайте!
Старый 30.03.2005, 16:44   #12  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
Это называется "журнал изменений".
Находится в финансах, настройки - в финансы-настройки.
Только вот есть ли он в 3.10?..
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 30.03.2005, 16:56   #13  
Wizard_imported is offline
Wizard_imported
Участник
 
157 / 10 (1) +
Регистрация: 25.11.2004
нету его в 3.10
Народы, ну не надо человека напрасно обнадеживать...
не являются эти функции "всегда отрабатывающими триггерами".
В частности, приведенный в топике <SalesLine.INSERT;> ими отловлен не будет.
... а под бизнес-задачей я понимал "зачем понадобилась такая техническая возможность".
Старый 30.03.2005, 20:00   #14  
Mihon is offline
Mihon
Участник
 
39 / 10 (1) +
Регистрация: 25.03.2005
Цитата:
Сообщение от Wizard
нету его в 3.10
Народы, ну не надо человека напрасно обнадеживать...
не являются эти функции "всегда отрабатывающими триггерами".
В частности, приведенный в топике <SalesLine.INSERT;> ими отловлен не будет.
... а под бизнес-задачей я понимал "зачем понадобилась такая техническая возможность".
Ага. Нету. Хо-о-о-орошая такая дырочка в таблицах с 398 до 5050 Кстати работа с ними осуществляется именно из OnGlobal<*> Смотрели на чужой 3.70. Апгрейд прошу не предлагать
Старый 30.03.2005, 20:09   #15  
Mihon is offline
Mihon
Участник
 
39 / 10 (1) +
Регистрация: 25.03.2005
Цитата:
Сообщение от Wizard
... а под бизнес-задачей я понимал "зачем понадобилась такая техническая возможность".
Требуется фиксировать изменения для последующей синхронизации данных с внешней системой. Штатные Actions и Preactions прописаны далеко не везде. И их не хватает. Есть еще варианты, как отслеживать, например, SalesLine и SalesHeader, беря в рассчет автоматизацию Учета заказов, преобразования квот в заказы и проч.... А там много где в коде стоит просто SalesLine.Insert или SalesLine.Delete
Вообще, функционала, связанного с этими структурами данных, в Навижн немеряно... И всё перелопачивать, прописывая TRUE (а не всегда это можно сделать) или вызов своей функции?
Старый 31.03.2005, 10:13   #16  
Wizard_imported is offline
Wizard_imported
Участник
 
157 / 10 (1) +
Регистрация: 25.11.2004
Т.е. база нативная, как я понимаю?
тогда сори... не смогу толком помочь - насколько я знаю, в навижене нет собственных средств репликации данных. Есть какая-то подобка в функциональности RetailBackOffice (кажется так называется), можете попробовать посмотреть у продавцов... Если даже не подойдет, может на мысли какие натолкнет.
А так... для стопроцентного решения задачи - SQL в руки. Всё остальное - только с вечными опасениями что чего-то проскочило мимо расставленных ловушек. Кстати - только своя функция рядом с инсертами, переводить на TRUE категорически не рекомендую, даже не говоря о том, что бывают вставки во временные таблицы...
PS. переход на SQL - это песня пострашнее апгрейда.
Старый 31.03.2005, 11:30   #17  
Mihon is offline
Mihon
Участник
 
39 / 10 (1) +
Регистрация: 25.03.2005
2 Wizard
Цитата:
Т.е. база нативная, как я понимаю?
Она самая.
Цитата:
Есть какая-то подобка в функциональности RetailBackOffice (кажется так называется), можете попробовать посмотреть у продавцов...
Там есть специальные таблицы Actions и Preactions, но работа с ними не прописана в тех таблицах, которые нужны. Можно отслеживать изменение цен на товары, сами карточки товаров и клиентов... Но не заказы. Или это наши внедренцы так постарались
Цитата:
Если даже не подойдет, может на мысли какие натолкнет.
Так именно это и пытаемся сделать.
Цитата:
А так... для стопроцентного решения задачи - SQL в руки....
PS. переход на SQL - это песня пострашнее апгрейда.
Вот именно поэтому SQL Server Option пока лежит в заначке.

Спасибо за попытку помочь, Wizard.
Старый 31.03.2005, 11:57   #18  
Dzemon is offline
Dzemon
Moderator
 
1,247 / 12 (3) ++
Регистрация: 09.09.2004
В RBO функции регистрации изменений прописаны в триггерах Insert, Modify, Delete, Rename всех таблиц. Причем Rename запрещено.
Старый 31.03.2005, 17:14   #19  
Mihon is offline
Mihon
Участник
 
39 / 10 (1) +
Регистрация: 25.03.2005
Что-то я задергался... Уже и не в том топике записи меняю... Короче, нет там никакого кода. Киньте, что у вас там прописано, плиз.
Старый 14.07.2005, 14:28   #20  
ANK is offline
ANK
Участник
 
2 / 10 (1) +
Регистрация: 24.07.2003
Есть такая хрень - GetGlobalTableTriggerMask(cod1), работает нормально. Однак если на таблице отработало раз, то дальше не отрабатывает (На этой таблице, на другой отрабатывает). Почему - вопрос интересный. Внутренние механизмы какие-то затронуты...
 


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

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

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