Текущее время: Пт, мар 29 2024, 18:14

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: Ошибка при создании ДокМат с ВДв 311 через BAPI_GOODSMVT_CREATE (номер партии)
СообщениеДобавлено: Чт, окт 21 2021, 12:58 
Начинающий
Начинающий

Зарегистрирован:
Чт, окт 21 2021, 08:47
Сообщения: 8
Добрый день,

Прошу помочь.

Использую BAPI_GOODSMVT_CREATE для создания документа MIGO (перемещение между складами по 311 вдв).
Если материал без партии, то документ создается нормально.
НО, как только материал с партией, то возникает ошибка: "Движение материала с видом движения 311 невозможно".
Если руками делать в MIGO по этому материалу с партией - документ создается.
Такое ощущение, что на вход BAPI не подал какой-то параметр, касаемый партий, хотя номер партии заполняю.

Изображение


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ошибка при создании ДокМат с ВДв 311 через BAPI_GOODSMVT_CREATE (номер партии)
СообщениеДобавлено: Чт, окт 21 2021, 16:38 
Гуру-маршал
Гуру-маршал
Аватара пользователя

Зарегистрирован:
Пт, янв 30 2009, 09:59
Сообщения: 1580
Откуда: Москва, Минск
Пол: Мужской
GOODSMVT_CODE какой подаешь в BAPI?
Для 311 нужно - 04.

_________________
Лучше быть умным и иногда тупить, чем быть тупым и постоянно умничать!


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ошибка при создании ДокМат с ВДв 311 через BAPI_GOODSMVT_CREATE (номер партии)
СообщениеДобавлено: Чт, окт 21 2021, 17:44 
Начинающий
Начинающий

Зарегистрирован:
Чт, окт 21 2021, 08:47
Сообщения: 8
DED_MOROZ написал:
GOODSMVT_CODE какой подаешь в BAPI?
Для 311 нужно - 04.


04


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ошибка при создании ДокМат с ВДв 311 через BAPI_GOODSMVT_CREATE (номер партии)
СообщениеДобавлено: Пт, окт 22 2021, 09:14 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, сен 19 2011, 13:29
Сообщения: 473
Пол: Мужской
move_batch - Принимающая партия партия


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка при создании ДокМат с ВДв 311 через BAPI_GOODSMVT_CREATE (номер партии)
СообщениеДобавлено: Пт, окт 22 2021, 10:14 
Начинающий
Начинающий

Зарегистрирован:
Чт, окт 21 2021, 08:47
Сообщения: 8
Korvax написал:
move_batch - Принимающая партия партия


Пробовал, не сработало
Также пробовал VAL_TYPE и MOVE_VAL_TYPE - не работает


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ошибка при создании ДокМат с ВДв 311 через BAPI_GOODSMVT_CREATE (номер партии)
СообщениеДобавлено: Пт, окт 22 2021, 11:28 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, сен 19 2011, 13:29
Сообщения: 473
Пол: Мужской
denis_vlk_88 написал(а):
Пробовал, не сработало
Тогда вариантов немного:
- отладка и анализ условий появления сообщения
- искать в интернете по коду сообщения


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка при создании ДокМат с ВДв 311 через BAPI_GOODSMVT_CREATE (номер партии)
СообщениеДобавлено: Пт, окт 22 2021, 18:42 
Гуру-маршал
Гуру-маршал
Аватара пользователя

Зарегистрирован:
Пт, янв 30 2009, 09:59
Сообщения: 1580
Откуда: Москва, Минск
Пол: Мужской
Проверил, все работает.
Заполнение аналогично, как на скрине, кроме (mvt_ind = ' ', это лишнее).

_________________
Лучше быть умным и иногда тупить, чем быть тупым и постоянно умничать!


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ошибка при создании ДокМат с ВДв 311 через BAPI_GOODSMVT_CREATE (номер партии)
СообщениеДобавлено: Сб, окт 23 2021, 11:29 
Начинающий
Начинающий

Зарегистрирован:
Чт, окт 21 2021, 08:47
Сообщения: 8
DED_MOROZ написал:
Проверил, все работает.
Заполнение аналогично, как на скрине, кроме (mvt_ind = ' ', это лишнее).


Прикольно, если я отдельно запускаю BAPI_GOODSMVT_CREATE с партией, то все создается, но как только BAPI_GOODSMVT_CREATE вызывается из другого ФМ, то сразу ошибка "Движение материала с видом движения 311 невозможно".

По коду ошибки нашел место.
Если запускать отдельно BAPI_GOODSMVT_CREATE, то в переменной T158-TCODE прописывается старый код транзакции MB1B. А если BAPI_GOODSMVT_CREATE вызывать из другого ФМ, то переменная T158-TCODE пуста.

