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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.02.2011, 12:58   #1  
Geo is offline
Geo
Участник
Аватар для Geo
 
258 / 47 (2) +++
Регистрация: 04.04.2008
Накосячили в коде?
Доброго времени суток!

Щекотливая тема возникла.

У нас внедрявший партнер осуществляет техподдержку. Технически, схема работы такова, что разработка ведется партнером на тестовом приложении, а нам передаются объекты, которые мы заливаем на рабочее. Однажды при заливке на рабочее произошла ошибка компиляции. Партнер попросил доступ на рабочее приложение и что-то там поправил. После этого периодически (не реже раза в месяц) на РАБОЧЕМ приложении в разных местах стали возникать ошибки времени выполнения, что-нибудь вроде:
Цитата:
Ошибка времени выполнения: FormTabPageControl Объект не инициализирован.

(C)\Classes\FormTabPageControl\owner
(C)\Forms\xBrowser\Methods\close
(C)\Classes\FormCommandButtonControl\Clicked
или
Цитата:
Ошибка времени выполнения: В FormRun (Источник данных), не найден исполнимый код метода "init".

(C)\Forms\RAssetPosting\Methods\init
(C)\Classes\SysSetupFormRun\init - line 12

Ошибки бывают разные: объект не инициализирован, неверная передача параметров, метод неверно вызван и всё такое прочее. На тестовом приложении ошибки не воспроизводятся. Каждый раз партнер просит доступ на рабочую и что-то там исправляет.

Объекты, на которых вываливаются ошибки, иногда вообще находятся в слое sys. Мы свою разработку (помимо партнера) ведем, но очень мало, очень поверхностно и так же на тестовом приложении с последующей переливкой на рабочее. То есть представляется, что крайне маловероятно, что мы что-то зацепили.

Мне кажется, это похоже на ошибку программистов партнера. Что скажете?
Старый 16.02.2011, 13:11   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,431 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Как давно делали глобальную компиляцию?

P.S.: смысл глобальной компиляции
Старый 16.02.2011, 13:12   #3  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2155 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
1. Нужно понять что они там "делают" Может, просто компилируют соответствующие объекты?
2. Вы глобальную компиляцию давно делали на рабочей?
3. Разработка ведется на одном слое?
4. У вас гарантировано стоят последние версии клиентов у разных сотрудников?
__________________
Ivanhoe as is..
Старый 16.02.2011, 13:14   #4  
samolalex is offline
samolalex
Участник
Аватар для samolalex
Самостоятельные клиенты AX
 
259 / 107 (4) +++++
Регистрация: 18.06.2010
Адрес: Москва
что первым пришло в голову: можно попробовать сделать очистку данных (администрирование -> настройка -> использование данных) тех объектов, вызов которых приводит к появлению ошибок.
__________________
С уважением, Александр.
За это сообщение автора поблагодарили: Geo (1).
Старый 16.02.2011, 13:28   #5  
Evgeniy2020 is offline
Evgeniy2020
Участник
 
309 / 68 (3) ++++
Регистрация: 10.04.2007
Адрес: Москва, САО, СЗАО
иногда надо делать инкрементную компиляцию в иерархиях классов, которые поменялись.
Старый 16.02.2011, 13:59   #6  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2155 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Цитата:
Сообщение от Evgeniy2020 Посмотреть сообщение
иногда надо делать инкрементную компиляцию в иерархиях классов, которые поменялись.
Я бы сказал, желательно всегда делать инкрементную компиляцию иерархических классов. По-хорошему, это должно быть явно прописано в описании переноса модификации на рабочую.
__________________
Ivanhoe as is..
Старый 16.02.2011, 16:33   #7  
AX2009
Гость
 
n/a
А партнера не пробовали спросить, чо за ххх??
кстати назовите партнера, будем знать героев в лицо
За это сообщение автора поблагодарили: kornix (-2).
Старый 16.02.2011, 16:53   #8  
kornix is offline
kornix
MCP
MCBMSS
Злыдни
Ex AND Project
 
