11.06.2009, 11:37 | #1 |
Участник
|
parm-метод для AxBC-класса
При проверке на соответствие рекомендациям для таблицы EmplTable для некоторых новых полей получаю сообщение: Поле Table.Field не содержит соответствующего parm-метода для AxBC-класса.
Что-бы это значило и как от этого избавиться? |
|
11.06.2009, 11:58 | #3 |
Участник
|
|
|
11.06.2009, 12:00 | #4 |
----------------
|
это значит, что в классе AxEmplTable нет соответствующих методов для указанных полей.
Способ 1. Создать соответствующие методы Способ 2. Отключить эту проверку в BP |
|
11.06.2009, 12:10 | #5 |
Участник
|
А... извините.
|
|
11.06.2009, 12:13 | #6 |
Участник
|
|
|
11.06.2009, 12:27 | #7 |
Участник
|
Цитата:
UPD : По поводу добавления методов можно посмотреть здесь - Метод Parm+FiledName в классах Ax+TableName Последний раз редактировалось SRF; 11.06.2009 в 13:15. Причина: Дополнение |
|
11.06.2009, 12:36 | #8 |
----------------
|
для создания классиков есть мастер, а вот для добавления своих методов ничего нет (было бы желание можно и написать за пару часиков)
кроме parm методов, есть там set методы, а их наполнение зависит от БЛ, так что автоматом можно сделать только skeleton. |
|
23.10.2009, 09:47 | #9 |
Участник
|
Тоже столкнулся с такой проблемой.
Решается так: К примеру, в стандартной таблице 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 |
Участник
|
|
|
26.02.2010, 17:20 | #11 |
----------------
|
джобик для простых случаев
X++: AxGenerateAxBCClass axGenerateAxBCClass;
;
axGenerateAxBCClass = AxGenerateAxBCClass::newTableId(tableNum(PurchTable));
axGenerateAxBCClass.run(); |
|
|
За это сообщение автора поблагодарили: PavelX (1). |
01.03.2010, 13:22 | #12 |
----------------
|
X++: AxGenerateAxBCClass axGenerateAxBCClass;
;
axGenerateAxBCClass = AxGenerateAxBCClass::newTableId(tableNum(PurchTable));
axGenerateAxBCClass.run(); |
|
13.03.2010, 14:37 | #13 |
Участник
|
Небольшой комментарий:
когда методы parm- и set- добавляются в AxBC- классы Мастером (Wizard) автоматически, то нужно ещё ручками добавить вызов set-метода из метода setTableFields(), т.к. Мастер (Wizard) не на столько "умный", чтоб сделать это самостоятельно. Если вызов set-метода отсутствует в методе setTableFields(), то инициализация данного поля значением не будет производиться при обмене данными через AIF (в XML формате) и соотв. данные не будут экспортированны или импортированны. |
|
Теги |
aif, parm-метод, axbc |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|