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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.04.2010, 18:52   #1  
Shannon is offline
Shannon
Участник
Аватар для Shannon
 
19 / 10 (1) +
Регистрация: 25.08.2004
Адрес: Kyiv
Проблема с ParmId
[AX 4.0 (4.0.2503), MS SQL]

В измененной версии Аксапты, в классе purchFormLetter, закомментировано создание ParmId. (Почему именно, разбираться времени нет — тем более, что клиенты говорят, что до сих пор это не мешало.)

Но поскольку ParmId все же нужен, то я его создаю сам:

X++:
                    formLetter  = new PurchFormLetter_InvoiceAuditCT();

                    formLetter.transDate(systemdateget());
                    formLetter.specQty(PurchUpdate::All);
                     
                   // manually obtaining ParmId, because it is disabled in PurchFormLetter
                   numSeq = NumberSeq::newGetNum(NumberSeqReference::findReference(typeId2ExtendedTypeId(typeid(ParmId))));
                    parmId = numSeq.num();

                    formLetter.parmId(parmId);
                    formLetter.sumBy(AccountOrder::Account);
                    formLetter.createParmUpdate();
Но позже возникают проблемы: в методе updateNow класса PurchFormLetter_Invoice, когда выполнение доходит до кода:

X++:
                    recordListPurchParmLine.first(purchParmLine);
                    while (purchParmLine)
                    {
                    

    {
…то в цикл мы не входим, и, соответственно, ничего не постится, и я получаю сообщение об ошибке.

Если посмотреть, как формируется recordListPurchParmLine, то видно, что запрос имеет примерно такой вид:

X++:
SELECT * FROM PurchParmLine WHERE ((ParmId = N'21100019165')) AND ((TableRefId = N'21100019168'))
При этом в запросе виден ParmId, который я создал в коде — но в PurchParmLine его почему-то нет! Вместо этого я нахожу в PurchParmLine соответствующую строчку, и ParmId в ней равно '21100019082' (значения ParmId меняются при каждой попытке проведения, но смысл в том, что они не равны).

Подскажите, в каком хотя бы направлении думать?

Последний раз редактировалось Shannon; 06.04.2010 в 19:00.
Старый 06.04.2010, 19:23   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Shannon Посмотреть сообщение
... Но поскольку ParmId все же нужен, то я его создаю сам
Цитата:
Сообщение от Shannon Посмотреть сообщение
значения ParmId меняются при каждой попытке проведения, но смысл в том, что они не равны
Потому и не равны, что система создаёт свой ParmId, а вы свой.
Старый 06.04.2010, 20:26   #3  
Shannon is offline
Shannon
Участник
Аватар для Shannon
 
19 / 10 (1) +
Регистрация: 25.08.2004
Адрес: Kyiv
Но, по идее, вначале все равно должен быть создан ParmId, и дальше во всех Parm-таблицах должен прописываться именно он. То есть система должна подхватывать ParmId, созданный и переданный экземпляру класса PurchFormLetter. Или нет?
Старый 06.04.2010, 22:07   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Могу посоветовать только поставить breakpoint в insert PurchParmLine и искать откуда система берёт второй ParmId
Теги
ax4.0, invoice, parm tables, posting, purchase, purchase order

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Проблема с единицей измерения longson DAX: Программирование 4 16.07.2007 14:35
Проблема с созданием объекта Lelya DAX: Администрирование 33 27.06.2005 16:38
Проблема импорт Usr слоя из одной компании в другую Pavel Pustovalov DAX: Администрирование 6 12.08.2004 23:24
Проблема: русские шрифты в отчетах, формируемых на сервере. Anais DAX: Администрирование 3 17.11.2003 13:20
Проблема с Х++, глазами Ява-девелопера blacky DAX: Программирование 3 26.11.2002 11:50

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:05.