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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.10.2011, 14:36   #1  
Predatore is offline
Predatore
Участник
 
163 / 17 (1) ++
Регистрация: 29.09.2010
Доброго всем времени суток!
Не могу понять одного момента. Есть такой кодеюнит 5763 Whse.-Post Shipment, есть в нём такая функция PostSourceDocument, а в ней несколько раз встречается вот такая конструкция:
Код:
CASE WhseSetup."Shipment Posting Policy" OF
  WhseSetup."Shipment Posting Policy"::"Posting errors are not processed":
    BEGIN
      SalesPost.RUN(SalesHeader);
      CounterSourceDocOK := CounterSourceDocOK + 1;
    END;
  WhseSetup."Shipment Posting Policy"::"Stop and show the first posting error":
    BEGIN
      SalesPost.RUN(SalesHeader);
      CounterSourceDocOK := CounterSourceDocOK + 1;
    END;
END;
Вот объясните мне смысл этой конструкции, делается CASE и вне зависимости от этого CASE выполняется один и тот же код, в чём смысл?
Старый 20.10.2011, 15:21   #2  
VProk is offline
VProk
Участник
 
25 / 10 (1) +
Регистрация: 07.03.2007
Цитата:
Сообщение от Predatore Посмотреть сообщение
Доброго всем времени суток!
Не могу понять одного момента. Есть такой кодеюнит 5763 Whse.-Post Shipment, есть в нём такая функция PostSourceDocument, а в ней несколько раз встречается вот такая конструкция:
Код:
CASE WhseSetup."Shipment Posting Policy" OF
  WhseSetup."Shipment Posting Policy"::"Posting errors are not processed":
    BEGIN
      SalesPost.RUN(SalesHeader);
      CounterSourceDocOK := CounterSourceDocOK + 1;
    END;
  WhseSetup."Shipment Posting Policy"::"Stop and show the first posting error":
    BEGIN
      SalesPost.RUN(SalesHeader);
      CounterSourceDocOK := CounterSourceDocOK + 1;
    END;
END;
Вот объясните мне смысл этой конструкции, делается CASE и вне зависимости от этого CASE выполняется один и тот же код, в чём смысл?
Думаю, это просто закладка. Мож была какая-то мысль и поглубже, но ее не реализовали. При учете приемок то же самое. У нас эти кейсы используются для выполнения/невыполнения определенных проверок перед непосредственным учетом.
P.S. Насчет мысли поглубже: в хелпе озвучено следующее:
Поле Политика Учета Отгрузки
Таблица Склад Настройка

Данное поле содержит методику, которой программа следует при учете складской отгрузки.

Существует две методики выбора.



Ошибки в учете не обрабатываются.

Все документы-источники будут учитываться программой непрерывно, даже если в процессе учета возникают какие-либо ошибки. Появится сообщение "документы-источники Х вне всего Y учтены." Какие ошибки возникли в процессе учета, просмотреть нельзя.



Остановиться и показать первую ошибку в учете.

Документы-источники будут учитываться программой до тех пор, пока не появится первая ошибка. Процесс учета после первой ошибки отменяется, остальные документы-источники не учитываются.
Старый 20.10.2011, 17:15   #3  
Fly is offline
Fly
Участник
Аватар для Fly
 
102 / 10 (1) +
Регистрация: 05.10.2007
Я думаю, что это просто баг. По логике должно быть вот так:

Код:
          WhseSetup."Shipment Posting Policy"::"Posting errors are not processed":
            BEGIN
              IF SalesPost.RUN(SalesHeader) THEN
                CounterSourceDocOK := CounterSourceDocOK + 1;
            END;
Старый 21.10.2011, 11:50   #4  
ОльгаМ is offline
ОльгаМ
Участник
 
36 / 10 (1) +
Регистрация: 07.09.2004
Адрес: Москва
Цитата:
Сообщение от Fly Посмотреть сообщение
Я думаю, что это просто баг. По логике должно быть вот так:

Код:
          WhseSetup."Shipment Posting Policy"::"Posting errors are not processed":
            BEGIN
              IF SalesPost.RUN(SalesHeader) THEN
                CounterSourceDocOK := CounterSourceDocOK + 1;
            END;
Во всех приведенных примерах ошибок нет, но достаточно все это заменить на:

IF SalesPost.RUN(SalesHeader) THEN CounterSourceDocOK := CounterSourceDocOK + 1;
 


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

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

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