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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.11.2011, 16:09   #1  
Arahnid is offline
Arahnid
Участник
 
880 / 60 (4) ++++
Регистрация: 09.08.2005
Адрес: Moscow
Ax2009 Процедура создания времен
Создала время и нажала обновить табель. Но вместо маленькой буквы поставила большую. Переименовала время, чтобы с маленькой буквы. Изменила в таблице RPayTblTrans время тоже на маленькую букву. И теперь в методе таблицы
transdayHour он не может определить fieldId, хотя название поля он ищет правильно. Уже и откомпилировала, синхронизировала. Не видит он поле с конкретно этим кодом.

Почему так?
Старый 08.11.2011, 16:45   #2  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Попробуйте удалить поле и создать заново.

С Уважением,
Георгий
Старый 08.11.2011, 16:48   #3  
Arahnid is offline
Arahnid
Участник
 
880 / 60 (4) ++++
Регистрация: 09.08.2005
Адрес: Moscow
Было, с тем же названием создала и не вышло. Удалила этот тайм и без него считаю. Другой тайм не видит. Причем какие-то таймы у него созданные нормально определяются, а другие нет.

Последний раз редактировалось Arahnid; 08.11.2011 в 16:58.
Старый 08.11.2011, 16:59   #4  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
Попробуйте следующее :
Надо в коде перевыбрать поле. Компиляции не достаточно. Ну т.е. если стоит в Коде
X++:
InventTable.MyField = ........
Надо затереть .MyField снова нажать точку
X++:
InventTable.
и перевыбрать поле. Потом откомпилировать и пересинхронизировать.Это глюк. Знаю про такое чудо по опыту перехода на AX2009.
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.
Старый 08.11.2011, 17:06   #5  
Arahnid is offline
Arahnid
Участник
 
880 / 60 (4) ++++
Регистрация: 09.08.2005
Адрес: Moscow
X++:
fieldId = _payDayHourCalc == RPayDayHourCalc::Day ?
                  fieldname2id(tablenum(RPayTblTrans), #DayFieldPrefix + _payTblTimeCode) :
                  fieldname2id(tablenum(RPayTblTrans), #TimeFieldPrefix + _payTblTimeCode);
только код там вот такой и это мне кажется особые меры садизма. Что можно с этим делать?
Старый 08.11.2011, 17:32   #6  
ivas is offline
ivas
Участник
Аватар для ivas
 
252 / 68 (3) ++++
Регистрация: 22.12.2005
Цитата:
Сообщение от Arahnid Посмотреть сообщение
X++:
fieldId = _payDayHourCalc == RPayDayHourCalc::Day ?
                  fieldname2id(tablenum(RPayTblTrans), #DayFieldPrefix + _payTblTimeCode) :
                  fieldname2id(tablenum(RPayTblTrans), #TimeFieldPrefix + _payTblTimeCode);
только код там вот такой и это мне кажется особые меры садизма. Что можно с этим делать?
fieldId - булевого типа? интересный ход)
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy
Старый 08.11.2011, 17:41   #7  
Arahnid is offline
Arahnid
Участник
 
880 / 60 (4) ++++
Регистрация: 09.08.2005
Адрес: Moscow
Это стандартный код программы. Только что-то он у меня не срабатывает
Старый 08.11.2011, 18:05   #8  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
Попробуйте еще такое :
1) Во- первых почистите КЭШ.
2) Если там есть fieldid, значит там должно быть что-то типа this.(fieldid); Здесь выдает ошибку? Сравните через дебаггер fieldid в коде и с реальным fieldid в таблице через репозитарий объектов в свойствах поля. Попробуйте здесь this.(fieldid); проделать ту же процедуру, о которой я говорил раньше.
3)Можно еще попробовать закомментить весь метод и все тоже самое написать ниже, таким образом просто перекинув его на USR слой.
4)А что произойдет если вы вернете Большую букву?
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.
Старый 08.11.2011, 18:11   #9  
Arahnid is offline
Arahnid
Участник
 
