|
![]() |
#1 |
Участник
|
Цитата:
всю жизнь пользовался проверкой bufcmp(record,record.orig()) для определения, что запись изменена. или record.field == record.orig().field для определени измененности поля. зачем нужен этот toched? |
|
![]() |
#2 |
Microsoft Dynamics
|
Mazzy - ну написали люди классы ВНУТРИ AX, теперь пользуются ими внутри AX, что здесь такого? Оба способа приемлимы, так что это дело вкуса и привычки.
|
|
![]() |
#3 |
Участник
|
Цитата:
я хочу ПОНЯТЬ - что побудило их написать? и что лучше использовтать в текущей версии аксапты? практический смысл вопроса очень простой: = надо ли заморачиваться и делать ax-обертки для своих таблиц/полей? = нало ли заморачиваться и требовать от локализации наличия таких ax-оберток? ================= кстати, не согласен насчет вкуса и привычки. для многих таблиц и полей локализации ax-обертки отсутствуют. кастомизированные таблицы/поля с огромной вероятностью не имеют оберток. |
|
![]() |
#4 |
Участник
|
Цитата:
Цитата:
Редактирование данных в Excel
За счет использования Microsoft Dynamics AX 2012 Office Add-ins редактировать можно будет любые данные, опубликованные в виде доступного сервиса. Для этого подключитесь к AOS, укажите нужный сервис, перетащите поля, которые вас интересуют, в книгу Excel, обновите данные, чтобы заполнить книгу, затем отредактируйте их и нажмите кнопку, чтобы отразить изменения в системе. Редактирование данных в Excel включает следующие возможности:
Цитата:
Цитата:
С точки зрения учебного процесса наука состоит из фундаментальных принципов, которые можно выделить и изучать и которые являются истинными. Каковы основополагающие начала программной инженерии? Некоторые говорят, что программная инженерия – это «гуманитарная наука», что не так-то просто установить ее основополагающие начала.
Я хотел бы предложить свой вариант. Моим кандидатом на роль основополагающего начала программной инженерии выступает понятие, которое мой коллега Ли Макларен (Lee MacLaren) из компании Boeing Military Aircraft называет «однототочечным управлением» (single-point control). При такой организации вычислений задача, которая должна решаться в нескольких местах, решается только в одном, а во всех остальных местах на это одно лишь ссылаются при необходимости. В качестве самого распространенного примера такого управления можно привести программный модуль, например, библиотечную подпрограмму. Если нам требуется извлечь квадратный корень или выполнить сортировку в нескольких местах в программе, то мы не пишем всякий раз один и тот же программный код, решающий эту задачу. Этот код мы располагаем в каком-то одном месте и обращаемся к нему (вызываем его) по мере необходимости. Почему мы это делаем? Конечно, потому, что такой код занимает меньше места. Разумеется, потому что это упрощает программную логику. И потому, что если необходимо изменить программный код, то это достаточно сделать один раз. Сторонние системы не заставишь дергать все специфичные для Аксапты обработчики (с учетом того, что поля не обернуты в свойства со своими get/set) и/или заполнять поля в определенном порядке, а бизнес-логика приложения Аксапты при этом должна как-то отрабатывать. По-моему, из-за этого и решили нагромоздить все эти классы. Цитата:
Сообщение от mazzy
![]() практический смысл вопроса очень простой:
= надо ли заморачиваться и делать ax-обертки для своих таблиц/полей? = нало ли заморачиваться и требовать от локализации наличия таких ax-оберток? для многих таблиц и полей локализации ax-обертки отсутствуют. кастомизированные таблицы/поля с огромной вероятностью не имеют оберток. ![]() Последний раз редактировалось gl00mie; 26.03.2011 в 15:27. Причина: typo |
|
![]() |
#5 |
Microsoft Dynamics
|
Цитата:
Сообщение от mazzy
![]() mifi, я верю. и не спорю, что приемлемы.
я хочу ПОНЯТЬ - что побудило их написать? и что лучше использовтать в текущей версии аксапты? практический смысл вопроса очень простой: = надо ли заморачиваться и делать ax-обертки для своих таблиц/полей? = нало ли заморачиваться и требовать от локализации наличия таких ax-оберток? ================= кстати, не согласен насчет вкуса и привычки. для многих таблиц и полей локализации ax-обертки отсутствуют. кастомизированные таблицы/поля с огромной вероятностью не имеют оберток. "И по старинке считал, что ax-классы используются сугубо в web-сервисах для доступа к таблицам". Что в общем, верно, написаны они были для движка интеграции. Что не запрещает их использовать для каких-либо других целей. Что касается локализации - по идее, обработка полей локализации должны присутствовать в классах-обертках системных таблиц, куда эти поля были добавлены. Что же касается таблиц локализации - то, если есть сценарии интеграции с их участием, обращайся к известным тебе людям, думаю, тебя услышат ![]() |
|
![]() |
#6 |
Участник
|
Угу. Тоже сторонние системы..
как я уже говорил: "и не спорю, что приемлемы." я хочу ПОНЯТЬ. Цитата:
Я знаю куда обращаться. И знаю что делать, если есть сценарии. я хочу понять - ЗАЧЕМ? Ок, похоже коллективный разум тоже склоняется к мысли о сугубо внешних системах... Похоже не было причин для внутреннего использования. только внешние. |
|
![]() |
#7 |
Microsoft Dynamics
|
Цитата:
Сообщение от mazzy
![]() Угу. Тоже сторонние системы..
как я уже говорил: "и не спорю, что приемлемы." я хочу ПОНЯТЬ. mifi, это обсужение начинает быть похожим на вопросы oukudao. Я знаю куда обращаться. И знаю что делать, если есть сценарии. я хочу понять - ЗАЧЕМ? Ок, похоже коллективный разум тоже склоняется к мысли о сугубо внешних системах... Похоже не было причин для внутреннего использования. только внешние. Почему мне, как разработчику AX нельзя использовать этот код сейчас для своих нужд? Есть полезный код, я могу его использовать и использую. Зачем - чтобы избежать повторного написания того же самого кода. |
|
![]() |
#8 |
Участник
|
Цитата:
Если хотите пообсуждать ваши проблемы - открывайте новые ветки. Повторяю свой вопрос: Какие еще будут мнения, кроме тривиального "сделано для работы из внешних систем"? |
|
|
За это сообщение автора поблагодарили: DSPIC (-9). |
![]() |
#9 |
Участник
|
Были причины, и чем дальше, тем больше. Когда приложение начинает разрастаться, а потом вдруг нужно добавить какую-нить логику для поля, ранее фактически не использовавшегося, то очень жалеешь, что подобные ax-классам механизмы не использовались ранее, ведь так было бы просто подпилить один класс и, к примеру, автоматом получить заполнение нового поля таблицы в сотне мест, где создаются в ней записи. А из-за того, что прежде годами и ты сам, и люди до тебя, да и разработчики стандартного приложения использовали подход clear/initValue/initFromXX/insert (хорошо еще, если initFromXX, а то бывает и тупое заполнение отдельных полей), получается, что нужно по перекрестным ссылкам все эти места найти, допилить совершенно одинаковым образом (ненавистный copy-paste!
![]() Или взять тот же подход с классами, завязанными на тип записи: все это прекрасно и чудесно, только непоследовательность губит всю затею на корню. Сколько раз в коде приходилось встречать конструкции вида "если тип такой-то или такой-то, то делаем то-то". Какого ж [censored] было заводить тогда семейство отдельных классов? Надо, допустим, сделать новый тип журнала, во много схожий с уже существующим, а как глянешь по перекрестным ссылам, сколько прямых завязок на этот существующий тип журнала - просто руки опускаются... Вот и с ax-классами также: все в них хорошо (ну... подумаешь, привычная логика заполнения полей вывернута на изнанку), вот только когда "созреваешь" для их использования, то объем модификаций, необходимых, чтобы привести все к "каноническому виду", просто вгоняет в депрессию, и хочется пожелать "всего хорошего" тем твоим предшественникам, которые некогда сэкономили время, поленились нормально написать код, а тебе теперь - отдуваться... |
|
|
За это сообщение автора поблагодарили: Zabr (4), aidsua (1). |
![]() |
#10 |
Участник
|
Цитата:
Другими словами, "не надо привлекать злой умысел, когда достаточно простого бардака"? Хм... Надо подумать. |
|
Теги |
ax-классы, axbc, как правильно |
|
|