Текущее время: Сб, авг 02 2025, 12:38

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: запись imkey. Вызов функции starting new task
СообщениеДобавлено: Вт, фев 17 2009, 00:30 
Начинающий
Начинающий

Зарегистрирован:
Вт, фев 17 2009, 00:15
Сообщения: 13
Пол: Мужской
Задача - при активации договора записать imkey в ОС. Запись в ОС делаю в методе after_save c помощью BAPI_FIXEDASSET_CHANGE (это уже после всех проверок договора, но до записи его в БД). Проблема - imkey в этот момент только создается, соответственно просто с помощью бапи я не могу проапдейтить ОС (на этот момент еще нет имкея в Бд).Т.е мне надо вызвать изменение ОС после сохранения и апдейта самого договора, пытаюсь сделать следующий вызов
CALL FUNCTION 'ZFI_BAPI_FIXEDASSET_UPD' STARTING NEW TASK 't1' DESTINATION 'NONE' (моя функция обновления, в которой заключен вызов бапи), но ничего не происходит - в отладке обновления вижу только апдейт договора, что я делаю не так?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: запись imkey. Вызов функции starting new task
СообщениеДобавлено: Вт, фев 17 2009, 02:15 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, мар 09 2006, 10:12
Сообщения: 565
Откуда: Волгодонск
Пол: Мужской
Не совсем понял что у вас происходит но возможно вам подойдёт
CALL FUNCTION....IN BACKGROUND TASK

её особенность в том что функция начинает исполняться после commit work в вызвавшей программе.
я в своё время делал цепочку: вызывал свой ФМ IN UPDATE TASK, а из неё ещё один свой ФМ IN BACKGROUND TASK
в результате второй ФМ однозначно запускался только после создания в БД объекта...

то что вы делаете "CALL FUNCTION 'ZFI_BAPI_FIXEDASSET_UPD' STARTING NEW TASK 't1' DESTINATION 'NONE'" - приводит к параллельному запуску ещё одного потока с вашим ФМ никак не связанного с основным

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: запись imkey. Вызов функции starting new task
СообщениеДобавлено: Вт, фев 17 2009, 08:58 
Специалист
Специалист

Зарегистрирован:
Чт, мар 22 2007, 14:40
Сообщения: 142
Пол: Мужской
попробуйте в вашем методе after_save перед вызовом

BAPI_FIXEDASSET_CHANGE

сделать:
SET UPDATE TASK LOCAL.

если уже был INSERT в БД с новым imkey но не было commit это может помочь,

а в каком BADI ваш метод ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: запись imkey. Вызов функции starting new task
СообщениеДобавлено: Вт, фев 17 2009, 09:47 
Начинающий
Начинающий

Зарегистрирован:
Вт, фев 17 2009, 00:15
Сообщения: 13
Пол: Мужской
Pokusannoe_Zubilo написал:
...........
а в каком BADI ваш метод ?


BADI_RE_CN_CN


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: запись imkey. Вызов функции starting new task
СообщениеДобавлено: Вт, фев 17 2009, 10:27 
Начинающий
Начинающий

Зарегистрирован:
Вт, фев 17 2009, 00:15
Сообщения: 13
Пол: Мужской
DKiyanov написал:
Не совсем понял что у вас происходит но возможно вам подойдёт
CALL FUNCTION....IN BACKGROUND TASK


мне надо вызывать мой апдейт из метода позже, чем апдейт договора.
Я попробовал сделать как вы написали, вызываю свой ФМ in update task, а внутри
call function 'BAPI_FIXEDASSET_CHANGE' in background task
но все равно вызов обновления договора происходит первее моего апдейта :(


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: запись imkey. Вызов функции starting new task
СообщениеДобавлено: Вт, фев 17 2009, 10:49 
Специалист
Специалист

Зарегистрирован:
Чт, мар 22 2007, 14:40
Сообщения: 142
Пол: Мужской
к сожалению у меня сейчас доступна только 4.6 поэтому не могу посмотреть ваш BADI.

но если красивого решения не удасться найти,
то могу предложить след. не совсем красивый вариант, вызываете в методе ваш новый Z-фм в BACKGROUND TASK или STARTING NEW TASK,
в котором в цикле ( например DO с задержкой, допустим в секунду) проверяете SELECT-OM появилась ли запись в БД. после того как появилась то вызывать BAPI) + надо добавить ограничение по этому циклу чтобы он допустим ждал максимум n секунд.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: запись imkey. Вызов функции starting new task
СообщениеДобавлено: Вт, фев 17 2009, 13:03 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
kayak написал:
DKiyanov написал:
Не совсем понял что у вас происходит но возможно вам подойдёт
CALL FUNCTION....IN BACKGROUND TASK

мне надо вызывать мой апдейт из метода позже, чем апдейт договора.
...
но все равно вызов обновления договора происходит первее моего апдейта :(

Так вроде так и делается, по вашим словам :)

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: запись imkey. Вызов функции starting new task
СообщениеДобавлено: Ср, фев 18 2009, 17:40 
Начинающий
Начинающий

Зарегистрирован:
Вт, фев 17 2009, 00:15
Сообщения: 13
Пол: Мужской
Удав написал(а):
kayak написал:
мне надо вызывать мой апдейт из метода позже, чем апдейт договора.
...
но все равно вызов обновления договора происходит первее моего апдейта :(

Так вроде так и делается, по вашим словам :)


описка, конечно ж :)
апдейт договора происходит позже моего


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

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


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

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


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

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