Автор Тема: Меньшее количество при активации стратегий выбора партии  (Прочитано 9419 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Из разряда полезностей при настройке системы, ну и опять же чтобы при склерозе потом не искать мучительно и больно.

В общем виде, если использовать стратегию выбора партии, то при вводе документа, если количество в партиях меньше чем нужно, то по умолчанию система корректирует введенное количество до количества под которое был найден запас в партиях, т.е. заказали 1000 штук, если нашлось 600, то количество будет скорректировано до 600. Если документ большой и используется фоновый выбор партий для всех позиций, то как бы неудобно потом опять пробегать все введенные количества на предмет, а хватило ли запаса и не изменила ли система количество для каких-то позиций, по которым не хватило запаса. Чтобы не заниматься повторной сверкой, в системе есть сообщение в классе MIGO с номером 065. По умолчанию там стоит отключение какой-либо реакции на недостачу запаса, но это легко решается путем установки для данного сообщения в тип I или W (Сообщение вида E, задать для класса сообщений MIGO нельзя), при этом система ведет себя следующим образом:
I - Пользователь получает сообщение, что запас подобран не для всего количества и после нажатия ввода, система таки выполняет подбор партий на то количество, на которое есть запас, с корректировкой введенного пользователем общего значения, т.е. 1000 изменяется на 600 с разбивкой по партиям.
W - Система сообщает, что количества не хватает и после нажатия ввода, не выполняет распределения количества на доступное в партиях и не выполняет корректировку введенного значения пользователем, т.е. таки позиции будут помечены как ошибочные, но уже по причине типа не введена партия, и их легко будет выявить в документе, для ручного принятия решения.

На картинках дерево настройки и вид сообщения для корректировки...

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Спасибо,понравилось .....

Встречный вопрос: можно ли сделать так, чтобы при вводе отпуска скажем 100 штук, часть отпускалась из одной партии (все количество партии 60 шт) и часть с другой (40, хотя в партии есть 1000), т.е. происходило автоматичесские разделение позиций и выбор нужных партий (а не уменшение) ?
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
You are not allowed to view links. Register or Login
Спасибо,понравилось .....

Встречный вопрос: можно ли сделать так, чтобы при вводе отпуска скажем 100 штук, часть отпускалась из одной партии (все количество партии 60 шт) и часть с другой (40, хотя в партии есть 1000), т.е. происходило автоматичесские разделение позиций и выбор нужных партий (а не уменшение) ?
Можно например используя сортировку партий в стратегии выбора, т.е. сначала будут выбираться остатки минимальным количеством в партии.

Цитировать
Ход выполнения

   1. Процесс выбора партии может быть запущен как вручную, так и автоматически.
   2. При этом выполняется такая последовательность шагов:

    * определяется схема поиска для данной хозяйственной операции;
    * выполняется поиск подходящей стратегии в рамках указанной схемы.
    * Первая найденная стратегия с соответствующими параметрами принимается, остальные – пропускаются; осуществляется выбор признаков из класса, определенного для стратегии поиска, которые будут применены для обнаружения партии с подходящими спецификациями;
    * выполняется проверка доступности партий;
    * найденные и доступные партии сортируются согласно правилу сортировки, заданному в стратегии поиска;
    * осуществляется выбор количества по умолчанию в соответствии тем количеством, которое определено в стратегии поиска;
    * если стратегия поиска содержит информацию, рекомендуется ее запуск в диалоговом режиме.
т.е. как видим можно определять разные критерии сортировки. В общем виде как я понимаю без экзитов и абапа не обойтись если захочется сделать, что-то типа, выбирать партии, но только те где запас больше 5 штук например, т.е. надо выбрать 100 штук а есть партии 3 27 50 40 и надо первую пропустить из второй взять 22 штуки, из третьей 45 и из четвертой 33 штуки. Вот это похоже без абапа не обойтись  ::)

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Спасибо за ответ, в свое время немного покопался, ответа не нашел, ......
жаль конечно, но так как интерес пока чисто академичесский, ничего страшного, а понадобится - сделаю, не проблема
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн madcat

  • Newbie
  • *
  • Сообщений: 10
  • Репутация: +0/-0
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Re: Меньшее количество при активации страте&#
« Ответ #4 : Декабрь 26, 2008, 05:39:38 pm »
Система не дает провести - это хорошо. Но оповещение "корявенькое", как сказал пользователи

как пример -  на складе этого материала есть 2 штуки. Захотела списать 10 шт. Система внизу написала, что из запрошенного количества 10 шт есть только 0 шт (хотя есть 2 штуки).
И еще. Ед. измерения в оповещении, по какой то причине латиницей, простому народу будут непонятны.

« Последнее редактирование: Декабрь 26, 2008, 05:50:54 pm от madcat »

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 809
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Меньшее количество при активации страте&#
« Ответ #5 : Декабрь 26, 2008, 10:00:15 pm »
You are not allowed to view links. Register or Login
И еще. Ед. измерения в оповещении, по какой то причине латиницей, простому народу будут непонятны.
Ну это вы уже балованные  ;) ну и ST = ШТУКИ оно и в Африке штуки, привыкнут. а выдается все правильно. При сообщении типа:

I - выдается текст типа: "З потрібної кількості 1.000,000 ST матеріалу 21120-3724010-10 можливо перенести лише 583,000 ST", что как бы правильно, т.е. система сообщает какое количество есть в запасе из затребованного.

