Текущее время: Пн, июл 21 2025, 04:58

Часовой пояс: 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 часа


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

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


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

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