Текущее время: Вт, июл 22 2025, 22:15

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Выполнение кода непосредственно после сохранения документа в транзакции VA02
СообщениеДобавлено: Чт, авг 23 2012, 15:24 
Ассистент
Ассистент

Зарегистрирован:
Ср, фев 10 2010, 08:33
Сообщения: 28
Откуда: Тольятти
Пол: Мужской
в програмке
SAPMV45A

есть инклудник

INCLUDE MV45AFZZ

*---------------------------------------------------------------------*
* FORM USEREXIT_SAVE_DOCUMENT *
*---------------------------------------------------------------------*
* This userexit can be used to save data in additional tables *
* when a document is saved. *
* *
* If field T180-TRTYP contents 'H', the document will be *
* created, else it will be changed. *
* *
* This form is called at from form BELEG_SICHERN, before COMMIT *
* *
*---------------------------------------------------------------------*


задача состоит в том, чтобы выполнеить определенные действия сразу после COMMIT, но в инклуднике подобного юзерэкзита не нашел. Каким образом это можно сделать?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Выполнение кода непосредственно после сохранения документа в транзакции VA02
СообщениеДобавлено: Чт, авг 23 2012, 16:04 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, апр 18 2012, 14:20
Сообщения: 252
Откуда: РБ, г. Гомель
Пол: Мужской
CALL FUNCTION - IN UPDATE TASK не пробовали?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выполнение кода непосредственно после сохранения документа в транзакции VA02
СообщениеДобавлено: Пт, авг 24 2012, 08:21 
Ассистент
Ассистент

Зарегистрирован:
Ср, фев 10 2010, 08:33
Сообщения: 28
Откуда: Тольятти
Пол: Мужской
все оказалось попроще:
нужно использовать

INCLUDE MV45AFZA.

FORM FORM USEREXIT_REFRESH_DOCUMENT *
*---------------------------------------------------------------------*
* It is always necessary to refresh user-specific data before *
* the next document will be processed. *
* This can be done in this userexit. *
* This userexit can be used to refresh user-specific data *
* when the processing of a sales document is finished *
* - after the document is saved *
* - when you leave the document processing with F3 or F15 *
* It may be necessary to refresh user-specific data before *
* the next document will be processed. *
* *
* This form is called in dialog at the end of form *
* BELEG_INITIALISIEREN


может кому понадобится)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Выполнение кода непосредственно после сохранения документа в транзакции VA02
СообщениеДобавлено: Пт, авг 24 2012, 09:40 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
metaldrummer написал:
все оказалось попроще:
нужно использовать

INCLUDE MV45AFZA.

FORM FORM USEREXIT_REFRESH_DOCUMENT *
*---------------------------------------------------------------------*
* It is always necessary to refresh user-specific data before *
* the next document will be processed. *
* This can be done in this userexit. *
* This userexit can be used to refresh user-specific data *
* when the processing of a sales document is finished *
* - after the document is saved *
* - when you leave the document processing with F3 or F15 *
* It may be necessary to refresh user-specific data before *
* the next document will be processed. *
* *
* This form is called in dialog at the end of form *
* BELEG_INITIALISIEREN


может кому понадобится)

Опасный путь ;)
1.USEREXIT_REFRESH_DOCUMENT вызывается не только при сохранении документа. Да и если COMMIT не прошел эта процедура все равно вызовется.
2.В VA01, VA02 применяется асинхронное обновление, поэтому к моменту вызова этой процедуры COMMIT может быть еще не завершен.

Поэтому USEREXIT_SAVE_DOCUMENT и вызов ФМ в режиме IN UPDATE TASK - то, что доктор прописал :!:

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выполнение кода непосредственно после сохранения документа в транзакции VA02
СообщениеДобавлено: Пт, авг 24 2012, 12:21 
Ассистент
Ассистент

Зарегистрирован:
Ср, фев 10 2010, 08:33
Сообщения: 28
Откуда: Тольятти
Пол: Мужской
Удав написал(а):
metaldrummer написал:
все оказалось попроще:
Опасный путь ;)
1.USEREXIT_REFRESH_DOCUMENT вызывается не только при сохранении документа. Да и если COMMIT не прошел эта процедура все равно вызовется.
2.В VA01, VA02 применяется асинхронное обновление, поэтому к моменту вызова этой процедуры COMMIT может быть еще не завершен.

