Текущее время: Вт, июл 17 2018, 01:44

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Добавить позицию к поставке
СообщениеДобавлено: Ср, мар 01 2017, 07:35 
Специалист
Специалист

Зарегистрирован:
Пн, дек 29 2008, 08:19
Сообщения: 121
Пол: Мужской
Всем привет, подскажите каким BAPI необходимо воспользоваться или сам сценарий, добавления позиции к существующей поставке..?
Заранее благодарю..!
P/S
BAPI_DELIVERYPROCESSING_EXEC
BAPI_OUTB_DELIVERY_CHANGE не добавляют.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Добавить позицию к поставке
СообщениеДобавлено: Чт, мар 09 2017, 11:58 
Гуру-маршал
Гуру-маршал
Аватара пользователя

Зарегистрирован:
Пт, янв 30 2009, 10:59
Сообщения: 1128
Откуда: Москва, Минск
Пол: Мужской
В исходящую поставку добавлял с помощью GN_DELIVERY_CREATE.
Пример вызова:

" Общие данные
ls_delivery_extend-delivery-vbeln = <data>-vbeln.
ls_control-no_commit = 'X'.
ls_control-spe_add_items = 'X'.

APPEND VALUE komdlgn(
matnr =материал
pstyv = тип позиции
lfimg = кол-во в ПЕИ
vrkme = ПЕИ
lgmng = кол-во в БЕИ
meins = БЕИ
werks = завод
lgort = склад
kunwe = получатель материала
vstel = пункт отгрузки
vkorg = Сбытовая организация
vtweg = канал сбыта
lfart = вид поставки
spart = сектор
lfdat = дата поставки
kzazu = 'X'
vbeln = номер поставки
posnr =номер позиции поставки
spe_le_scenario = 'K'
spe_lifex_type = 'K'
spe_posnr =номер позиции поставки ) TO lt_komdlgn.

IF lt_komdlgn IS NOT INITIAL.
CALL FUNCTION 'GN_DELIVERY_CREATE'
EXPORTING
vbsk_i = ls_vbsk
no_commit = 'X'
is_delivery_extend = ls_delivery_extend
is_control = ls_control
TABLES
xkomdlgn = lt_komdlgn
xvbfs = lt_vbfs
xvbls = lt_vbls
EXCEPTIONS
error_message = 1
OTHERS = 2.

LOOP AT lt_vbfs ASSIGNING FIELD-SYMBOL(<vbfs>).
MOVE-CORRESPONDING <vbfs> TO sy.
PERFORM add_msg_to_log USING sy.
ENDLOOP.

IF line_exists( lt_vbfs[ msgty = 'E' ] ) OR line_exists( lt_vbfs[ msgty = 'A' ] ).
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
CONTINUE.
ENDIF.
ENDIF.

Большую часть данных брал из поставки, нужно четко передать все параметры.

Еще можешь глянуть инклюд /SPE/LDIRDLVF27.
Я вроде оттуда брал пример в свое время.

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


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Добавить позицию к поставке
СообщениеДобавлено: Пт, мар 10 2017, 14:33 
Специалист
Специалист

Зарегистрирован:
Пн, дек 29 2008, 08:19
Сообщения: 121
Пол: Мужской
спасибо за ответ, но у меня не создается...сделал след-им образом..
Data:
ls_vbsk like vbsk,
ls_delivery_extend type leshp_delivery_extend_rv,
ls_control type leshp_delivery_proc_control_in,
lt_komdlgn type standard table of komdlgn with header line,
lt_vbfs type standard table of vbfs with header line,
lt_vbls type standard table of vbls with header line .

ls_delivery_extend-delivery-vbeln = p_vbeln.
ls_control-no_commit = 'X'.
ls_control-spe_add_items = 'X'.


lt_komdlgn-posnr = ls_posnr.
lt_komdlgn-matnr = '000000000043000031'."материал
lt_komdlgn-pstyv = pf_lips-pstyv."тип позиции
lt_komdlgn-lfimg = pf_lips-lfimg.""кол-во в ПЕИ
lt_komdlgn-vrkme = pf_lips-vrkme."ПЕИ
lt_komdlgn-lgmng = pf_lips-lgmng."кол-во в БЕИ
lt_komdlgn-meins = pf_lips-meins."БЕИ
lt_komdlgn-werks = pf_lips-werks."завод
lt_komdlgn-lgort = pf_lips-lgort."склад


