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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.06.2008, 13:18   #1  
Hub is offline
Hub
Участник
 
51 / 10 (1) +
Регистрация: 20.05.2008
Добавление новой складской аналитики, axapta 4.
Каким образом делаете добавление/создание новой складской аналитики в версии axapta 4? (так чтоб наравне с Серийный номер, ГТД и др. везде появлялаяь эта новая складская аналитика)
Старый 07.06.2008, 14:17   #2  
Vals is offline
Vals
Аманд
Аватар для Vals
Компания АМАНД
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2009
 
1,766 / 507 (20) +++++++
Регистрация: 27.02.2002
Адрес: Pass partout, Москва
Скажите, а зачем вам новая аналитика?
Какая у вас идея и для чего вы будете её использовать?
Старый 07.06.2008, 15:58   #3  
malex is offline
malex
Участник
 
164 / 19 (1) ++
Регистрация: 10.08.2004
Адрес: Тверь, Москва
Так же как и в 3.0. Поищите соответствующие темки.
Ищите в коде куски с макросом #inventDimDevelop Или для надежности можно взять аналитику по аналогии с которой хотите делать свою (не все аналитики одинаковы) и поискать объекты, в которых она используется (в 3.0 #inventDimDevelop кое где был не прописан)
Сразу приготовьтесь, что будет очень много рутинной работы
Старый 07.06.2008, 17:07   #4  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Сообщение от malex
...очень много рутинной работы...
Я бы сказал просто кусок рутинной работы.
__________________
С уважением,
glibs®
Старый 07.06.2008, 17:07   #5  
Hub is offline
Hub
Участник
 
51 / 10 (1) +
Регистрация: 20.05.2008
Цитата:
Сообщение от Vals Посмотреть сообщение
Скажите, а зачем вам новая аналитика?
Какая у вас идея и для чего вы будете её использовать?
Ммм... а зачем нужны аналитики? - ... вот именно для этого. Тем более что УУ не я придумываю.
Старый 07.06.2008, 17:11   #6  
Hub is offline
Hub
Участник
 
51 / 10 (1) +
Регистрация: 20.05.2008
Цитата:
Сообщение от malex Посмотреть сообщение
Так же как и в 3.0. Поищите соответствующие темки.
Ищите в коде куски с макросом #inventDimDevelop Или для надежности можно взять аналитику по аналогии с которой хотите делать свою (не все аналитики одинаковы) и поискать объекты, в которых она используется (в 3.0 #inventDimDevelop кое где был не прописан)
Сразу приготовьтесь, что будет очень много рутинной работы
Спасибо, поищу. Надеюсь найти слаженный алгоритм...

В общем, что-то удалось слелать, проводки с новой аналитикой проводятся. Но, к сожалению, не все формы позволяют отражать новую аналитику... и рутина уже в процессе.
Старый 07.06.2008, 17:27   #7  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Новая складская аналитика
Поиск рулит
Старый 07.06.2008, 21:04   #8  
Vals is offline
Vals
Аманд
Аватар для Vals
Компания АМАНД
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2009
 
1,766 / 507 (20) +++++++
Регистрация: 27.02.2002
Адрес: Pass partout, Москва
Цитата:
Ммм... а зачем нужны аналитики?
Вот часто вижу, как их весело используют и быстро добавляют, поэтому и возникают такие вопросы
Цитата:
Тем более что УУ не я придумываю
И чего ж им такое понадобилось в складской аналитике для управленческого учёта?
Старый 07.06.2008, 23:49   #9  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,305 / 3533 (124) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от Vals Посмотреть сообщение
Вот часто вижу, как их весело используют и быстро добавляют, поэтому и возникают такие вопросы
Все зависит на самом деле от бизнеса. Я считаю - что добавление аналитик - как раз дело правильное - если хочется получить отчетность в разрезе "чего-то".
Вот про добавление номенклатурных аналитик - еще имеет смысл спрашивать - т.к. при детальном обсуждении - необходимость добавления номенклатурной аналитики может свестись к необходимости добавления аналитики хранения.

