AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 13.01.2009, 11:01   #1  
miklenew ist offline
miklenew
Участник
Benutzerbild von miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1.688 / 438 (18) +++++++
Registriert seit: 10.07.2006
Ort: г. Ликино-Дулёво
Занятное поведение
Возникла такая интересная проблема.
Есть стандартная форма InventTable. (нашу убил и взял со стандарта)
На неё на главный grid вывел своё поле(String).
Заполняю это поле.Перехожу на другую строку.
Заполняю. Перехожу на другую и т.д.
По некоторым строкам выскакивает вот такое сообщение.
"Невозможно отредактировать запись в "Параметры модуля "Запасы"" ("InventTableModule"). Номенклатура: 0/0351/002/01/4X25, Закупка.
Запись уже существует."
Zitat:
(C) \Classes\Info\add - line 12
(S) \Classes\xRecord\Update
(S) \Data Dictionary\Tables\InventTableModule\Methods\Update - line 15
(C) \Classes\FormDataSource\write
(C) \Classes\FormDataSource\Next
(C) \Classes\FormRun\task
(C) \Classes\SysSetupFormRun\task - line 20
Выскакивает эта ошибка на строках 1-21-46-71-96 и т.д. Первая через 20, остальные через 25.
Даже необязательно заполнять промежуточные строки. Можно курсор только на эти строки ставить и только в них заполнять, чтоб появилась ошибка. Остальные пустые.
При этом сохранить даёт, хоть и ругается.
Может у кого есть мысли из-за чего это может быть?
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
Alt 13.01.2009, 11:07   #2  
ZVV ist offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1.006 / 246 (11) ++++++
Registriert seit: 13.02.2004
Ort: Минск
->
Вероятно, из одной серии баги: Проблемы с отображением скл. аналитик
__________________
Zhirenkov Vitaly
Alt 13.01.2009, 11:19   #3  
miklenew ist offline
miklenew
Участник
Benutzerbild von miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1.688 / 438 (18) +++++++
Registriert seit: 10.07.2006
Ort: г. Ликино-Дулёво
Zitat:
Zitat von ZVV Beitrag anzeigen
Вероятно, из одной серии баги
Если только чуть-чуть.
Ситуация зафиксированна.
С аналитикой не связано, с отображением всё в порядке.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
Alt 13.01.2009, 11:45   #4  
glibs ist offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4.942 / 911 (40) +++++++
Registriert seit: 10.06.2002
Ort: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Не то, но на всякий случай

Не корректно сохраняет запись в inventTable

Вдруг проблемы имеют общую или похожую причину.
__________________
С уважением,
glibs®
Alt 13.01.2009, 13:39   #5  
miklenew ist offline
miklenew
Участник
Benutzerbild von miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1.688 / 438 (18) +++++++
Registriert seit: 10.07.2006
Ort: г. Ликино-Дулёво
К чему пришёл.
На тех записях recId в InventTableModule неправильный(две параллельных сессии запускал).
Т.е. при join-e система взяла к примеру 20 записей в InventTable, 3 по 20 InventTableModule и 20 InventItemLocation. Один recId из этих таблиц не правильный (взят не со своей записи). Такой состав из 100 вагонов только последний вагон не наш.
Как можно исправить
1) в методах validateWrite() этих датасорсов убрать
//inventItemLocation.ItemId = inventTable.ItemId;
Всё ok становиться. Только update сработает не для своей записи.
Следовательно не подходит.
У нас как раз и выходит та 20 запись recId не тот, ItemId не тот, но так как в validateWrite идёт подмена ItemId. То на момент update получается в системе две записи с одной и тойже номенклатурой, но с разными recId. Вот она на уровне индекса и ругается.
2) В методе active InventTable добавить
X++:
    purch_ds.reread();
    invent_ds.reread();
    sales_ds.reread();
    InventItemLocation_ds.reread();