select single vstel vkorg lfart lfdat from likp into (lt_komdlgn-vstel, lt_komdlgn-vkorg, lt_komdlgn-lfart, lt_komdlgn-lfdat)
where
vbeln eq p_vbeln.
"получатель материала
"пункт отгрузки
"Сбытовая организация
lt_komdlgn-vtweg = pf_lips-vtweg."канал сбыта
"вид поставки
lt_komdlgn-spart = pf_lips-spart."сектор
"дата поставки
lt_komdlgn-kzazu = 'X'.
lt_komdlgn-vbeln = p_vbeln."номер поставки
lt_komdlgn-posnr = ls_posnr."номер позиции поставки
lt_komdlgn-spe_le_scenario = 'K'.
lt_komdlgn-spe_lifex_type = 'K'.
lt_komdlgn-spe_posnr = ls_posnr."номер позиции поставки ) TO lt_komdlgn.

append lt_komdlgn.

IF lt_komdlgn IS NOT INITIAL.
CALL FUNCTION 'GN_DELIVERY_CREATE'
EXPORTING
vbsk_i = ls_vbsk
no_commit = 'X'
is_delivery_extend = ls_delivery_extend
is_control = ls_control
TABLES
xkomdlgn = lt_komdlgn
xvbfs = lt_vbfs
xvbls = lt_vbls
EXCEPTIONS
error_message = 1
OTHERS = 2.

получаю ошибки
VL 565
VL 561
VHUPD 43


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Добавить позицию к поставке
СообщениеДобавлено: Пт, мар 10 2017, 15:32 
Гуру-маршал
Гуру-маршал
Аватара пользователя

Зарегистрирован:
Пт, янв 30 2009, 10:59
Сообщения: 1128
Откуда: Москва, Минск
Пол: Мужской
Ссылку нужно указать на позицию предшествующего документа( сбытовой или закупочный заказ)
В моем примере поставка была без ссылки на пред. документ.

Если у вас добавляется позиция поставки со ссылкой на пред. документ,
Заполните поля:

lt_komdlgn-vgbel
lt_komdlgn-vgpos
lt_komdlgn-vgtyp

В сообщении VHUPD 043 речь идет об упаковке.
У вас поставка уже упакована?
Если да, то позицию в нее вы не добавите.

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


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Добавить позицию к поставке
СообщениеДобавлено: Пн, мар 13 2017, 05:58 
Специалист
Специалист

Зарегистрирован:
Пн, дек 29 2008, 08:19
Сообщения: 121
Пол: Мужской
Да, поставка упакована...
походу пакетником, только вопрос решиться...


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Добавить позицию к поставке
СообщениеДобавлено: Пн, мар 13 2017, 11:40 
Гуру-маршал
Гуру-маршал
Аватара пользователя

Зарегистрирован:
Пт, янв 30 2009, 10:59
Сообщения: 1128
Откуда: Москва, Минск
Пол: Мужской
Пакетник на какую транзакцию?
Если у вас исходящая поставка, разве через Vl02n вы можете добавить позицию в упакованную поставку?

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


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Добавить позицию к поставке  Тема решена
СообщениеДобавлено: Ср, мар 15 2017, 08:21 
Специалист
Специалист

Зарегистрирован:
Пн, дек 29 2008, 08:19
Сообщения: 121
Пол: Мужской
спасибо, работу с пакетником хотелось избежать...сделал следующим образом...
с помощью ФМ sd_salesdocument_change, добавил позиции в заказ и от заказа обновил поставку...все легло красиво..! vl02n - > меню исходящая поставка -> поставка по заказу -> выбираем свой заказ - > сохранить.