880 / 60 (4) ++++
Регистрация: 09.08.2005
Адрес: Moscow
4) Оказалось что дело не только в том времени. Так что большая буква не причем.
2) Да здесь
3) не помогло

1 буду пробовать
Старый 08.11.2011, 18:14   #10  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
Попробуйте еще такое
X++:
if (_payTblTimeCode== 'MyField')
fieldId = _payDayHourCalc == RPayDayHourCalc::Day ?
                  fieldname2id(tablenum(RPayTblTrans), #DayFieldPrefix + 'MyField') :
                  fieldname2id(tablenum(RPayTblTrans), #TimeFieldPrefix + 'MyField');

else

fieldId = _payDayHourCalc == RPayDayHourCalc::Day ?
                  fieldname2id(tablenum(RPayTblTrans), #DayFieldPrefix + _payTblTimeCode) :
                  fieldname2id(tablenum(RPayTblTrans), #TimeFieldPrefix + _payTblTimeCode);
как отреагирует?
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.

Последний раз редактировалось Pustik; 08.11.2011 в 18:17.
Старый 08.11.2011, 19:58   #11  
Arahnid is offline
Arahnid
Участник
 
880 / 60 (4) ++++
Регистрация: 09.08.2005
Адрес: Moscow
кэш не помог, а последнее тоже не видит fieldId
Причем не видит только 2 тайма из всех созданных
Я удалила тайм, а он его все равно тянет и говорит, что не нашел. В таблице нет, через собственно базу - поля нет. Откуда он его взял в RPayTblTrans? Кэш чистила.

Последний раз редактировалось Arahnid; 08.11.2011 в 20:34.
Старый 08.11.2011, 20:56   #12  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
У меня есть подозрения, что Ваше созданное поле залегло еще в какой-то таблице(map-e), кроме RPayTblTrans. Или еще куда прописался его идентификатор(Имя). Надо найти. Ведь в этот метод Ахарта может попадать откуда угодно. Попробуйте стандартным поиском поискать его(по названию), хотя бы в таблицах(map-ах) семейства Rpay.....
Хотя, я бы, не пожалел времени и поискал по всему репозитарию.

P.S. Предположим в таблице последний идентификатор поля на USR слое был 10. Вы решили создать новое поле. Создали. Его идентификатор будет 11. Логично. Но, если Вы удалили это поле( с идентификатором 11) и вдруг захотели создать новое поле, идентификатор у нового поля будет уже 12.Таким образом образовалась дырка между 10 и 12.
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.

Последний раз редактировалось Pustik; 08.11.2011 в 21:32.
Старый 08.11.2011, 22:55   #13  
Arahnid is offline
Arahnid
Участник
 
880 / 60 (4) ++++
Регистрация: 09.08.2005
Адрес: Moscow
Ответ оказался до глупости прост. Подняла код и выяснилось, что каким -то странным образом при переносе строк счетчиков именно данное время как - то странно встало в значение. После его перевыбора в счетчиках это заработало. Странно конечно, эксель между тем что было и тем что я перевыбрала разницы не показывает, а Аксапте приятно.

Последний раз редактировалось Arahnid; 08.11.2011 в 22:57.
Теги
расчеты с персоналом

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
dynamicscare: Understanding Production Postings in AX2009 Blog bot DAX Blogs 0 26.08.2011 21:13
sumitax: AX4.0 to AX2009 Upgrade Back to Basics Blog bot DAX Blogs 0 29.06.2011 19:12
axinthefield: Choosing a Single Deployment or Multiple Deployments of AX2009 Blog bot DAX Blogs 0 15.06.2011 03:25
Khue Trinh: Fill Utility in AX2009 Blog bot DAX Blogs 0 28.09.2010 10:05
Shekhar: Dynamics AX2009 : Standalone Installation on Vista with Role centres and workflow. Blog bot DAX Blogs 0 30.03.2010 15:05

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

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

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