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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.11.2013, 09:34   #11  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
650 / 352 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Я думаю, каждый из нас встречает такой быдолкод.
Не могу не поделиться.
X++:
void MaterialProcess(afcProdmaterial _Material, int lineNo)
{
    RouteJobType         _JType;
    boolean             ppoOkToProcess = true;
    ;

    materialProcessError = false;

    if (_Material.JobType == 'Setup')
                            _JType = str2enum(RouteJobType::Setup,_Material.JobType);
                        else
                           _JType = str2enum(RouteJobType::Process,_Material.JobType);

                try
                {
                    ttsbegin;

                    lineNo += 1;
                    _progress.setCount(lineNo);
                    _progress.setText(_material.RefNoID);

                    _JobId      = this.GetJobNum(_Material.RefNoID,_JType, _Material.OprNum,RouteOprPriority::Primary, _Material.ItemId);

                    if (_Material.LotNum != '')
            _Batch      = this.CheckBatchId(_Material.LotNum, _Material.ItemId,_Material);

        if (_material.TranType == 'OFF-FIN' && _material.SerialNum && _material.PQty > 0)
        {
            if (!ppoProdMatlTrace::findSerialNum(_material.SerialNum).Ply)
            {
                ppoOkToProcess = false;
            }
        }

        if (ppoOkToProcess)
        {
                    if(this.PostMaterial(_Material))
                    {
                        _Material.inventDimId   = _dimId;
                        _Material.ProcessedFlag = NoYes::Yes;
                        _Material.update();
                    }
                    else
            {
                throw(error("Update cancelled."));
            }
        }
                    ttscommit;
                } //try
                catch (Exception::Deadlock)
                {
                   // ttsabort;
                     retry;
                   // _material.HasError = noYes::Yes;
                   // _material.update();
                }
                catch (Exception::Warning)
                {
                    ttsabort;
                   // retry;
                    _material.HasError = noYes::Yes;
                    _material.update();
                }
                catch (Exception::Error)
                {
                    ttsabort;
                   //retry;
                    _material.HasError = noYes::Yes;
                    _material.update();
                }
}
Начиная с элементарной разметки кода и неверного использования нижнего подчеркивания в обоих декларациях (как параметров, так и локальных переменных), заканчивая странным сравнением со строками, +=1 и ненужными if-ами. Зато код работает!!!)))
__________________
// no comments
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
The Death of Reason: #wpc13 US Dynamics: Where is MS Going in 2014? Blog bot DAX Blogs 2 12.07.2013 13:19
Rahul Sharma: MS Dynamics Ax 2009 EP Development - Part 2 Blog bot DAX Blogs 0 12.10.2010 15:05
emeadaxsupport: MS Project Integration resources with comma fail to export Blog bot DAX Blogs 0 12.05.2010 01:05
Инструкции по MS Axapta 3.0 HRM и MS Axapta 3.0 CRM? Горбунов Дмитрий DAX: Прочие вопросы 3 18.01.2006 12:35

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

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

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