спасибо за помощь!


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Добавить позицию к поставке
СообщениеДобавлено: Пн, ноя 27 2017, 09:39 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, сен 19 2011, 14:29
Сообщения: 382
Пол: Мужской
Добрый день.
Сделал по примеру, заполнил дополнительно VGBEL, VGPOS, VGTYP. Но позиция не добавляется, сообщение: E(VL732) Непредусмотренное разделение при создании поставки.
Поставка со сбытового заказа. В чем может быть проблема? Может кто знает еще ФМ на добавление позиции?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Добавить позицию к поставке
СообщениеДобавлено: Пн, ноя 27 2017, 10:11 
Гуру-маршал
Гуру-маршал
Аватара пользователя

Зарегистрирован:
Пт, янв 30 2009, 10:59
Сообщения: 1128
Откуда: Москва, Минск
Пол: Мужской
Этот ФМ точно работает.
Посмотри инклюд /SPE/LDIRDLVF27.
Там полей, конечно, заполняется намного больше чем в примере на форуме :)
Можешь прям как там сделать :)

Если вручную позиция добавляется без проблем, то и ФМ должен работать.
Вручную же строка добавляется?

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


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Добавить позицию к поставке
СообщениеДобавлено: Пн, ноя 27 2017, 15:19 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, сен 19 2011, 14:29
Сообщения: 382
Пол: Мужской
Вручную добавляется без проблем. Сколько бы полей не заполнял, постоянно упираюсь в сообщение E(VL732) Непредусмотренное разделение при создании поставки.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Добавить позицию к поставке
СообщениеДобавлено: Пн, ноя 27 2017, 18:04 
Гуру-маршал
Гуру-маршал
Аватара пользователя

Зарегистрирован:
Пт, янв 30 2009, 10:59
Сообщения: 1128
Откуда: Москва, Минск
Пол: Мужской
а в каком месте оно хоть вызывается можешь сказать?

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


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Добавить позицию к поставке
СообщениеДобавлено: Вт, ноя 28 2017, 09:20 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, сен 19 2011, 14:29
Сообщения: 382
Пол: Мужской
form check_max_numbers_deliveries(LV50SF05) считает количество поставок по xlips и сравнивает с v50agl-max_number_deliveries. Т.к. они равны (1 = 1), то ошибка.

v50agl-max_number_deliveries перезаписывается на 1 здесь: FORM init_delivery_extend(LV50SIDE)


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Добавить позицию к поставке
СообщениеДобавлено: Вт, ноя 28 2017, 16:39 
Гуру-маршал
Гуру-маршал
Аватара пользователя

Зарегистрирован:
Пт, янв 30 2009, 10:59
Сообщения: 1128
Откуда: Москва, Минск
Пол: Мужской
только что сделал пример, все работает.

В указанное тобой место form check_max_numbers_deliveries(LV50SF05) не заходит, потому что у меня вызов подпрограммы выполняется если выполняется условие:
if kopf_gefunden = space.
if not v50agl-max_number_deliveries is initial.
perform check_max_numbers_deliveries changing dc_subrc.
check dc_subrc = 0.
endif.


Переменная kopf_gefunden изначально объявлена с пустым значением, а заполняется она вот тут:
стр. 53 этой же подпрограммы:
ELSEIF v50agl-spe_add_items NE space. "n_1547939
kopf_tabix = 1.
kopf_gefunden = charx.
....


Проанализируй почему у тебя не заполняется kopf_gefunden.

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


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Добавить позицию к поставке
СообщениеДобавлено: Вт, ноя 28 2017, 17:45 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, сен 19 2011, 14:29
Сообщения: 382
Пол: Мужской
Посмотрел, v50agl-spe_add_items - пустое. Можешь посмотреть где заполняется v50agl-spe_add_items в работающем примере?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Добавить позицию к поставке
СообщениеДобавлено: Вт, ноя 28 2017, 19:16 
Гуру-маршал
Гуру-маршал
Аватара пользователя

Зарегистрирован:
Пт, янв 30 2009, 10:59
Сообщения: 1128
Откуда: Москва, Минск
Пол: Мужской
Ну ты даешь :)

в ФМ подается, в примере ж было:
ls_control-spe_add_items = 'X'.

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


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

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


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

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


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

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