Да и спрашивать этот вопрос нужно у человека, который принял решение добавить аналитику, а им не всегда является конечный разработчик. Далеко не каждый разработчик (это зависит не только от него - а еще и от многих других людей) знает (может знать) зачем это надо. А если и знает - то может и не знать - откуда растут ноги - и почему нельзя обойтись альтернативным способом. Конечно - если человек знает - он ответит.

А добавляют аналитики - по различным причинам. Например, на складе временного (ответственного) хранения (СВХ/СОХ) могут учитывать товар по машинам (или по клиентам). Соответственно - номер машины (или код клиента) может быть аналитикой хранения.
В другом случае - товар могут учитывать по упаковкам. Т.е. интересно получить информацию - сколько упаковок по 24шт, сколько упаковок по 20 шт. и т.д. каждого товара.

Не знаю - мне кажется - уж что-то что - а аналитики - такая вещь - которую в первую очередь нужно добавлять, если есть необходимость (безусловно, зная меру и понимая, что увеличение кол-ва аналитик - по определению просаживает производительность). Можно в чем-то другом себе отказать...
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 07.06.2008 в 23:51.
За это сообщение автора поблагодарили: aidsua (1).
Старый 08.06.2008, 12:44   #10  
Vals is offline
Vals
Аманд
Аватар для Vals
Компания АМАНД
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2009
 
1,766 / 507 (20) +++++++
Регистрация: 27.02.2002
Адрес: Pass partout, Москва
Цитата:
Соответственно - номер машины (или код клиента) может быть аналитикой хранения.
Если по конкретному примеру, то чем не подошёл серийник для номера машины (если имеется ввиду VIN).
Код клиента - интересная штука получается: ввели клиента в справочник клиентов (или в деловые отношения), а затем ещё и в аналитику - это двойной ввод? Исходя из текущих настроек аналитики, вам придётся сделать её вторичной, а то ещё пропуски по расходам/приходам добавить. Что тогда получится? Может код клиента попробуем как-то иначе проследить?

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

Цитата:
Да и спрашивать этот вопрос нужно у человека, который принял решение добавить аналитику, а им не всегда является конечный разработчик. Далеко не каждый разработчик (это зависит не только от него - а еще и от многих других людей) знает (может знать) зачем это надо
Если он хочет стать хорошим разработчиком, знать архитектуру системы, подходы к её разработке, функциональность и т.д. Более того, если он хочет дорасти до архитектора, стать классным спецом, то он обязан поинтересоваться:
1. Для чего делается такая доработка?
2. Есть ли альтернативные варианты
3. Предложить самому альтернативный вариант. (в письменной форме)

Но ведь часто так сложно взять на себя ответственность, правда? Проще сказать - аналитики придумали.
Я прошу не принимать это на личный счёт. Это общая, часто встречающаяся ситуация.

Кстати, по конкретному случаю: если разработчик не знает, в каких целях и почему добавляется аналитика, значит это не прописано в ТЗ. Если не прописано, то не рассмотрены настройки этой аналитики, её использование в системе. А значит и реализация БП, и модификация "сырая".

В данном случае я выразил своё мнение. Одни с ним не согласятся и будут правы, другие вынесут полезное для себя, и тоже будут правы

Последний раз редактировалось Vals; 08.06.2008 в 13:27. Причина: Буквы поправил :) очепятка
За это сообщение автора поблагодарили: mazzy (2), glibs (2).
Старый 08.06.2008, 13:16   #11  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Vals Посмотреть сообщение
Это общая, часто встречающаяся ситуация.