Изображение


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ошибка при создании ДокМат с ВДв 311 через BAPI_GOODSMVT_CREATE (номер партии)
СообщениеДобавлено: Пн, окт 25 2021, 10:17 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, сен 19 2011, 13:29
Сообщения: 473
Пол: Мужской
denis_vlk_88 написал(а):
По коду ошибки нашел место
Если запускать отдельно BAPI_GOODSMVT_CREATE, то в переменной T158-TCODE прописывается старый код транзакции MB1B
НО, если BAPI_GOODSMVT_CREATE вызывать из другого ФМ, то переменная T158-TCODE пуста


И дальше в отладке смотрите.
ФМ BAPI_GOODSMVT_CREATE выбирает данные из T158G (именно тут для кода операции 04 определяется код транзакции). Вероятно, у вас так же, иначе была бы другая ошибка.
Далее вызов MB_CREATE_GOODS_MOVEMENT, куда передается T158G-TCODE.
Потом переменная меняется (TCODE = CTCOD) и выбор данных из T158 WHERE TCODE = TCODE.
Ну, а дальше проверка, которая у вас на скриншоте. Осталось поставить точки прерывания на изменение переменной, пройти отладчиком и увидеть причину.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка при создании ДокМат с ВДв 311 через BAPI_GOODSMVT_CREATE (номер партии)
СообщениеДобавлено: Пн, окт 25 2021, 11:17 
Начинающий
Начинающий

Зарегистрирован:
Чт, окт 21 2021, 08:47
Сообщения: 8
Korvax написал:
denis_vlk_88 написал(а):
По коду ошибки нашел место
Если запускать отдельно BAPI_GOODSMVT_CREATE, то в переменной T158-TCODE прописывается старый код транзакции MB1B
НО, если BAPI_GOODSMVT_CREATE вызывать из другого ФМ, то переменная T158-TCODE пуста

И дальше в отладке смотрите..
ФМ BAPI_GOODSMVT_CREATE выбирает данные из t158g (именно тут для кода операции 04 определяется код транзакции). Вероятно у вас так же, иначе была бы другая ошибка.
далее вызов MB_CREATE_GOODS_MOVEMENT, куда передается t158g-tcode
потом переменная меняется: tcode = ctcod
и выбор данных из t158 WHERE tcode = tcode.
Ну, а дальше проверка, которая у вас на скриншоте. Осталось поставить точки прерывания на изменение переменной, пройти отладчиком и увидеть причину.


Вот в чем проблема: перед вызовом BAPI_GOODSMVT_CREATE запускаю ФМ по определению партии - VB_COMPLETE_DETERMINATION.
Закоментил этот кусок, и работает все.
Но! беда в том, что без него нельзя.
Вот и интеренсо, как ФМ VB_COMPLETE_DETERMINATION по определению партии влияет на работу BAPI_GOODSMVT_CREATE.

Code:
"Выбор партии
  ls_cdcom-matnr = material.
  ls_cdcom-werks = plant.
  ls_cdcom-lgort = from_warehouse.
  ls_cdcom-bwart = '311'.
  ls_cdcom-xchpf = 'X'.
  ls_cdcom-bwtty = 'X'.
  ls_cdcom-kappl = 'ME'.
  ls_cdcom-nodia = 'X'.

  CALL FUNCTION 'VB_COMPLETE_DETERMINATION'
    TABLES
      e_cdstock                       = lt_cdstock
    CHANGING
      x_cdcom                         = ls_cdcom
   EXCEPTIONS
     no_determination_possible       = 1
     no_material                     = 2
     no_plant                        = 3
     data_mismatch                   = 4
     OTHERS                          = 5
            .


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ошибка при создании ДокМат с ВДв 311 через BAPI_GOODSMVT_CREATE (номер партии)
СообщениеДобавлено: Пн, окт 25 2021, 13:41 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, сен 19 2011, 13:29
Сообщения: 473
Пол: Мужской
В теории: одна группа функций может использовать общие глобальные переменные, что может влиять на работу.
На практике: ФМ работает, но не работает в вашей программе. Никто не подскажет, что у вас вызывается и как это влияет. Совет может быть только один - отладка.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка при создании ДокМат с ВДв 311 через BAPI_GOODSMVT_CREATE (номер партии)
СообщениеДобавлено: Пн, окт 25 2021, 13:44 
Начинающий
Начинающий

Зарегистрирован:
Чт, окт 21 2021, 08:47
Сообщения: 8
Korvax написал:
В теории: одна группа функций может использовать общие глобальные переменные, что может влиять на работу.
На практике: ФМ работает, но не работает в вашей программе. Никто не подскажет, что у вас вызывается и как это влияет. Совет может быть только один - отладка.


Тут же не Z* какой-то, а 2 стандартных ФМ-а вызываются друг за другом.
И, получается, первый влияет на работу второго, что очень странно.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Ошибка при создании ДокМат с ВДв 311 через BAPI_GOODSMVT_CREATE (номер партии)  Тема решена
СообщениеДобавлено: Пн, окт 25 2021, 20:32 
Начинающий
Начинающий

Зарегистрирован:
Чт, окт 21 2021, 08:47
Сообщения: 8
Тема закрыта

Всем спасибо

Вариант решения в лоб - запустить отдельным LUW первый ФМ и будет счастье


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB