Текущее время: Ср, июн 25 2025, 18:25

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: при разработке BAPI нельзя использовать вызов экранов?
СообщениеДобавлено: Пт, сен 09 2005, 07:53 
Специалист
Специалист

Зарегистрирован:
Пн, апр 18 2005, 13:11
Сообщения: 113
Насколько я слышал при разработке BAPI нельзя использовать диалоговое программирование. Мотивируется это тем что при RFC вызове этой BAPI возникнут трудности. Однако в системе есть BAPI которые используют вызовы экранов. В чем соль?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 09 2005, 08:15 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, авг 26 2004, 05:04
Сообщения: 922
Откуда: Челябинск
Пол: Мужской
А не тот ли это BAPI который вызывает транзакцию?

Просто есть еще недописанные BAPI, к которым нет ФМ, а просто вызывается транзакция, я тоже не могу понять тот дурдом.

_________________
Все будет хорошо...
http://sap-blog.ru/


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 09 2005, 08:26 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
Эти BAPI как правило создавались для Workflow.. Вероятно нужно считать стандартные диалоговые BAPI многочисленным исключением из обязательного правила отсутствия работы с экранами, не использования commit work, не использования call transaction, submit и т.п.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 09 2005, 08:31 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 07:32
Сообщения: 777
Откуда: Москва
Пол: Мужской
Непонятно утверждение, что в BAPI нельзя использовать экраны - это же не модули обновления, а RFC-модули. В первых, действительно, использование экранов недопустимо, поскольку идет фоновое выполнение. А при RFC-вызовах... почему бы и нет? :roll:

_________________
"Прежде чем сделать что-то, подумай, к чему это может привести..."


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 09 2005, 08:46 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
Это не я придумал:

Цитата:
Source Code

When preparing to write code for your BAPI, you must follow some very important guidelines. Some of the most important include:
- The BAPI must not invoke a COMMIT WORK command. This will help to minimize the lock periods when updating the database. This will also reduce the duration of database locks.
-The BAPI must not contain any CALL TRANSACTION, SUBMIT REPORT, or SUBMIT REPORT AND RETURN commands. BAPIs must not produce any screen output.
...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 09 2005, 09:04 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
nicky555 написал:
Непонятно утверждение, что в BAPI нельзя использовать экраны - это же не модули обновления, а RFC-модули. В первых, действительно, использование экранов недопустимо, поскольку идет фоновое выполнение. А при RFC-вызовах... почему бы и нет? :roll:

Идея BAPI заключается в том, чтобы предоставить универсальный и самодостаточный интерфейс для работы с R/3, причём этот интерфейс должен быть полностью описан параметрами самого ФМ и быть максимально изолированным от системы. Согласитесь, что при вызове других отчётов, транзакций и тем более экранов с их непредсказуемой логикой появления (вспомним злосчастный batch-input) - при всех этих вызовах эту идею можно будет благополучно похоронить. По-моему, так.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 09 2005, 09:25 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
Я думаю ограничения на экраны, транзакции и отчёты растут из концепции неиспользования COMMIT внутри BAPI..


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 09 2005, 09:30 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 07:32
Сообщения: 777
Откуда: Москва
Пол: Мужской
Соглашусь с тем, что объекты BAPI есть самодостаточные объекты бизнес-логики, работа с которыми возможна из других систем через RFC.
Однако, ФМ есть, как правило, реализация методов этих объектов, которые имеют свои атрибуты. Эти данные, естественно, должны заполняться, в том числе, с помощью вызовов стандартных транзакций с экранами.
То есть, я хочу донести свое понимание - есть реализация бизнес-объектов, со своими методами и атрибутами. ФМ BAPI есть лишь часть реализации этих объектов.

_________________
"Прежде чем сделать что-то, подумай, к чему это может привести..."


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 09 2005, 09:32 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 07:32
Сообщения: 777
Откуда: Москва
Пол: Мужской
T написал:
Я думаю ограничения на экраны, транзакции и отчёты растут из концепции неиспользования COMMIT внутри BAPI..

Может, концепция неиспользования COMMIT внутри BAPI растет из вышесказанного? :wink:

_________________
"Прежде чем сделать что-то, подумай, к чему это может привести..."


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 09 2005, 10:33 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
nicky555 написал:
Может, концепция неиспользования COMMIT внутри BAPI растет из вышесказанного? :wink:


Цитата:
- The BAPI must not invoke a COMMIT WORK command. This will help to minimize the lock periods when updating the database. This will also reduce the duration of database locks.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 09 2005, 11:11 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
А вообще, мне кажется недоразумения по поводу использования диалогов SAPом несмотря на свои же настоятельные рекомендации заключаются в следующем.

Бизнес-объект по понятным причинам может иметь в методах вызовы экранов/транзакций. Например распространённый метод Display. В принципе объект может и не иметь методов реализованных в виде RFC-ФМ. Тогда противоречий никаких, используй всё что хочешь. Это внутрисистемные методы.
Но в некоторых случаях требуется, чтобы метод был удалённовызываемый (к примеру для workflow), но предназначается он для вызова из R/3. Надо - значит сделали метод вызываемым удалённо.

А поскольку BAPI это метод бизнес-объекта, реализованный в виде RFC-ФМ (этого достаточно), то наш метод становится BAPI-методом, несмотря на то, что он не соответствует другим требованиям.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 09 2005, 12:44 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
T написал:
Я думаю ограничения на экраны, транзакции и отчёты растут из концепции неиспользования COMMIT внутри BAPI..

Связь между экранами, CALL TRANSACTION, SUBMIT и COMMIT WORK довольно слабая:
Цитата:
The ABAP statements CALL TRANSACTION (start a new transaction), SUBMIT (start an executable program), and CALL FUNCTION... DESTINATION (call a function module using RFC) open a new SAP LUW. When you call a program, it always opens its own SAP LUW. However, it does not end the LUW of the SAP transaction that called it. This means that a COMMIT WORK or ROLLBACK WORK statement only applies to the SAP LUW of the called program. When the new LUW is complete, the system carries on processing the first SAP LUW.

Другое дело, что все они вызывают DB commit, но это уже совсем другая история...


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

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


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

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


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

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