W - выдается текст "З потрібної кількості 1.000,000 ST матеріалу 21120-3724010-10 можливо перенести лише 0,000 ST", что является правильным, так как это сообщение не о присутствующем на складе остатке, а о количестве которое можно скопировать при выборе партий. В данном случае количество для переноса = 0, т.е. ничего не переносится, а для того чтобы посмотреть запас, ну так у вас в позиции подробно есть кнопка "Обзор запаса", так что думаю пользователю будет не сложно ее ткнуть, чтобы для таких позиций просмотреть количество запаса и затем откорректировать количество в позиции документа, т.е. это и есть уже ручное разруливание ситуации. Ну правда если вы ну очень хотите изменить текст сообщения, то...  ну я правда вам это очень сильно не советую делать, есть такой код в инклуде: LMIGODS6:
Код: You are not allowed to view links. Register or Login
*   Requested stock cannot be satisfied                          "554870
    IF l_quantity_det > 0.                                       "554870
      CALL FUNCTION 'MB_CHECK_T160M'                             "554870
        EXPORTING                                                "554870
          i_arbgb          = 'MIGO'                              "554870
          i_msgnr          = '065'                               "554870
          i_nolog          = abap_true                           "554870
          i_output         = abap_false                          "554870
        IMPORTING                                                "554870
          rc               = l_rc_t160m_check.                   "554870
      CASE l_rc_t160m_check.                                     "554870
*       Warning                                                  "554870
        WHEN 1.                                                  "554870
*         Do not update model and send W-message                 "554870
          WRITE ls_cdcom-erfmg TO l_text1.                       "554870
          CONCATENATE l_text1 ls_cdcom-erfme INTO l_string1      "554870
             SEPARATED BY space.                                 "554870
          CONDENSE l_string1.                                    "554870
          l_quantity_det = 0.                                    "554870
          WRITE l_quantity_det TO l_text2.                       "554870
          CONCATENATE l_text2 ls_cdcom-erfme INTO l_string2      "554870
             SEPARATED BY space.                                 "554870
          CONDENSE l_string2.                                    "554870
          MESSAGE w065(migo) WITH l_string1 ls_cdcom-matnr l_string2.
          EXIT.                                                  "554870
*       Information                                              "554870
        WHEN 5.                                                  "554870
*         Update model and send W-message                        "554870
          CALL METHOD update_model_det                           "554870
            EXPORTING i_line             = i_line                "554870
                      i_massproc         = i_massproc            "554870
                      it_cdstock         = lt_cdstock            "554870
                      is_goitem_original = ls_goitem_original    "554870
                      is_cdcom           = ls_cdcom.             "554870
          WRITE ls_cdcom-erfmg TO l_text1.                       "554870
          CONCATENATE l_text1 ls_cdcom-erfme INTO l_string1      "554870
             SEPARATED BY space.                                 "554870
          CONDENSE l_string1.                                    "554870
          l_quantity_sum = ls_cdcom-erfmg - l_quantity_det.      "554870
          WRITE l_quantity_sum TO l_text2.                       "554870
          CONCATENATE l_text2 ls_cdcom-erfme INTO l_string2      "554870
             SEPARATED BY space.                                 "554870
          CONDENSE l_string2.                                    "554870
          MESSAGE w065(migo) WITH l_string1 ls_cdcom-matnr l_string2.
*       Not maintained                                           "554870
        WHEN space.                                              "554870
*         Update model                                           "554870
          CALL METHOD update_model_det                           "554870
            EXPORTING i_line             = i_line                "554870
                      i_massproc         = i_massproc            "554870
                      it_cdstock         = lt_cdstock            "554870
                      is_goitem_original = ls_goitem_original    "554870
                      is_cdcom           = ls_cdcom.             "554870
        WHEN OTHERS.                                             "554870
          EXIT.                                                  "554870
      ENDCASE.                                                   "554870
*   Requested stock can be satisfied                             "554870
    ELSE.                                                        "554870
       CALL METHOD update_model_det                              "554870
         EXPORTING i_line             = i_line                   "554870
                   i_massproc         = i_massproc               "554870
                   it_cdstock         = lt_cdstock               "554870
                   is_goitem_original = ls_goitem_original       "554870
                   is_cdcom           = ls_cdcom.                "554870
    ENDIF.                                                       "554870
Вот в нем можно заменить текст сообщения, общий запас который надо находится в переменой ls_cdcom-erfmg, код материала в ls_cdcom-matnr, а доступное количество можно посчитать в цикле:
Код: You are not allowed to view links. Register or Login
DATA: l_quantity_dost TYPE erfmg.

    LOOP AT lt_cdstock ASSIGNING <ls_cdstock>.                   
      l_quantity_dost = l_quantity_dost + <ls_cdstock>-erfmg.     
    ENDLOOP.
После чего все это дело вывести заменив в тексте сообщение:
Код: You are not allowed to view links. Register or Login
MESSAGE w065(migo) WITH l_string1 ls_cdcom-matnr l_string2на свое, типа что всего есть столько, а надо было столько, но не судьба... однако это называется изменение стандарта и гнездо,. как и лучшие собак-о(sap-о)-воды, это дело ну очень не рекомендуют делать!

Надеюсь ответ исчерпывающий  ;)

Sapforum.Biz

Re: Меньшее количество при активации страте&#
« Ответ #5 : Декабрь 26, 2008, 10:00:15 pm »