Кстати, по конкретному случаю: если разработчик не знает, в каких целях и почему добавляется аналитика, значит это не прописано в ТЗ. Если не прописано, то не рассмотрены анастройки этой налитики, её использование в системе. А значит и реализация БП, и модификация "сырая".
Это точно.
__________________
полезное на axForum, github, vk, coub.
Старый 08.06.2008, 13:25   #12  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Сообщение от Vals
...
Именно - необходимость, осознанная необходимость, большими буквами. Со знанием того, где это может вылезти, со всеми взаимосвязями, с тестированием, с поиском альтернативных решений. Кстати, альтернатива в большинстве случаев есть.
...
Поддерживаю.
__________________
С уважением,
glibs®
Старый 08.06.2008, 13:28   #13  
Vals is offline
Vals
Аманд
Аватар для Vals
Компания АМАНД
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2009
 
1,766 / 507 (20) +++++++
Регистрация: 27.02.2002
Адрес: Pass partout, Москва
Цитата:
Это точно.
и
Цитата:
Поддерживаю.
Спасибо за поддержку!
Старый 09.06.2008, 11:18   #14  
dn is offline
dn
Участник
Самостоятельные клиенты AX
 
486 / 159 (6) ++++++
Регистрация: 26.03.2003
Адрес: Москва
Цитата:
Сообщение от Vals Посмотреть сообщение
Если по конкретному примеру, то чем не подошёл серийник для номера машины (если имеется ввиду VIN).
А если серийный номер уже задействован?
И скорее всего здесь имется ввиду не VIN, а определенная машина с товаром (поставка). Т.е. если приедет через месяц машина с тем же самым VIN, но с новым товаром, то можно предположить, что это будет уже новая "машина"...
Цитата:
Сообщение от Vals Посмотреть сообщение
Код клиента - интересная штука получается: ввели клиента в справочник клиентов (или в деловые отношения), а затем ещё и в аналитику - это двойной ввод? Исходя из текущих настроек аналитики, вам придётся сделать её вторичной, а то ещё пропуски по расходам/приходам добавить. Что тогда получится? Может код клиента попробуем как-то иначе проследить?
Вот это как раз более типичный случай. Есть склад ответственного хранения, на котором хранится товар разных контрагентов. Необходимо вести остатки на этом складе в разрезе тех контрагентов, кому принадлежит этот товар.
Можно конечно предложить альтернативы в виде нескольких компаний в Axapta или нескольких складов в рамках одной компании, но решение с добавлением новой складской аналитики зачастую оказывается предпочтительнее.
Двойной ввод обычно здесь не так критичен, но при желании можно реализовать автогенерацию значений этой складской аналитики при оформлении поступления товара...
Старый 09.06.2008, 11:31   #15  
Yury J is offline
Yury J
Участник
Аватар для Yury J
 
11 / 34 (2) +++
Регистрация: 30.10.2007
Проверенный алгоритм добавления складской аналитики в Microsoft Dynamics AX 4.0.
1. Создать расширенный тип данных для новой аналитики –DUN_PurchMachineId
2. Создать функциональный ключ для настройки использования аналитики в приложении – DUN_PurchMachineId. В качестве ParentFeatureKey для него задать функциональные ключи LogisticsDefault и Invent
3. В расширенном типе данных DUN_PurchMachineId задать функциональный ключ DUN_PurchMachineId
4. Создать таблицу DUN_PurchNumberMachine с String - полями:
NumberMachineId (DUN_PurchMachineId)
ItemId (ItemId)
ConfigId (ConfigId)
5. В расширенном типе данных добавить Relation: NumberMachineId == DUN_PurchNumberMachine. NumberMachineId.
6. Создать форму DUN_PurchNumberMachine с источником DUN_PurchNumberMachine
7. В таблице InventDim:
7.1 Создать поле DUN _PurchMachineId. В качестве расширенного типа данных для него задать DUN_PurchMachineId
7.2 Добавить поле DUN _PurchMachineId в группы полей Autoreport и InventoryDimensions
7.3 Создать индекс DUN__Mach_Idx по полю DUN_PurchMachineId
7.4 Добавляем поле DUN_PurchMachineId в индекс DimIdx
7.5 Изменяем методы, в которых встречается макрос InventDimDevelop, добавляя строки аналогичные уже присутствующим в них.
dim2dimParm() + case (fieldnum(InventDim,DUN_PurchMachineId)) : return fieldnum(InventDimParm, DUN _PurchMachineIdFlag);
dimParm2dim() + case (fieldnum(InventDimParm, DUN_PurchMachineIdFlag)) : return fieldnum(InventDim, DUN_PurchMachineId);
findDim() + inventDim. DUN_PurchMachineId == _inventDim. DUN_PurchMachineId
findOrCreate() + inventDim. DUN_PurchMachineId = _inventDim. DUN_PurchMachineId;
formQueryAddDynalink() +
case tablenum(DUN_PurchNumberMachine):
inventDim_DS.query().dataSourceTable(tablenum(InventDim)).addDynalink(
fieldnum(InventDim, DUN_PurchMachineId),
args.record(),
fieldname2id(args.dataset(), fieldstr(DUN_PurchNumberMachine, NumberMachineId)));

