Текущее время: Пн, июл 28 2025, 15:06

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: BAPI_PO_CREATE из VBA
СообщениеДобавлено: Чт, май 27 2010, 16:30 
Начинающий
Начинающий

Зарегистрирован:
Чт, май 27 2010, 15:54
Сообщения: 7
Пол: Мужской
Всем привет. Возникла потребность импортировать заказы на поставку (NB) в SAP из Excel.

Внутренности SAP'а знаю крайне поверхностно, структуры PO_HEADER, PO_ITEMS, PO_ITEM_SCHEDULE и PO_HEADER_ADD_DATA заполняю на основании маппинга в LSM Workbench для уже настроенного аналогичного импорта из текстовых файлов, но тут возникает некое несоответствие по полям.

1. Не понимаю как обратиться к POCOND для заполнения данных, в частности, по единице измерения. Без этого в созданном заказе либо не заполнена ЕИ (при незаполненной PO_ITEM.UNIT) либо при импорте выдается ошибка "Пересчет ЕИ ****** в ЕИ заказа ШТ невозможен". В процессе выполнения кода просмотрел все объекты внутри SAPFunction.Tables.Item(...) и SAPFunction.Exports, но ничего похожего на POCOND не нашел. Попытка подключения SAP Remote function call control тоже не удалась, т.к. компонент не желает добавляться на форму с сообщением "Субъект не имеет доверия...". На форуме прочитал, что это было замечено для GUI 710. Подскажите, пожалуйста, как можно заполнить данные по условиям позиции?

2. При заполнении в PO_ITEMS данных по контракту AGREEMENT и AGTM_ITEM возникает ошибка несоответствия № контракта в заголовке и позиции. Не могу найти, где же в заголовке нужно указать данные по контракту. В
LSMW они указаны только для E1BPMEPOITEM. Если контракт в PO_ITEM оставлять незаполненным, то заказ успешно создается. Как можно побороть при наличии данных по контракту?

По форуму полазил. но подобной информации не нашел. Заранее спасибо тем, кто откликнется. :)


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: BAPI_PO_CREATE из VBA
СообщениеДобавлено: Чт, май 27 2010, 17:00 
Директор
Директор

Зарегистрирован:
Чт, июн 21 2007, 09:01
Сообщения: 904
Откуда: УЖ 15/2
Пол: Мужской
turadan написал:
либо при импорте выдается ошибка "Пересчет ЕИ ****** в ЕИ заказа ШТ невозможен"
Единицы измерения должны заполняться во внутреннем формате SAP. Для ШТ это ST.

_________________
"I have a dream"(c)Martin Luther King, Jr.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BAPI_PO_CREATE из VBA
СообщениеДобавлено: Чт, май 27 2010, 17:55 
Начинающий
Начинающий

Зарегистрирован:
Чт, май 27 2010, 15:54
Сообщения: 7
Пол: Мужской
Alex80 написал:
turadan написал:
либо при импорте выдается ошибка "Пересчет ЕИ ****** в ЕИ заказа ШТ невозможен"
Единицы измерения должны заполняться во внутреннем формате SAP. Для ШТ это ST.


Спасибо, по данному пункту помогло. ЕИ и ЕИЗ заполнились в созданном заказе корректно.

Ещё успел понять. что вместо BAPI_PO_CREATE в моем случае надо использовать BAPI_PO_CREATE1. С ним все вопросы по структурам снялись. Зато вместо них появился другой: :)

После вызова SAPFunction.Call получаю результат: "Ни одной инстанции типа объекта PurchaseOrder не создано. Внешняя ссылка: ". С BAPI_PO_CREATE на этой стадии сообщения были более разборчивые. Тогда я считывал номер заказа из SAPFunction.imports.Item("PURCHASEORDER"), а теперь из SAPFunction.imports.Item("EXPPURCHASEORDER"). Статусы как и раньше вытаскиваю из SAPFunction.Tables.Item("RETURN"). Всё правильно? Куда дальше копать?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: BAPI_PO_CREATE из VBA
СообщениеДобавлено: Чт, май 27 2010, 22:16 
Начинающий
Начинающий

Зарегистрирован:
Чт, май 27 2010, 15:54
Сообщения: 7
Пол: Мужской
turadan написал:
После вызова SAPFunction.Call получаю результат: "Ни одной инстанции типа объекта PurchaseOrder не создано. Внешняя ссылка: ". С BAPI_PO_CREATE на этой стадии сообщения были более разборчивые. Тогда я считывал номер заказа из SAPFunction.imports.Item("PURCHASEORDER"), а теперь из SAPFunction.imports.Item("EXPPURCHASEORDER"). Статусы как и раньше вытаскиваю из SAPFunction.Tables.Item("RETURN"). Всё правильно? Куда дальше копать?


