Текущее время: Сб, апр 27 2024, 06:02

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Вызов асинхронного ФМ в отдельном процессе
СообщениеДобавлено: Вт, авг 23 2016, 07:25 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, окт 05 2011, 08:43
Сообщения: 53
Добрый день.
В BTE 1050 вызываю бапи, которая должна отработать и коммиттиться до того как стандартная программа создание бух.документов вызовет коммит. Для этого написал дистанционный ФМ-обертку для БАПИ c bapi_commit_work-ом. Теперь как нужно свой ФМ вызывать, чтобы он отработал в отдельном процессе и его коммит не завершил транзакцию (LUW) вызывающей программы?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вызов асинхронного ФМ в отдельном процессе
СообщениеДобавлено: Вт, авг 23 2016, 08:12 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, ноя 01 2004, 12:17
Сообщения: 298
Пол: Мужской
http://sapboard.ru/forum/viewtopic.php?f=13&t=67963


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вызов асинхронного ФМ в отдельном процессе
СообщениеДобавлено: Вт, авг 23 2016, 11:12 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, окт 05 2011, 08:43
Сообщения: 53
RA написал:

В этой ветке обсуждается другой случай: многократный вызов бапи и коммит одним махом.
Попробую подробнее объяснить свой случай:
Ставилась такая задача: при списании через ABAVN сначала нужно сделать поступление определенным в.дв. в 10 области.
Списываем ОС, порождается бух.проводка. в опен эфай 1050 вклиниваюсь, и если списывается определенный ОС, через бапиху BAPI_ASSET_ACQUISITION_POST делаю поступление в 10 области.
Если бапи вызывать в теле БТЕ 1050 сразу, то система ругается "Проводка движения невозможна (ссылочная дата недопустима)" - в параметре return.
Поэтому думал в отдельном процессе запустить BAPI_ASSET_ACQUISITION_POST в асинхронном режиме, со своей единицей работы (luw), чтобы при коммите не повлияло на LUW списания ОС.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вызов асинхронного ФМ в отдельном процессе
СообщениеДобавлено: Вт, авг 23 2016, 11:41 
Специалист
Специалист

Зарегистрирован:
Чт, мар 25 2010, 09:02
Сообщения: 207
Что-то подобное обсуждалось здесь:
viewtopic.php?f=13&t=91536&p=542954

Делается через Secondary Database Connections, ФМ BAL_DB_SAVE вроде как так умеет начиная с какой-то версии.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вызов асинхронного ФМ в отдельном процессе  Тема решена
СообщениеДобавлено: Вт, авг 23 2016, 14:08 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, окт 05 2011, 08:43
Сообщения: 53
Не стали мудрить в стандартной проводке.
Решили поставить проверку в ГГБ0. Пусть вручную сделают поступление :oops:


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вызов асинхронного ФМ в отдельном процессе
СообщениеДобавлено: Ср, авг 24 2016, 18:14 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, мар 09 2006, 10:12
Сообщения: 565
Откуда: Волгодонск
Пол: Мужской
maucbs написал(а):
Добрый день.
В BTE 1050 вызываю бапи, которая должна отработать и коммиттиться до того как стандартная программа создание бух.документов вызовет коммит. Для этого написал дистанционный ФМ-обертку для БАПИ c bapi_commit_work-ом. Теперь как нужно свой ФМ вызывать, чтобы он отработал в отдельном процессе и его коммит не завершил транзакцию (LUW) вызывающей программы?


у call function есть дополнение KEEPING LOGICAL UNIT OF WORK " This addition is for internal use only. When this addition is used incorrectly, the worst case scenario may be a system shutdown.
использовать доводилось, ничего страшного не происходило

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


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вызов асинхронного ФМ в отдельном процессе
СообщениеДобавлено: Чт, авг 25 2016, 14:12 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, окт 05 2011, 08:43
Сообщения: 53
Хотя задачу решил другим путем, хотел бы узнать как это все таки реализовать.
На
Цитата:
у call function есть дополнение KEEPING LOGICAL UNIT OF WORK
компилятор ругается ""KEEPING" интерпетировать не удалось. Возможные причины ошибки: неверный вид записи или ошибка запятой". И keeping подсвечивается красным.

starting new task распаралеливает в отдельном диалоговом процессе, но выполняет коммит в вызывающей программе тоже
Цитата:
Asynchronous RFC triggers a database commit in the calling program.


Пытался решить проблему дополнением "in background task", в вызываемом ФМ поставил бесконечный цикл, чтобы отловить процесс. Но после вызова ФМ в фоновом процессе, в SM50 не появляется этот процесс. Не могу понять почему.

Есть транзакция, которая показывает открытые LUW-ы? Например, как SM50, которая показывает какой процесс чем занят.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вызов асинхронного ФМ в отдельном процессе
СообщениеДобавлено: Чт, авг 25 2016, 14:34 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, окт 05 2011, 08:43
Сообщения: 53
Как же тут все внятно и человеческим языком написано :pivo:
http://abap-blog.ru/database-work/progr ... j-bd-v-r3/

Не то, что сап шоу курсы


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вызов асинхронного ФМ в отдельном процессе
СообщениеДобавлено: Чт, авг 25 2016, 15:18 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3074
Откуда: Москва
maucbs написал(а):
Не то, что сап шоу курсы

Так картинки как раз из BC414 надерганы :gigi:

_________________
С уважением,
Удав.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вызов асинхронного ФМ в отдельном процессе
СообщениеДобавлено: Чт, авг 25 2016, 19:32 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, мар 09 2006, 10:12
Сообщения: 565
Откуда: Волгодонск
Пол: Мужской
maucbs написал(а):
Хотя задачу решил другим путем, хотел бы узнать как это все таки реализовать.
На
Цитата:
у call function есть дополнение KEEPING LOGICAL UNIT OF WORK
компилятор ругается ""KEEPING" интерпетировать не удалось. Возможные причины ошибки: неверный вид записи или ошибка запятой". И keeping подсвечивается красным.

starting new task распаралеливает в отдельном диалоговом процессе, но выполняет коммит в вызывающей программе тоже
Цитата:
Asynchronous RFC triggers a database commit in the calling program.


Пытался решить проблему дополнением "in background task", в вызываемом ФМ поставил бесконечный цикл, чтобы отловить процесс. Но после вызова ФМ в фоновом процессе, в SM50 не появляется этот процесс. Не могу понять почему.

Есть транзакция, которая показывает открытые LUW-ы? Например, как SM50, которая показывает какой процесс чем занят.


Code:
    CALL FUNCTION '***'
      DESTINATION rfcdest
      KEEPING LOGICAL UNIT OF WORK
      EXPORTING.....

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


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вызов асинхронного ФМ в отдельном процессе
СообщениеДобавлено: Пт, авг 26 2016, 10:12 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
maucbs написал(а):
Как же тут все внятно и человеческим языком написано :pivo:
http://abap-blog.ru/database-work/progr ... j-bd-v-r3/

Не то, что сап шоу курсы

Цитата:
"В случае если в системе не настроено использование V2 модулей, они будут выполняться в том же рабочем процессе что и V1, но в разных DB LUW. "

О как, я и не знал, что это настраивается. А где делаются настройки?

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вызов асинхронного ФМ в отдельном процессе
СообщениеДобавлено: Вт, авг 30 2016, 15:17 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
rdisp/vb_v2_start


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

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


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

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


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

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