414 / 146 (5) +++++
Регистрация: 24.02.2009
Адрес: Санкт-Петербург
Цитата:
Сообщение от AX2009 Посмотреть сообщение
А партнера не пробовали спросить, чо за ххх??
кстати назовите партнера, будем знать героев в лицо
Какое xxx вы имеете ввиду?
Хотелось бы поправить вас: не всегда виноват партнер.
За это сообщение автора поблагодарили: GBH (1),  (-1).
Старый 16.02.2011, 16:57   #9  
zZ_TOP_Zz is offline
zZ_TOP_Zz
int 20h
Аватар для zZ_TOP_Zz
 
143 / 24 (1) +++
Регистрация: 26.02.2007
Адрес: Санкт -Петербург
А я бы сказал что необходимо тщательней делать проверку при заливке кода на рабочее. Ибо приложения разработки и реальная рабочая среда могут сильно различаться...и причем тут партнер?
__________________
It's just my Unhopelessnessabilityerism
Trying to debug my mind
За это сообщение автора поблагодарили: kornix (2).
Старый 16.02.2011, 17:11   #10  
AX2009
Гость
 
n/a
Цитата:
Сообщение от zZ_TOP_Zz Посмотреть сообщение
А я бы сказал что необходимо тщательней делать проверку при заливке кода на рабочее. Ибо приложения разработки и реальная рабочая среда могут сильно различаться...и причем тут партнер?
опять же повторюсь, нормальный партнер никогда бы не предложил клиенту такой способ переноса. это, извините, просто ХХХЪЪ. у меня нет других слов.
Старый 16.02.2011, 17:19   #11  
zZ_TOP_Zz is offline
zZ_TOP_Zz
int 20h
Аватар для zZ_TOP_Zz
 
143 / 24 (1) +++
Регистрация: 26.02.2007
Адрес: Санкт -Петербург
2AX2009
> опять же повторюсь, нормальный партнер никогда бы не предложил клиенту такой способ переноса. это, извините, просто ХХХЪЪ. у меня нет других слов.

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

Мне кажется что вы не совсем представляете работу технических поддержек со своими безусловно правильными методологически выверенными методологиями внедрений.
__________________
It's just my Unhopelessnessabilityerism
Trying to debug my mind
Старый 16.02.2011, 17:07   #12  
AX2009
Гость
 
n/a
Цитата:
Сообщение от kornix Посмотреть сообщение
Какое xxx вы имеете ввиду?
Хотелось бы поправить вас: не всегда виноват партнер.
Партнер, который лезет в рабочую базу и что-то там загружает/исправляет - это уже плохой партнер. Я бы такому партнеру ххх оторвал.
Правильный партнер знаком с методологией внедрения, и знает, как нужно правильно переносить код в рабочее приложение.
Старый 16.02.2011, 17:26   #13  
kornix is offline
kornix
MCP
MCBMSS
Злыдни
Ex AND Project
 
414 / 146 (5) +++++
Регистрация: 24.02.2009
Адрес: Санкт-Петербург
Цитата:
Сообщение от AX2009 Посмотреть сообщение
Партнер, который лезет в рабочую базу и что-то там загружает/исправляет - это уже плохой партнер. Я бы такому партнеру ххх оторвал.
Правильный партнер знаком с методологией внедрения, и знает, как нужно правильно переносить код в рабочее приложение.
AX2009, я понимаю что Вы знакомы с методологией лучше некоторых партнеров, но во-первых прошу учесть: партнер может попросить доступ, когда рабочее приложение уже не работает. А если функциональность хорошо оттестирована и корректно перенесена - проблем быть не должно.

А по поводу "оторвал" - валить все на партнера проще всего, ваше право.
Старый 16.02.2011, 16:49   #14  
driller is offline
driller
Сам.AX
Аватар для driller
Самостоятельные клиенты AX
SAP
 
78 / 54 (2) ++++
Регистрация: 11.04.2007
Адрес: Санк-Петербург
(C)\Forms\xBrowser\Methods\close

Видя до боли знакомое имя, осмелюсь предположить, что это «АНД Проджект»
Хотя не следует забывать о логической уловке «После не значит «вследствие»», и вендор тут вовсе не причём.
__________________
"Считать метафору доказательством, поток праздных слов источником истины, а себя оракулом - это заблуждение, свойственное всем нам."
Поль Валери
За это сообщение автора поблагодарили: kornix (1).
Старый 16.02.2011, 16:59   #15  
kornix is offline
kornix
MCP
MCBMSS
Злыдни
Ex AND Project
 
