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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.08.2021, 14:43   #2  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,342 / 3563 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Поскольку вопрос чисто предпочтений, то я (лично для себя) выработал следующие правила (при условии, что нет правил, установленных используемыми фреймворками):
Методы check* отвечают за одну проверку.
Методы validate* отвечают за комплекс проверок (т.е. грубо говоря состоят из вызовов методов check*).
При этом комплексов может быть много и они могут состоять из разного набора проверок (аналог привилегий и Duty в 2012).
Я люблю делать проверочные методы методами объекта (а не статическими), чтобы иметь возможность обращаться к глобальным переменных классам или внутренним private-методам
Сообщения, исключения, диалоговые окна - это все регулируется параметрами методов в зависимости от потребности (например, иногда вместо инфолога надо писать в таблицу текст ошибки).

Ну и собственно все.
Пример (абстрактный).
Хочу написать алгоритм разноски для своей условной заявки на покупку. Разноска генерит проводку в ГК и приходную проводку в InventTrans.
У меня будет:
1) проверка на открытость периода в ГК
2) проверка на открытость периода по складу (ValueOpen = Да)
3) проверка на наличие товара по необходимым аналитикам
4) проверка на наличие бюджета
... какие-то другие проверки.

По бизнесу (к примеру) сначала выполняется проверка на наличие товара. Если он есть, то закупка не выполняется.
Если товара нет, то выполняется проверка на наличие бюджета. После успешной проверки бюджета - выполняется разноска по складу и ГК.

Я хочу сделать (условно) 4 метода check*, которые в свою очередь будут вызываться в разное время, причем они также могут быть вызваны пользователем по кнопке "Проверить" или "Предварительный просмотр проводок".
При этом у меня будут методы validate*, которые будут вызывать эти методы check*:
1) validate на этапе проверки наличия товара
2) validate на этапе проверки бюджета
3) validate на этапе разноски

Соответственно - наполнение этих validate-методов может быть разным, при этом, к примеру, проверку на открытость периода я могу вызывать в каждом validate-методе, но сама логика проверки у меня будет в едином методе check
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 08.08.2021 в 14:46.
За это сообщение автора поблагодарили: mazzy (5), NetBus (3), dech (5).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
[CodeStyle] методы *noThrow vs *OrThrow vs optional parameter? mazzy DAX: Программирование 27 03.08.2021 00:30
emeadaxsupport: Dynamics AX 2012 Prerequisite Check Utility and SQL Server cluster Blog bot DAX Blogs 0 20.03.2012 19:11
axaptapedia: Validate field values on form Blog bot DAX Blogs 0 17.12.2008 12:05

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

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

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