Если хотя бы один из датасорсов коментируем, на этой таблице эта ошибка и возникает.
Конечно не правильно каждую раз перечитывать эти датасорсы, но лучше не нашёл.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
This post has been rated by: George Nordic (1).
Alt 13.01.2009, 14:13   #6  
miklenew ist offline
miklenew
Участник
Benutzerbild von miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1.688 / 438 (18) +++++++
Registriert seit: 10.07.2006
Ort: г. Ликино-Дулёво
Не правильно написал.
На тестовом примере reread сработал, а на следующем нет.
Остановился на таком варианте в конец метода active датасорса InventTable
X++:
    if(inventTable.ItemId != purch.ItemId ||
       inventTable.ItemId != sales.ItemId ||
       inventTable.ItemId != invent.ItemId ||
       inventTable.ItemId != InventItemLocation.ItemId)
    {
        purch  = InventTableModule::find(inventTable.ItemId, ModuleInventPurchSales::Purch);
        invent = InventTableModule::find(inventTable.ItemId, ModuleInventPurchSales::Invent);
        sales  = InventTableModule::find(inventTable.ItemId, ModuleInventPurchSales::Sales);
        InventItemLocation  = InventItemLocation::find(inventTable.ItemId, InventDim::inventDimIdBlank());
    }
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
Alt 13.01.2009, 14:15   #7  
kashperuk ist offline
kashperuk
Участник
Benutzerbild von kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.361 / 2084 (78) +++++++++
Registriert seit: 30.05.2004
Ort: Atlanta, GA, USA
При этом у вас теряется связь с датасорсами. То есть purch.datasource() вернет null, к примеру.
Я думаю, что не в ту сторону копаете. Но, к сожалению, времени посмотреть совместно нету.
Но интересно узнать, что получится
Alt 13.01.2009, 14:48   #8  
ZVV ist offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1.006 / 246 (11) ++++++
Registriert seit: 13.02.2004
Ort: Минск
->
Zitat:
Zitat von miklenew Beitrag anzeigen
Не правильно написал.
На тестовом примере reread сработал, а на следующем нет.
Остановился на таком варианте в конец метода active датасорса InventTable
X++:
    if(inventTable.ItemId != purch.ItemId ||
       inventTable.ItemId != sales.ItemId ||
       inventTable.ItemId != invent.ItemId ||
       inventTable.ItemId != InventItemLocation.ItemId)
    {
        purch  = InventTableModule::find(inventTable.ItemId, ModuleInventPurchSales::Purch);
        invent = InventTableModule::find(inventTable.ItemId, ModuleInventPurchSales::Invent);
        sales  = InventTableModule::find(inventTable.ItemId, ModuleInventPurchSales::Sales);
        InventItemLocation  = InventItemLocation::find(inventTable.ItemId, InventDim::inventDimIdBlank());
    }
Может я конечно слишком настойчив, но теперь мне кажется ещё более очевидно, что эти 2 проблемы имеют общие корни (в какой-то момент неверно обновляется или вообще не обновляется приджойненный датасорс).
Обратите внимание именно на это сообщение, ну и предыдущие тоже.
Проблемы с отображением скл. аналитик
__________________
Zhirenkov Vitaly
This post has been rated by: miklenew (4).
Alt 13.01.2009, 14:55   #9  
miklenew ist offline
miklenew
Участник
Benutzerbild von miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1.688 / 438 (18) +++++++
Registriert seit: 10.07.2006
Ort: г. Ликино-Дулёво
Zitat:
Zitat von ZVV Beitrag anzeigen
Может я конечно слишком настойчив, но теперь мне кажется ещё более очевидно, что эти 2 проблемы имеют общие корни
Похоже.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Поведение equal() метода в классе RunOn Server v3.0 SP4 Russland DAX: Программирование 7 15.11.2007 16:12
Поведение свойства Height в отчете KiselevSA DAX: Программирование 0 31.10.2006 15:32
Врем.табл.: поведение в 2-х и 3-х уровневой конф. Ser DAX: Программирование 12 21.12.2005 11:38
Непонятное поведение векторных полей в QueryBuildDataSource. Lemming DAX: Программирование 2 12.05.2005 17:43
Странное поведение резервирования после создания спланированной закупки. NEO DAX: Функционал 7 01.07.2004 14:03

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 07:16 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.