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

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


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

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


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

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