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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.06.2009, 11:37   #1  
kia is offline
kia
Участник
 
96 / 19 (1) ++
Регистрация: 07.10.2008
Адрес: Харьков
parm-метод для AxBC-класса
При проверке на соответствие рекомендациям для таблицы EmplTable для некоторых новых полей получаю сообщение: Поле Table.Field не содержит соответствующего parm-метода для AxBC-класса.
Что-бы это значило и как от этого избавиться?
Старый 11.06.2009, 11:49   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от kia Посмотреть сообщение
получаю сообщение
http://axapta.mazzy.ru/lib/exploreerror/
__________________
полезное на axForum, github, vk, coub.
Старый 11.06.2009, 11:58   #3  
kia is offline
kia
Участник
 
96 / 19 (1) ++
Регистрация: 07.10.2008
Адрес: Харьков
Цитата:
Сообщение от mazzy Посмотреть сообщение
Спасибо, хороший совет. Особенно то, что у меня закоменчена строка, показанная в статье как точка останова (Ax40). Но это не важно.
Важно то, что при проверке рекомендаций сообщения выводятся другим способом в форму Сообщения компилятора (закладка Рекомендации)
Старый 11.06.2009, 12:00   #4  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
это значит, что в классе AxEmplTable нет соответствующих методов для указанных полей.
Способ 1. Создать соответствующие методы
Способ 2. Отключить эту проверку в BP
Старый 11.06.2009, 12:10   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от kia Посмотреть сообщение
сообщения выводятся другим способом в форму Сообщения компилятора (закладка Рекомендации)
А... извините.
__________________
полезное на axForum, github, vk, coub.
Старый 11.06.2009, 12:13   #6  
kia is offline
kia
Участник
 
96 / 19 (1) ++
Регистрация: 07.10.2008
Адрес: Харьков
Цитата:
Сообщение от Wamr Посмотреть сообщение
это значит, что в классе AxEmplTable нет соответствующих методов для указанных полей.
Способ 1. Создать соответствующие методы
Можно маленький ликбез, зачем эти классы, для каких таблиц они нужны и можно ли их пересоздавать автоматом.
Старый 11.06.2009, 12:27   #7  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
375 / 562 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
Цитата:
Сообщение от kia Посмотреть сообщение
Можно маленький ликбез, зачем эти классы, для каких таблиц они нужны и можно ли их пересоздавать автоматом.
Данные классы используются при работе c AIF, более подробно здесь - http://msdn.microsoft.com/en-us/library/bb496535.aspx. Данные методы нужно создавать руками.

UPD : По поводу добавления методов можно посмотреть здесь - Метод Parm+FiledName в классах Ax+TableName

Последний раз редактировалось SRF; 11.06.2009 в 13:15. Причина: Дополнение
Старый 11.06.2009, 12:36   #8  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
для создания классиков есть мастер, а вот для добавления своих методов ничего нет (было бы желание можно и написать за пару часиков)
кроме parm методов, есть там set методы, а их наполнение зависит от БЛ, так что автоматом можно сделать только skeleton.
Старый 23.10.2009, 09:47   #9  
Proba is offline
Proba
Участник
 
60 / 13 (1) ++
Регистрация: 25.06.2007
Адрес: Красноярск\Зеленогорск
Тоже столкнулся с такой проблемой.

Решается так:
К примеру, в стандартной таблице Address, у меня есть свои поля. Проверка на Best Practices дает, что мол такое то поле не имеет parm метода в AxBC-класса. Ну в общем все как описывает kia

Идем в: Tools\Development Tools\ Application Integration Framework\ Update document service.