Поэтому USEREXIT_SAVE_DOCUMENT и вызов ФМ в режиме IN UPDATE TASK - то, что доктор прописал :!:


1. я в курсе, уже отсек ненужные мне ситуации, и все выполняется при сохранении.

как работать с вызовом кода при помощи IN UPDATE TASK я пока не разобрался


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Выполнение кода непосредственно после сохранения документа в транзакции VA02
СообщениеДобавлено: Пт, авг 24 2012, 13:02 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
metaldrummer написал:
как работать с вызовом кода при помощи IN UPDATE TASK я пока не разобрался

См. справку

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выполнение кода непосредственно после сохранения документа в транзакции VA02
СообщениеДобавлено: Пт, авг 24 2012, 15:22 
Ассистент
Ассистент

Зарегистрирован:
Ср, фев 10 2010, 08:33
Сообщения: 28
Откуда: Тольятти
Пол: Мужской
Удав написал(а):
metaldrummer написал:
как работать с вызовом кода при помощи IN UPDATE TASK я пока не разобрался

См. справку


да вот собственно с этим и не понятно)
в ФМ поставил сообщалку...при отладке ничего не происходит, при нажатии на кнопку сохранить вылетает стандартно на первый экран va02


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Выполнение кода непосредственно после сохранения документа в транзакции VA02
СообщениеДобавлено: Пт, авг 24 2012, 16:18 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
metaldrummer написал:
да вот собственно с этим и не понятно)
в ФМ поставил сообщалку...при отладке ничего не происходит, при нажатии на кнопку сохранить вылетает стандартно на первый экран va02

Перед сохранением в отладке нужно установить параметр "Отладка обновления" в новом отладчике пункт меню "Параметры настройки - Просмотреть / изменить параметры настройки - Update Debugging".

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выполнение кода непосредственно после сохранения документа в транзакции VA02
СообщениеДобавлено: Пн, авг 27 2012, 08:54 
Ассистент
Ассистент

Зарегистрирован:
Ср, фев 10 2010, 08:33
Сообщения: 28
Откуда: Тольятти
Пол: Мужской
Удав написал(а):
metaldrummer написал:
да вот собственно с этим и не понятно)
в ФМ поставил сообщалку...при отладке ничего не происходит, при нажатии на кнопку сохранить вылетает стандартно на первый экран va02

Перед сохранением в отладке нужно установить параметр "Отладка обновления" в новом отладчике пункт меню "Параметры настройки - Просмотреть / изменить параметры настройки - Update Debugging".


спасибо с отладкой все получилось...но возник другой вопрос - как из ФМ вызвать другую транзакцию(или программу-отчет)
например вот так:
submit Z_PROG_NAME using selection-screen '1000' with pa_vbeln = vbeln and return.

отладка не реагирует на эту строчку...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Выполнение кода непосредственно после сохранения документа в транзакции VA02
СообщениеДобавлено: Пн, авг 27 2012, 09:02 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
metaldrummer написал:
спасибо с отладкой все получилось...но возник другой вопрос - как из ФМ вызвать другую транзакцию(или программу-отчет)
например вот так:
submit Z_PROG_NAME using selection-screen '1000' with pa_vbeln = vbeln and return.

отладка не реагирует на эту строчку...

в update task submit никак. Почитайте ту ссылку на хелп про ФМы обновления.

Добавил, в зависимости от задачи, может получится что то сделать с использованием in background task или STARTING NEW TASK.


Последний раз редактировалось Besa Пн, авг 27 2012, 09:09, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выполнение кода непосредственно после сохранения документа в транзакции VA02
СообщениеДобавлено: Пн, авг 27 2012, 09:05 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, апр 18 2012, 14:20
Сообщения: 252
Откуда: РБ, г. Гомель
Пол: Мужской
в таком ФМ нельзя юзать инструкции, которые приводят к возникновению COMMIT


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выполнение кода непосредственно после сохранения документа в транзакции VA02
СообщениеДобавлено: Пн, авг 27 2012, 09:35 
Ассистент
Ассистент

Зарегистрирован:
Ср, фев 10 2010, 08:33
Сообщения: 28
Откуда: Тольятти
Пол: Мужской
Спасибо за информацию, буду копать дальше)


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

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


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

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


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

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