Текущее время: Чт, мар 28 2024, 18:26

Часовой пояс: 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
Сообщения: 1578
Откуда: Москва, Минск
Пол: Мужской
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
Сообщения: 1578
Откуда: Москва, Минск
Пол: Мужской
Проверил, все работает.
Заполнение аналогично, как на скрине, кроме (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 часа


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

Сейчас этот форум просматривают: Yandex [Bot]


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

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