414 / 146 (5) +++++
Регистрация: 24.02.2009
Адрес: Санкт-Петербург
Цитата:
Сообщение от Geo Посмотреть сообщение
Доброго времени суток!

Щекотливая тема возникла.

У нас внедрявший партнер осуществляет техподдержку. Технически, схема работы такова, что разработка ведется партнером на тестовом приложении, а нам передаются объекты, которые мы заливаем на рабочее. Однажды при заливке на рабочее произошла ошибка компиляции. Партнер попросил доступ на рабочее приложение и что-то там поправил. После этого периодически (не реже раза в месяц) на РАБОЧЕМ приложении в разных местах стали возникать ошибки времени выполнения, что-нибудь вроде:


или



Ошибки бывают разные: объект не инициализирован, неверная передача параметров, метод неверно вызван и всё такое прочее. На тестовом приложении ошибки не воспроизводятся. Каждый раз партнер просит доступ на рабочую и что-то там исправляет.

Объекты, на которых вываливаются ошибки, иногда вообще находятся в слое sys. Мы свою разработку (помимо партнера) ведем, но очень мало, очень поверхностно и так же на тестовом приложении с последующей переливкой на рабочее. То есть представляется, что крайне маловероятно, что мы что-то зацепили.

Мне кажется, это похоже на ошибку программистов партнера. Что скажете?
Geo, а вы когда проекты загружаете, запускаете сравнение объектов? После импорта запускается компиляция объектов, у вас должны были вылезти ошибки при загрузке, например если система пишет "Не найден исполняемый код метода ..." - это ошибка компиляции, ее видно в сообщениях компилятора
За это сообщение автора поблагодарили: zZ_TOP_Zz (1), AxaptaUser (-1).
Старый 16.02.2011, 22:31   #16  
Geo is offline
Geo
Участник
Аватар для Geo
 
258 / 47 (2) +++
Регистрация: 04.04.2008
Господа, спасибо за советы и бурное обсуждение. Но каков всё-таки итог? Это похоже на ошибку программистов партнера, или это мы по неопытности (которой у нас, местами, в избытке) что-то могли накосячить, или это могут быть вообще ошибки MS в новой версии?

Стоит ли, в принципе, в таких случаях попробовать запускать глобальную компиляцию (и как это делается)?
Техподдержка - техподдержкой, но мы должны и сами учиться обслуживать систему...


Цитата:
Сообщение от kornix Посмотреть сообщение
Geo, а вы когда проекты загружаете, запускаете сравнение объектов? После импорта запускается компиляция объектов, у вас должны были вылезти ошибки при загрузке, например если система пишет "Не найден исполняемый код метода ..." - это ошибка компиляции, ее видно в сообщениях компилятора
Сравнение объектов запускаем, но как бы чисто из любопытства Для чего еще оно нам может пригодиться? Судить о правильности нового кода мы и близко не возьмемся.

Вот один раз и вылезла ошибка при компиляции. ПОСЛЕ этого (не значит "вследствие", действительно) пошли периодически какие-то траблы.


Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
1. Нужно понять что они там "делают" Может, просто компилируют соответствующие объекты?
2. Вы глобальную компиляцию давно делали на рабочей?
3. Разработка ведется на одном слое?
4. У вас гарантировано стоят последние версии клиентов у разных сотрудников?
1. Да вот решил уже спросить мнения экспертного сообщества... Как говорится, две головы - хорошо, а Интернет - лучше.
2. Глобальная компиляция - это нажать на кнопку компиляции, находясь в корне АОТа, или как-то по-другому? Не уверен, что мы вообще ее запускали.
3. Разработка ведется на одном слое. Я, собственно, и хотел бы разделить слои (чтобы видеть, где уже мы меняли, а где нет), но пока не узнал, как
4. У нас терминальная система, так что, как я понимаю, версия клиента должна быть одинаковая. Но не факт, что последняя (в целом, мы предпочитаем не чинить, пока не поломается).


