18.09.2008, 14:21 | #61 |
Участник
|
В таблице валют (GL - Setup - Exchange rates) не работает переход к главной таблице по полю "ISO currency code", т.к. этого справочника (таблица ISOCurrencyCode) нет соответствующей формы.
Я так понимаю это сделали умышленно, но вот почему не могу понять. Неужели жалко нарисовать простую форму (5 минут работы). У нас тут особо смышленные пользователи уже сообщают об этом как о баге |
|
18.09.2008, 14:31 | #62 |
Участник
|
Цитата:
Сообщение от petr
В таблице валют (GL - Setup - Exchange rates) не работает переход к главной таблице по полю "ISO currency code", т.к. этого справочника (таблица ISOCurrencyCode) нет соответствующей формы.
Я так понимаю это сделали умышленно, но вот почему не могу понять. Неужели жалко нарисовать простую форму (5 минут работы). У нас тут особо смышленные пользователи уже сообщают об этом как о баге Цитата:
public void jumpRef()
{ // There is no backing form for the ISOCurrencyCode table so disable the action of the 'Go to the Main Table Form' option // from the context menu. // super(); } |
|
22.09.2008, 11:44 | #63 |
Участник
|
Неа не видел. Я же знаю BP, а именно, что форма для таблицы должна называться так же (когда это возможно), поэтому определив, что таблица называется ISOCurrencyCode просто проверил наличие соответствующей формы и дисплейного пункта меню. Ничего этого в системе не нашел и сообщил об этом.
Просто зачем тогда было делать так, чтобы в контекстном меню был пункт - "Перейти к основной таблице", можно же было сделать EDT без отношения (relation) и просто проверять введенное знаяение в validate. Тогда бы у пользователей вопросов и не возникало. P.S. Цитата:
// There is no backing form for the ISOCurrencyCode table so disable the action of the 'Go to the Main Table Form' option
// from the context menu. |
|
24.09.2008, 11:58 | #64 |
Участник
|
Цитата:
Цитата:
Сообщение от petr
DAX2009
Reports\ProdRouteCard\initFromCaller() X++: ... if (_args && _args.caller()) { showDialog = false; prodUpdRelease = _args.caller(); prodParmRelease = prodUpdRelease.parmParmBuffer(); queryBuildRangeProd.value(prodParmRelease.ProdId); if (prodParmRelease.SetupPrintRouteJob /*SetupPrintRouteCard ??? */ ) element.printJobSettings().unpackPrintJobSettings(prodParmRelease.SetupPrintRouteJob /*SetupPrintRouteCard ??? */); } В четверке это исправление есть на syp слое. Цитата:
Сообщение от petr
DAX2009:
Classes\ProdMultiScheduling\Methods\initParmBuffer X++: void initParmBuffer(ProdParmScheduling prodParmScheduling) { ProdParmScheduling saveProdParmScheduling; ; saveProdParmScheduling.data(prodParmScheduling); prodParmScheduling.data(standardParmScheduling); prodParmScheduling.ParmId = saveProdParmScheduling.ParmId; prodParmScheduling.RecId = saveProdParmScheduling.RecId; prodParmScheduling.LineNum = saveProdParmScheduling.LineNum; prodParmScheduling.ProdId = saveProdParmScheduling.ProdId; prodParmScheduling.JobStatus = saveProdParmScheduling.JobStatus; prodParmScheduling.ExecutedDateTime = saveProdParmScheduling.ExecutedDateTime; prodParmScheduling.SchedMethod = saveProdParmScheduling.SchedMethod; prodParmScheduling.JobId = saveProdParmScheduling.JobId; prodParmScheduling.JobId /* ??? */ = saveProdParmScheduling.WrkCtrIdSched; prodParmScheduling.AutoUpdate = autoUpdate; } Цитата:
А то я пытаюсь найти, но ни в 4.0, ни в 4.0 SP1 не нашел. |
|
24.09.2008, 12:24 | #65 |
Участник
|
Classes\ProdMultiScheduling\Methods\initParmBuffer - эту багу в четверке (во всяком случае в SP2) не починили. Может в dis слое починили, но я чесно говоря не знаю, где скачать актуальный dis слой для четверки.
Евгений, насколько я понял, писал про Reports\ProdRouteCard\initFromCaller(), для которого на syp слое в четверке исправление есть. |
|
24.09.2008, 12:57 | #66 |
Участник
|
Цитата:
Сообщение от petr
Classes\ProdMultiScheduling\Methods\initParmBuffer - эту багу в четверке (во всяком случае в SP2) не починили. Может в dis слое починили, но я чесно говоря не знаю, где скачать актуальный dis слой для четверки.
Евгений, насколько я понял, писал про Reports\ProdRouteCard\initFromCaller(), для которого на syp слое в четверке исправление есть. |
|
24.09.2008, 13:03 | #67 |
Участник
|
Я не помню куда инсталировался SP1, но в нем в основном были добавление типа AIF, а не исправления багов, так что скорее всего SYP слой в четверке - это SP2. Точнее я не знаю, может кто-нибудь более осведомленный просвитит.
|
|
03.10.2008, 11:23 | #68 |
MCTS
|
MS Dynamics AX 4.0 SP2EE FP1, а также AX 2009
Classes\ProjTree метод createMaster(): X++: protected void createMaster() { ProjTable _projTable = ProjTable::find(parentId); ProjTable _projTableExist; ; item = new FormTreeItem(); // BP deviation documented item.text(this.text(_projTable)); select firstonly _projTableExist; item.children(_projTableExist ? true : false); item.data(parentId); item.image(imageList.image(_projTable.image())); item.selectedImage(imageList.image(_projTable.image())); master = tree.addItem(0,0,item); // treeTreeId.insert(_projTable.RecId, master); // ?? // treeRecId.insert(master,_projTable.RecId); // ?? // Скорее всего, должно быть так: treeTreeId.insert(master,_projTable.RecId); treeRecId.insert(_projTable.RecId, master); } X++: treeTreeId = new Map(Types::Integer, Types::Int64); treeRecId = new Map(Types::Int64, Types::Integer); Последний раз редактировалось IvanOFF; 03.10.2008 в 11:26. Причина: Баг есть и в AX 2009 |
|
|
За это сообщение автора поблагодарили: kashperuk (5). |
03.10.2008, 21:31 | #69 |
Участник
|
Хорошо бы было, если бы Вы все еще описывали непосредственный сценарий, в котором вы увидели эту ошибку.
Или это большинство ошибок обнаружено просто в результате code review? |
|
20.10.2008, 16:49 | #70 |
Участник
|
DAX2009
\Classes\GanttVcWorkdayCollection сравниваем методы: X++: public GanttVcWorkday createWorkday(str _workdayName, // Type: str (up to 1000 chars) boolean _makeAllDayNonWorking = false) { ... ... ... } X++: public GanttVcWorkday findWorkdayName(Name _workdayName, // Type: Name (str 60 - max- 60 chars) boolean _throwErrorIfNotFound = false) { ... ... ... } - createCalendar(str _calendarName) - findCalendarName(Name _calendarName) P.S.: Возможно в стандарте ошибка и не проявляется, у нас проявилась при использовании классов посторения диаграм Ганта из нашего кода. Последний раз редактировалось petr; 20.10.2008 в 16:57. |
|
21.10.2008, 11:33 | #71 |
Участник
|
Петр, правильно ли я понял, что вы при создании диаграмм указывали имена Calendar/Workday длиной больше, чем 60 символов? (Причина ошибки, собственно)
|
|
22.10.2008, 02:41 | #72 |
Участник
|
Цитата:
Я в своем коде (если быть полностью точным то он был написан не мной под четверку, я переносил его на пятерку) работаем только с классов GanttClient (ну и его подклассами). При инициализации нашей формы через load() методы классов GanttClient -> GanttData вызывается в итоге метод createWorkday. Далее пользователь в форме выбирает рабочий центр (WkrCtrId) и период планирования. Соответвенно эти новые данные передаются класс GanttClient, затем вызывается метод load(), который пересчитывает все внутренне содержимое. Значение "проблемной" переменной workdayName формируется внутри стандарного функционала и для некоторых работ (ProdRouteJob) формируется из наименований первичного (Primary) рабочего центра плюс последовательно все вторичные (secondary). В нашем случае для одной операции (или работы ProdRouteJob) сформированный идентификатор календаря (workdayName) превысил заданные 60 символов. В итоге получилось так, что вначале, при инициализации формы, GanttVcWorkday был создан, а при выборе в форме рабочего центра содержащего определеную операцию, метод findWorkdayName() не находил GanttVcWorkday. Далее система пыталась создать его заново, но при создании второго GanttVcWorkday с одинаковым именем COM объект живущий внутри GanttVcWorkday выдавал ошибку. Вообщем немного коряво получилось описать. На конкретном примере все будет более понятно. Попробую на днях более четко описать проблемы - хотя самое важное и так понятно - хотелось бы, чтобы функции были симметричными - или обо обрезали до 60 символов или обе не обрезали. Инече конструкция из кода, когда вызывается: If (! aa.findWorkdayName(x)) { aa.createWorkday(x); } Если переменная x имеет длину более 60 символов. |
|
|
За это сообщение автора поблагодарили: kashperuk (5). |
22.10.2008, 21:46 | #73 |
Member
|
Есть мнение, что в
АОТ\Data Dictionary\Tables\InventDimCombination\Methods\find В 4.0 это примерно так выглядит X++: static public InventDimCombination find( ItemId _itemId, InventDim _inventDim, boolean _forUpdate = false) { InventDimCombination inventDimCombination; ; inventDimCombination.selectForUpdate(_forUpdate); select firstonly inventDimCombination index hint ItemIdx where inventDimCombination.ItemId == _itemId && inventDimCombination.ConfigId == _inventDim.ConfigId && inventDimCombination.InventSizeId == _inventDim.InventSizeId && inventDimCombination.InventColorId == _inventDim.InventColorId; return inventDimCombination; } #InventDimDevelop
__________________
С уважением, glibs® |
|
22.10.2008, 23:29 | #74 |
Member
|
А еще такой вопрос. Есть ли какое-то объяснение тому, что при удалении записи в карточке номенклатуры не удаляются размеры (InventSize), цвета (InventColor), комбинаци аналитик (InventDimCombination) и баркоды (InventItemBarcode)? А то задолбался уже.
Для этого есть какие-то причины, которые мне в голову пока не приходят, или это очередное проявление разгильдяйства кое-кого?
__________________
С уважением, glibs® |
|
23.10.2008, 11:35 | #75 |
Участник
|
Цитата:
Сообщение от glibs
А еще такой вопрос. Есть ли какое-то объяснение тому, что при удалении записи в карточке номенклатуры не удаляются размеры (InventSize), цвета (InventColor), комбинаци аналитик (InventDimCombination) и баркоды (InventItemBarcode)? А то задолбался уже.
Для этого есть какие-то причины, которые мне в голову пока не приходят, или это очередное проявление разгильдяйства кое-кого? В методах delete() аналитик прописано удаление InventDimCombination Поэтому вроде должно. Щас перепроверю на новом item каком-то Только что попробовал следующее: 1. Создать новую номенклатуру, DimGroupId поддерживает Site,Warehouse, Color, Size 2. Создать 2 цвета и 2 размера для нее. 3. Создать комбинации (все 4) 4. Перезашел в АХ 5. Удалил item. Все записи из таблиц удалились. Так что давай свои repro steps. У меня работает Последний раз редактировалось kashperuk; 23.10.2008 в 11:40. |
|
23.10.2008, 12:29 | #76 |
Member
|
Ясно. Это все таки бага, которую прибили в 5.0. Спасибо.
__________________
С уважением, glibs® |
|
23.10.2008, 17:06 | #77 |
Участник
|
Интересно, почему в DAX4 для заказов на перемещение (и журналов по ним) нет классов Ax*. Причём, для отгрузочных накладных есть?
|
|
07.11.2008, 11:30 | #78 |
Member
|
А в 5.0 можно сделать, чтобы после создания компании (создав строчку в соответствующей форме или запустив дублирование компании) она появилась в адресной строке без выйти и зайти?
__________________
С уважением, glibs® |
|
|
За это сообщение автора поблагодарили: kashperuk (5). |
07.11.2008, 11:47 | #79 |
Member
|
А то, что в плане счетов тип счета Group total игнорирует русские буквы и даже счета с хвостиком ZZ — это фича?
Создать счета 00001 0000s 0000zz 0000р (русская "Р") В параметрах для итогового счета указать 4 символа. Создать итоговый счет 0000 Разнести: 00001 - 10 0000s - 20 0000zz - 100 0000р - 200 Посмотреть итог. Если уж делать малополезные фичи, так, может, качественнее?
__________________
С уважением, glibs® |
|
07.11.2008, 12:04 | #80 |
Member
|
Цитата:
В адресной строке, если ткнуть в нее мышей, можно вводить адрес с клавиатуры (буквоцифрами). Вновь созданную компанию в таком случае хавает, и список компаний после этого обновляется без выйти и зайти.
__________________
С уважением, glibs® |
|
Теги |
bug report, баг, ошибка, dynamics |
|
|