08.09.2020, 18:20 | #1 |
Участник
|
Вызов SysOperation с параметрами по умолчанию
Хочу вызвать класс InventSumSummarizeService из кода с параметрами по умолчанию(без диалога). Для этого написал следующий код
X++: inventSumSummarizeService = new InventSumSummarizeService(); dataContract = InventSumSummarizeContract::construct(); query = new Query(querystr(InventSumSummarize)); //3 dataContract.parmQuery(SysOperationHelper::base64Encode(query.pack()); //4 inventSumSummarizeService.summarize(dataContract); |
|
08.09.2020, 21:33 | #2 |
Участник
|
не очень понял, что именно ты хочешь сделать.
что будет являться "параметрами по умолчанию" для твоего случая запуска без диалога? если кто-то поменяет код в контракте, твой код будет работать точно так же: ты же его заменяешь, вызывая dataContract.parmQuery(...)
__________________
Felix nihil admirari |
|
09.09.2020, 02:22 | #3 |
Участник
|
Цитата:
X++: [DataMemberAttribute, AifQueryTypeAttribute('_query', querystr(InventSumSummarize))] public str parmQuery(str _query = query) { |
|
09.09.2020, 07:31 | #4 |
Участник
|
Вроде в SysOperation аналогом initParmDefault выступает интерфейс SysOperationInitializable, пример в стандарте с query можно посмотреть вот тут WHSTransferAutoRTWContract.
Т.е. видимо в примере у вас уйдут строки 3\4, но добавится вызов initialize, правда придётся поменять код базового InventSumSummarizeContract. https://community.dynamics.com/ax/f/...sys-operations
__________________
Sergey Nefedov |
|
|
За это сообщение автора поблагодарили: trud (3). |
09.09.2020, 09:56 | #5 |
Участник
|
X++: SysDictMethod methodInfo = new SysDictMethod( UtilElementType::ClassInstanceMethod, classNum(InventSumSummarizeContract), methodStr(InventSumSummarizeContract, parmQuery)); AifQueryTypeAttribute queryAttribute = methodInfo.getAttribute(classStr(AifQueryTypeAttribute)); Query query = new Query(queryAttribute.queryName()); |
|
|
За это сообщение автора поблагодарили: trud (5). |
|
|