Цитата:
Сообщение от AX2009 Посмотреть сообщение
опять же повторюсь, нормальный партнер никогда бы не предложил клиенту такой способ переноса. это, извините, просто ХХХЪЪ. у меня нет других слов.
Ну, тут-то партнер точно ни при чем. Мы сами отказались от девелоперского приложения ради экономии. Да и простота тоже привлекает. Чем проще, тем понятнее и надежнее, в некоторых условиях.
За это сообщение автора поблагодарили: mazzy (2), kornix (1).
Старый 16.02.2011, 22:43   #17  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2155 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Цитата:
Сообщение от Geo Посмотреть сообщение
Господа, спасибо за советы и бурное обсуждение. Но каков всё-таки итог? Это похоже на ошибку программистов партнера, или это мы по неопытности (которой у нас, местами, в избытке) что-то могли накосячить, или это могут быть вообще ошибки MS в новой версии?
Ошибки MS - ни при чем
Скорее всего вы не корректно перенесли доработку (ту же инкрементную компиляцию не запустили). Партнер плохо поступил, что не рассказал что же он сделал на вашей рабочей. И раз уж у вас мало опыта - требуйте с партнера четкой инструкции по переносу каждой модификации.

Цитата:
Сообщение от Geo Посмотреть сообщение
Стоит ли, в принципе, в таких случаях попробовать запускать глобальную компиляцию (и как это делается)?
Администрирование / Периодические операции / Глобальная компиляция. Запускать когда никого нет в системе.

Цитата:
Сообщение от Geo Посмотреть сообщение
Сравнение объектов запускаем, но как бы чисто из любопытства Для чего еще оно нам может пригодиться? Судить о правильности нового кода мы и близко не возьмемся.
Ну я бы все таки внимательнее смотрел на изменения. Мало ли, все ошибаются...

Цитата:
Сообщение от Geo Посмотреть сообщение
3. Разработка ведется на одном слое. Я, собственно, и хотел бы разделить слои (чтобы видеть, где уже мы меняли, а где нет), но пока не узнал, как
Разделять есть смысл только при наличии четкого регламента ведения модификаций и переноса между приложениями. Как это делать лучше - обсуждалось на форуме не раз. Где-то с год назад было большое обсуждение точно. Но опять же, если нет опыта - лучше не связываться.

Цитата:
Сообщение от Geo Посмотреть сообщение
4. У нас терминальная система, так что, как я понимаю, версия клиента должна быть одинаковая. Но не факт, что последняя (в целом, мы предпочитаем не чинить, пока не поломается).
Значит, дело не в клиенте.

P.S. сходите на тренинг по разработке, хотя бы начального уровня и задайте вопросы тренеру. Стоит не дорого, но риск сломать рабочую Систему значительно снизится.
__________________
Ivanhoe as is..

Последний раз редактировалось Ivanhoe; 16.02.2011 в 22:46.
За это сообщение автора поблагодарили: mazzy (2), kalex_a (1), Geo (1).
Старый 16.02.2011, 23:09   #18  
Geo is offline
Geo
Участник
Аватар для Geo
 
258 / 47 (2) +++
Регистрация: 04.04.2008
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
Скорее всего вы не корректно перенесли доработку (ту же инкрементную компиляцию не запустили). Партнер плохо поступил, что не рассказал что же он сделал на вашей рабочей.
Теперь вижу, что очень похоже на то. Хорошо, что барабашки нет

Спасибо.
Старый 17.02.2011, 04:59   #19  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Geo Посмотреть сообщение
Стоит ли, в принципе, в таких случаях попробовать запускать глобальную компиляцию (и как это делается)?
Да. Это один из танцев с бубном, который поддерживает здоровье аксапты.
http://forum.mazzy.ru/index.php?showtopic=584

Цитата:
Сообщение от Geo Посмотреть сообщение
2. Глобальная компиляция - это нажать на кнопку компиляции, находясь в корне АОТа, или как-то по-другому? Не уверен, что мы вообще ее запускали.
можно и так.
можно и через главное меню, как Ivanhoe сказал
Администрирование / Периодические операции / Глобальная компиляция.

