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

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


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

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


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

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