В открывшемся окне нужно выбрать класс который нам нужен(для таблицы Address). Кстати выбирать нужно только классы которые унаследованны от AifDocumentService!!! Почему? см код метода getServiceParameters класс AifServiceClassGenerator:
X++:
...
serviceDictClass = new SysDictClass(className2Id(_serviceClassName));
if (serviceDictClass == null || serviceDictClass.extend() 
     != classnum(AifDocumentService))
{
     // The service class is not a document service
     return null;
}
...
Если кому надо вот список всех этих класов
ProdProjEInvoiceService
SalesSalesEInvoiceService
TrvExpenseService
SmaServiceOrderService
SmaServiceAgreementService
ReturnReturnOrderOutService
ReturnReturnOrderInService
LedgerGeneralJournalService
AssetAssetConditionService
AssetAssetGroupService
AssetAssetLocationService
AssetAssetMajorTypeService
AssetFixedAssetService
TrvTrvPBSMaindataService
DirAddressService
DirContactPersonsService
PricePriceDiscJournalService
PricePriceListService
PurchPurchReqService
SalesSalesInvoiceService
SalesSalesOrderService
SalesSalesPackingSlipService
InventASNService
InventCountingJournalService
InventInventoryOnHandService
InventInventoryTransactionsService
InventProfitLossJournalService
InventTransferJournalService
InventConfigTableService
InventDeliveryModesService
InventInventColorService
InventInventDimCombinationService
InventInventItemGroupService
InventInventLocationService
InventInventSizeService
InventItemService
InventUnitService
InventUnitConvertService
BomBillsofMaterialsService
ProdProdPickingListService
ProdRouteCardService
CustFreeTextInvoiceService
CustCustomerGroupsService
LedgerChartOfAccountsService
LedgerDimensionsService
LedgerExchangeRatesService
LedgerPurchaseInvoiceService
PaymPaymentTermsService
CustCustomerService
LedgerCashDiscService
LedgerCustPaymJournalService
VendVendGroupService
VendVendTableService
LedgerVendorPaymentService
InventPickingListService
ProjProjectHourJournalService

В этом списке ищем слово Address, находим класс "DirAddressService".
В окне "Update Document service" выбираем этот класс, активируем все галочки которые только можно! И жмем "Ok". Ждем...

После нескольких минут, идем в таблицу Address, жмем AddIns\ Chech Best Practices. И видим что ошибки больше нет.
За это сообщение автора поблагодарили: Raven Melancholic (2), nano3 (1).
Старый 23.10.2009, 10:10   #10  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от Proba Посмотреть сообщение
Решается так:
Спасибо за информацию, только, на мой взгляд, стоило уточнить версию Аксы. Не у всех есть AX2009.
Старый 26.02.2010, 17:20   #11  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
джобик для простых случаев

X++:
    AxGenerateAxBCClass     axGenerateAxBCClass;
    ;
    
    axGenerateAxBCClass = AxGenerateAxBCClass::newTableId(tableNum(PurchTable));
    axGenerateAxBCClass.run();
За это сообщение автора поблагодарили: PavelX (1).
Старый 01.03.2010, 13:22   #12  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
X++:
    AxGenerateAxBCClass     axGenerateAxBCClass;
    ;
    
    axGenerateAxBCClass = AxGenerateAxBCClass::newTableId(tableNum(PurchTable));
    axGenerateAxBCClass.run();
куда-то делся из предыдущего поста
Старый 13.03.2010, 14:37   #13  
erudit is offline
erudit
Участник
 
36 / 52 (2) ++++
Регистрация: 19.03.2003
Адрес: Украина
Небольшой комментарий:
когда методы parm- и set- добавляются в AxBC- классы Мастером (Wizard) автоматически, то нужно ещё ручками добавить вызов set-метода из метода setTableFields(), т.к. Мастер (Wizard) не на столько "умный", чтоб сделать это самостоятельно.
Если вызов set-метода отсутствует в методе setTableFields(), то инициализация данного поля значением не будет производиться при обмене данными через AIF (в XML формате) и соотв. данные не будут экспортированны или импортированны.
Теги
aif, parm-метод, axbc

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Метод Parm+FiledName в классах Ax+TableName Qaz Qwerty DAX: Программирование 2 29.07.2008 05:03
Как запустить метод класса :) Silence DAX: Программирование 6 19.10.2006 12:23
Запустить метод класса loka DAX: Программирование 2 13.03.2006 15:40
Как вызвать нужный метод класса? Pawlik DAX: Программирование 5 12.01.2006 15:47
Метод класса, возвращающий сумму налога. 2.5SP5 studentLPC DAX: Программирование 2 25.07.2003 12:21

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

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

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