Цитата:
Сообщение от Geo Посмотреть сообщение
3. Разработка ведется на одном слое. Я, собственно, и хотел бы разделить слои (чтобы видеть, где уже мы меняли, а где нет), но пока не узнал, как
жизнь усложнится. регламентных процедур и процедур по верификации станет больше.
если вы таки будете выполнять эти регламентные процедуры, то порядка станет больше.
но вы ведь у вас уже сейчас проблемы именно из-за невыполнения регламентов.
поэтому тут стоит хорошо взвесить.

Цитата:
Сообщение от Geo Посмотреть сообщение
4. У нас терминальная система, так что, как я понимаю, версия клиента должна быть одинаковая. Но не факт, что последняя (в целом, мы предпочитаем не чинить, пока не поломается).
не факт.
тут лучше не надеятся, а мониторить.
все ли клиенты подключаются с терминального сервера? или таки есть особо одаренные
Администрирование \ Активные пользователи

Цитата:
Сообщение от Geo Посмотреть сообщение
Ну, тут-то партнер точно ни при чем. Мы сами отказались от девелоперского приложения ради экономии. Да и простота тоже привлекает. Чем проще, тем понятнее и надежнее, в некоторых условиях.
Да, так делают.
Но при этом теряется технический контроль. И нужно выстраивать отношения с партнером.
Другими словами, задача переходит из технической области и область отношений.
Это ни хорошо, ни плохо, ИМХО. Просто надо учитывать.


Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
Администрирование / Периодические операции / Глобальная компиляция. Запускать когда никого нет в системе.
ну... запускать то можно и при пользователях. но тормозить будет. и есть риск некорректной работы клиентов при обнаружении ошибок компиляции.

если же глобальная компиляция запускается как средство профилактики, а не как средство лечения, то запускать можно и при работающих пользователях.

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


Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
Разделять есть смысл только при наличии четкого регламента ведения модификаций и переноса между приложениями. Как это делать лучше - обсуждалось на форуме не раз. Где-то с год назад было большое обсуждение точно. Но опять же, если нет опыта - лучше не связываться.
Поддерживаю.

Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
P.S. сходите на тренинг по разработке, хотя бы начального уровня и задайте вопросы тренеру. Стоит не дорого, но риск сломать рабочую Систему значительно снизится.
Поддерживаю.
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: Geo (1).
Старый 17.02.2011, 08:39   #20  
Geo is offline
Geo
Участник
Аватар для Geo
 
258 / 47 (2) +++
Регистрация: 04.04.2008
Цитата:
Сообщение от mazzy Посмотреть сообщение
все ли клиенты подключаются с терминального сервера? или таки есть особо одаренные
Все через терминалку. Коммунизм в этом плане.

Цитата:
Да, так делают.
Но при этом теряется технический контроль. И нужно выстраивать отношения с партнером.
Другими словами, задача переходит из технической области и область отношений.
Тестовое приложение у нас практически не используется пользователями, а данные на нем регулярно обновляются. Пока что это удобно. Есть дополнительные требования скорости реакции (надо успеть, пока эксперименты на тестовом не перезатерты новым обновлением с рабочего), но зато не надо на девелоперском руками создавать упрощенные примеры, все ошибки идут в первозданном виде, со всеми подробностями.

Цитата:
жизнь усложнится. регламентных процедур и процедур по верификации станет больше.
Ага, то есть, похоже, нам лучше оставить всю разработку на usr. И здесь простой подход оказался наиболее соответствующим ситуации. Ну и славно.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как правильно создать в коде X++ новый planned order (ReqPO, ReqTrans) rkorchagin DAX: Программирование 5 02.06.2016 18:00
.NET business connector не видит изменений в коде Аксапты rkorchagin DAX: Программирование 2 22.01.2010 11:43
Номерная серия длиннее 20 символов - баг в коде Максимка DAX: Функционал 17 29.12.2009 02:11
Запятая в коде номенклатуры oxbacc DAX: Функционал 15 30.05.2007 18:15
Можно ли в коде управлять свойством Mandatory? kostas DAX: Программирование 5 10.03.2004 11:14

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

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

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