Изучил повнимательнее все статусы, и ситуация несколько прояснилась. Теперь итоговый статус сообщает, что заказ с таким-то номером успешно создан, но через SAPGUI я его не вижу. При использовании BAPI_PO_CREATE вместо BAPI_PO_CREATE1 импортированный из Excel заказ в системе отражается корректно. В чём может быть причина? :roll:


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: BAPI_PO_CREATE из VBA  Тема решена
СообщениеДобавлено: Пт, май 28 2010, 06:08 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
turadan написал:
turadan написал:
После вызова SAPFunction.Call получаю результат: "Ни одной инстанции типа объекта PurchaseOrder не создано. Внешняя ссылка: ". С BAPI_PO_CREATE на этой стадии сообщения были более разборчивые. Тогда я считывал номер заказа из SAPFunction.imports.Item("PURCHASEORDER"), а теперь из SAPFunction.imports.Item("EXPPURCHASEORDER"). Статусы как и раньше вытаскиваю из SAPFunction.Tables.Item("RETURN"). Всё правильно? Куда дальше копать?


Изучил повнимательнее все статусы, и ситуация несколько прояснилась. Теперь итоговый статус сообщает, что заказ с таким-то номером успешно создан, но через SAPGUI я его не вижу. При использовании BAPI_PO_CREATE вместо BAPI_PO_CREATE1 импортированный из Excel заказ в системе отражается корректно. В чём может быть причина? :roll:

Вам надо сделать commit work. Что бы изменения легли по таблицам. То есть по существу Вы просто сделали тестовый прогон. Можете после BAPI_PO_CREATE1 вызвать BAPI_TRANSACTION_COMMIT.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BAPI_PO_CREATE из VBA
СообщениеДобавлено: Пт, май 28 2010, 06:47 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
ммм, Вы же из VBA работаете, думаю что вызов в VBA поочередно BAPI_PO_CREATE1 и BAPI_TRANSACTION_COMMIT не поможет. Надо писать на стороне сапа RFC модуль, в котором вызвать поочередно BAPI_PO_CREATE1 и BAPI_TRANSACTION_COMMIT и затем уже этот модуль вызвать из VBA. Если ошибаюсь, пусть коллеги поправят.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BAPI_PO_CREATE из VBA
СообщениеДобавлено: Пт, май 28 2010, 07:19 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, мар 09 2006, 10:12
Сообщения: 565
Откуда: Волгодонск
Пол: Мужской
Besa написал:
ммм, Вы же из VBA работаете, думаю что вызов в VBA поочередно BAPI_PO_CREATE1 и BAPI_TRANSACTION_COMMIT не поможет. Надо писать на стороне сапа RFC модуль, в котором вызвать поочередно BAPI_PO_CREATE1 и BAPI_TRANSACTION_COMMIT и затем уже этот модуль вызвать из VBA. Если ошибаюсь, пусть коллеги поправят.


Поможет...
Эти вызовы будут сделаны в рамках одной сейсии на стороне RFC сервера

_________________
Изображение Попытка не пытка


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BAPI_PO_CREATE из VBA
СообщениеДобавлено: Вс, май 30 2010, 23:09 
Начинающий
Начинающий

Зарегистрирован:
Чт, май 27 2010, 15:54
Сообщения: 7
Пол: Мужской
DKiyanov написал:
Besa написал:
ммм, Вы же из VBA работаете, думаю что вызов в VBA поочередно BAPI_PO_CREATE1 и BAPI_TRANSACTION_COMMIT не поможет. Надо писать на стороне сапа RFC модуль, в котором вызвать поочередно BAPI_PO_CREATE1 и BAPI_TRANSACTION_COMMIT и затем уже этот модуль вызвать из VBA. Если ошибаюсь, пусть коллеги поправят.


Поможет...
Эти вызовы будут сделаны в рамках одной сейсии на стороне RFC сервера


Спасибо, подтверждение транзакции помогло.

Ещё остались нерешенными некоторые странные моменты с импортом суммы и даты поставки по позициям. По какой-то причине в созданном заказе они отличаются от заданных на входе. При импорте двух позиций с разными ценами в SAP попадают две позиции с одинаковой ценой, но другой величины. Дата на выходе тоже отличается по каждой из позиций. Возможно это связано с форматами передаваемых полей, пока не понял. Буду смотреть дальше.


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

Зарегистрирован:
Вт, июн 02 2009, 22:28
Сообщения: 228
Откуда: MOW
Пол: Мужской
Может в этой теме содержится ответ к проблеме в вашем последнем посте.
То есть цены иногда можно поменять только через условия, и тогда в BAPI также нужно передавать через условия а не напрямую через позиции.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: BAPI_PO_CREATE из VBA
СообщениеДобавлено: Вт, июн 01 2010, 00:06 
Начинающий
Начинающий

Зарегистрирован:
Чт, май 27 2010, 15:54
Сообщения: 7
Пол: Мужской
raaleksandr написал:
Может в этой теме содержится ответ к проблеме в вашем последнем посте.
То есть цены иногда можно поменять только через условия, и тогда в BAPI также нужно передавать через условия а не напрямую через позиции.


Я цену передаю не только по позициям (POITEM), но и через условия с заполнением POCOND. В итоге, предположительно из-за параметра CHANGE_ID = "I", у меня каждый раз добавлялось новое неактивное ценовое условие, а первая добавленная цена оставалась активна. Я не до конца понял, по какой причине наследовались ценовые условия старых заказов, но после удаления лишнего и замены на CHANGE_ID = "U" цены стали импортироваться корректно.

Вопрос с датой поставки по позициям тоже снимается, т.к. я сначала применял некорректный формат даты. После замены / на . всё стало обрабатываться правильно.

Всем спасибо за помощь! :)


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

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


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

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


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

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