Текущее время: Ср, май 08 2024, 08:10

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


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

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


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

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