inventDim_DS.query().dataSourceTable(tablenum(InventDim)).addSortField(fieldnum(InventDim, DUN_PurchMachineId));
isFieldIdItemDim() + case (fieldnum(InventDim, DUN_PurchMachineId)) :
8. Изменяем таблицу InventDimParm
Создаем поле DUN_PurchMachineIdFlag. В качестве расширенного типа данных для него задаем NoYesId
Добавляем поле DUN_PurchMachineIdFlag в группы полей Autoreport, View и FixedView
9. Изменяем метод в таблице WMSOrderTrans:
initInventDimPick() +
if (!_inventDimParmShow. DUN_PurchMachineIdFlag && !_inventDimParmFixed. DUN_PurchMachineIdFlag)
_inventDim. DUN_PurchMachineId = '';
10. В таблице InventSumDeltaDim (Проверки запасов в наличии) добавить поля:
String DUN_PurchMachineId DUN_PurchMachineId;
Enum DUN_MachineIdFlag_RU NoYesId.
11. В таблице InventSumDeltaDim изменяем методы:
initFromInventDim() + this. DUN_PurchMachineId = _inventDim. DUN_PurchMachineId;
initFromInventDimParm() + this. DUN_MachineIdFlag_RU = _inventDimParm. DUN_PurchMachineIdFlag;
initInventDim() + _inventDim. DUN_PurchMachineId = this. DUN_PurchMachineId;
initInventDimParm() + _inventDimParm. DUN_PurchMachineIdFlag = this. DUN_MachineIdFlag_RU;
12. Изменяем методы класса InventDimFixedClass, в которых встречается макрос InventDimDevelop, добавляя строки аналогичные уже присутствующим в них:
classDeclaration + #DEFINE. DUN_Mach_IDX(17)
initFromInventDimFixed() + inventDimParm. DUN_PurchMachineIdFlag = InventDimFixedClass::dimFixed(inventDimFixed, # DUN_Mach_IDX);
inventDimFixed() + if (inventDimParm. DUN_PurchMachineIdFlag) inventDimFixed = InventDimFixedClass::setField(inventDimFixed, # DUN_Mach_IDX);
fieldId2Idx() + case fieldnum(InventDim, DUN_PurchMachineId) : return # DUN_Mach_IDX;
13. Изменяем метод класса InventDimCtrl_Frm_QuickQuote:
buildQuery() +
if (dimParmVisibleGrid. DUN_PurchMachineIdFlag)
{
queryBuildDsDim.addSortField(fieldnum(InventDim, DUN_PurchMachineId));
sortfield = true;
}
14. Изменяем метод класса InventDimTracking:
initFromArgs() +
case tablenum(DUN_PurchNumberMachine):
numberMachine = args.record();
queryBuildRangeItemId.value(queryValue(numberMachine.ItemId));
queryBuildDataSourceDim.addRange(fieldnum(InventDim, DUN_PurchMachineId)).value(queryValue(numberMachine.NumberMachineId));
break;
15. Добавляем методы класса AxInternalBase:
public DUN_PurchMachineId parmPurchMachineId(DUN_PurchMachineId _purchMachineId = "")
{
if (! prmisdefault(_purchMachineId))
{
this.setField(fieldnum(InventDim, DUN_PurchMachineId), _purchMachineId);
}
}

public void setInventPurchMachineId()
{
if (this.isFieldSet(fieldnum(InventDim, DUN_PurchMachineId)))
{
return;
}
}
return inventDim. DUN__PurchMachineId;

16. Изменяем метод класса InventUpdateOnhand:
checkOnhand() + (inventSumDeltaDim. DUN_PurchMachineId == inventDim. DUN_PurchMachineId || inventSumDeltaDim. DUN_MachineIdFlag_RU == NoYes::No)

17. Изменяем макросы:
InventDimJoin + (%2. DUN_PurchMachineId == %3. DUN_PurchMachineId || ! %4. DUN_PurchMachineIdFlag)
InventDimSelect + (%1. DUN_PurchMachineId == %2. DUN_PurchMachineId || ! %3. DUN_PurchMachineIdFlag)
InventDimExistsJoin + (%2. DUN_PurchMachineId == %3. DUN_PurchMachineId || ! %4. DUN_PurchMachineIdFlag)
18. На Grid в формах, где отображаются стандартные складские аналитики требуется добавить поле, связанное с новой аналитикой.
19. Выполнить глобальную компиляцию приложения.

Удачи!
За это сообщение автора поблагодарили: George Nordic (15), Ace of Database (2), aidsua (1), alex55 (1), shogel (1), player (1), niksen (1).
Старый 09.06.2008, 11:58   #16  
Vals is offline
Vals
Аманд
Аватар для Vals
Компания АМАНД
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2009
 
1,766 / 507 (20) +++++++
Регистрация: 27.02.2002
Адрес: Pass partout, Москва
А расскажите, как у вас организованы процессы:
1. Перегрузка с машины на машину (перенос?)
2. Расчёт загрузки машины
3. Что происходит с аналитокой во время приходования и отгрузки клиенту?
4. Резервирование в пути
В общем, было бы неплохо, если бы вы в целях обмена опытом описали "жизнь" этой аналитики.
Спасибо!
Старый 21.08.2008, 17:16   #17  
3oppo is offline
3oppo
Участник
Аватар для 3oppo
 
222 / 32 (2) +++
Регистрация: 30.06.2005
А сколько по времени примерно займёт, добавление одной аналитики?
Старый 21.08.2008, 17:21   #18  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
В седьмом посте ссылка. Там написано.
__________________
С уважением,
glibs®
Старый 21.08.2008, 18:10   #19  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,907 / 5716 (196) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Я бы еще добавил 20ый пункт:
20. В случае использования Oracle, выполнить процедуру SQLOracleInitStoredProc::initOracleSPIMTS. Теоретически она же должна вызываться при глобальной синхронизации (когда не одна таблица, а весь словарь синхронизируется), но я бы не стал рисковать и вызвал бы ручками.
За это сообщение автора поблагодарили: aidsua (1).
Старый 12.01.2011, 13:44   #20  
player is offline
player
Участник
 
107 / 69 (3) ++++
Регистрация: 25.08.2007
Ссылка в дополнение к теме
http://sumitsaxfactor.wordpress.com/...nsion-storage/
Теги
ax3.0, ax4.0, faq, логистика, складская аналитика, управление запасами

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Код новой фин. аналитики DAX 4.0 Ivanhoe DAX: Программирование 4 13.05.2008 15:23
Сравнение в разрезе складской аналитики. longson DAX: Программирование 3 14.01.2008 13:45
отображение складской аналитики fialka DAX: Программирование 8 19.06.2007 15:55
Изменение складской аналитики sao DAX: Программирование 1 15.06.2006 14:41
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00

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

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

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