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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 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).
Теги
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, время: 13:20.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.