Текущее время: Вс, июл 27 2025, 15:42

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: MESSAGE, CALL TRANSACTION.
СообщениеДобавлено: Пт, май 16 2008, 16:53 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, сен 10 2007, 20:37
Сообщения: 72
Программа ыызывает по очереди 2 транзакции. В начале второй транзакции на селекционном экране должно быть сообщение типа S "Хелло Юзер". Вставка сообщения в INITIALIZATION, AT SELECTION-SCREEN OUTPUT не помогает, хотя если вызываю танзакцию отдельно все работает. В messtab они есть. Это решаемо?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MESSAGE, CALL TRANSACTION.
СообщениеДобавлено: Пт, май 16 2008, 17:04 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Rednada написал(а):
Программа ыызывает по очереди 2 транзакции. В начале второй транзакции на селекционном экране должно быть сообщение типа S "Хелло Юзер". Вставка сообщения в INITIALIZATION, AT SELECTION-SCREEN OUTPUT не помогает, хотя если вызываю танзакцию отдельно все работает. В messtab они есть. Это решаемо?
Что значит в "В messtab они есть"? Т.е. транзакция запускается в пакетном режиме?
Да и что страшного что в строке будет пусто?

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MESSAGE, CALL TRANSACTION.
СообщениеДобавлено: Пт, май 16 2008, 17:23 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, сен 10 2007, 20:37
Сообщения: 72
sy-uname написал(а):
Что значит в "В messtab они есть"? Т.е. транзакция запускается в пакетном режиме?
Да и что страшного что в строке будет пусто?

Да в пакетном.

CALL TRANSACTION 'ZNAME'
USING bdcdata
MODE 'E'
UPDATE 'S'
MESSAGES INTO messtab.

Имел ввиду что они выдаются, но не остаются на экране.
Страшного ничего, заказчик требует.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MESSAGE, CALL TRANSACTION.
СообщениеДобавлено: Пт, май 16 2008, 18:05 
Ассистент
Ассистент

Зарегистрирован:
Чт, янв 31 2008, 14:01
Сообщения: 31
Откуда: Kiev
Rednada написал(а):
sy-uname написал(а):
Что значит в "В messtab они есть"? Т.е. транзакция запускается в пакетном режиме?
Да и что страшного что в строке будет пусто?

Да в пакетном.

CALL TRANSACTION 'ZNAME'
USING bdcdata
MODE 'E'
UPDATE 'S'
MESSAGES INTO messtab.

Имел ввиду что они выдаются, но не остаются на экране.
Страшного ничего, заказчик требует.



Попробуйте так:
CALL TRANSACTION 'ZNAME'
USING bdcdata
MODE 'E'
UPDATE 'S'
MESSAGES INTO messtab.

+ добавьте:
LOOP AT messtab INTO ls_messtab.
IF ls_messtab-MSGTYP = 'E'.
t_return-type = ls_messtab-MSGTYP.
SELECT SINGLE TEXT FROM T100 INTO TEXTMES
WHERE SPRSL = 'RU'
AND ARBGB = ls_messtab-MSGID
AND MSGNR = ls_messtab-MSGNR.
SPLIT TEXTMES AT '&' INTO PART1 PART2 PART3 PART4 PART5.
CONCATENATE PART1 SY-MSGV1 PART2 SY-MSGV2
PART3 SY-MSGV3 PART4 SY-MSGV4
PART5 INTO t_return-message
SEPARATED BY SPACE .

MESSAGE t_return-message type 'I'.
EXIT.
ENDIF.
ENDLOOP.

(DATA: PART1 LIKE T100-TEXT,
PART2 LIKE T100-TEXT,
PART3 LIKE T100-TEXT,
PART4 LIKE T100-TEXT,
PART5 LIKE T100-TEXT,
TEXTMES LIKE T100-TEXT.)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: MESSAGE, CALL TRANSACTION.
СообщениеДобавлено: Сб, май 17 2008, 12:10 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
вызывайте вторую транзакцию не через CALL TRANSACTION, а через SUBMIT :)

HGN написал(а):
+ добавьте:
LOOP AT messtab INTO ls_messtab.
IF ls_messtab-MSGTYP = 'E'.
t_return-type = ls_messtab-MSGTYP.
SELECT SINGLE TEXT FROM T100 INTO TEXTMES
WHERE SPRSL = 'RU'
AND ARBGB = ls_messtab-MSGID
AND MSGNR = ls_messtab-MSGNR.
SPLIT TEXTMES AT '&' INTO PART1 PART2 PART3 PART4 PART5.
CONCATENATE PART1 SY-MSGV1 PART2 SY-MSGV2
PART3 SY-MSGV3 PART4 SY-MSGV4
PART5 INTO t_return-message
SEPARATED BY SPACE .

MESSAGE t_return-message type 'I'.
EXIT.
ENDIF.
ENDLOOP.

Зачем так сложно?
Достаточно так:
Code:
LOOP AT  messtab INTO ls_messtab WHERE MSGTYP CA 'EAX'. "Обработка ошибок
  MESSAGE ID ls_messtab-MSGID NUMBER ls_messtab-MSGNR TYPE 'I'
    WITH ls_messtab-MSGV1 ls_messtab-MSGV2
         ls_messtab-SY-MSGV3 ls_messtab-MSGV4.
ENDLOOP.

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


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

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


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

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


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

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