Автор Тема: Как динамичесски формировать строку сообщения?  (Прочитано 11091 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
В двух словах: делаю вызов транзакции, после вызова имею табличку с кодом ошибки и параметром (номером кредитора) (пример: me025, 1000), по номеру сообщения с T100 вытягиваю строку ошибки "Поставщик & ЗакупОрг & предусмотрен для удаления.".

Внимание вопрос: как сформировать на основе строки ошибки и параметра "нормальное" сообщение, типа "Поставщик 1000 ЗакупОрг 0001 предусмотрен для удаления"?

В Delphi была функция format(str,.....), есть аналог в АБАП?
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Есть конечно replace (You are not allowed to view links. Register or Login) но как динамичесски, т.е. не по искомой строке, а позиционно.
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 762
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
CALL FUNCTION 'MESSAGE_TEXT_BUILD' - Поможет отцу русской демократии.. параметры там прозрачные.

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Спасибо, самое оно
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Moderator
  • Newbie
  • *****
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
Если речь идет о внутренней таблице сообщений структуры BDCMSGCOLL (errtab, например), полученной после выполнения команды CALL TRANSACTION ..., то это делается элементарно:
Код: You are not allowed to view links. Register or Login
DATA: infotext(400).
MESSAGE ID errtab-msgid TYPE 'S' NUMBER errtab-msgnr WITH errtab-msgv1 errtab-msgv2 errtab-msgv3 errtab-msgv4 INTO infotext.
Можно посмотреть по errtab, классу и номеру сообщений, какие переменные из msgv1 - msgv4 актуальны.

P.S. Хотя сам всегда предпочитал ф-цию, про которую написал Uukrul
« Последнее редактирование: Апрель 02, 2009, 01:17:05 pm от Dmitriy »

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 762
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
You are not allowed to view links. Register or Login
MESSAGE ID errtab-msgid TYPE 'S' NUMBER errtab-msgnr WITH errtab-msgv1 errtab-msgv2 errtab-msgv3 errtab-msgv4 INTO infotext.
А вот это INTO, оно кажется только с определенной версии есть... в 4.6 что-то я такого не нахожу...

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
You are not allowed to view links. Register or Login
Если речь идет о внутренней таблице сообщений структуры BDCMSGCOLL (errtab, например), полученной после выполнения команды CALL TRANSACTION ..., то это делается элементарно:
Код: You are not allowed to view links. Register or Login
DATA: infotext(400).
MESSAGE ID errtab-msgid TYPE 'S' NUMBER errtab-msgnr WITH errtab-msgv1 errtab-msgv2 errtab-msgv3 errtab-msgv4 INTO infotext.
Можно посмотреть по errtab, классу и номеру сообщений, какие переменные из msgv1 - msgv4 актуальны.

P.S. Хотя сам всегда предпочитал ф-цию, про которую написал Uukrul

Тоже нормально
Код: You are not allowed to view links. Register or Login
MESSAGE ID .... INTO infotext. спасибо тоже можно использовать  :)
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Moderator
  • Newbie
  • *****
  • Сообщений: 380
  • Репутация: +0/-0
  • Пол: Мужской
  • Embracive Fire
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
You are not allowed to view links. Register or Login
А вот это INTO, оно кажется только с определенной версии есть... в 4.6 что-то я такого не нахожу...
Вполне возможно, навскидку не скажу, с 4.6 почти 3 года не работал.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 762
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
You are not allowed to view links. Register or Login
Вполне возможно, навскидку не скажу, с 4.6 почти 3 года не работал.
Ну в документации такой конструкции нет, хотя проверил в программке работает...

Оффлайн Паганель

  • Я НЕ ЗАНИМАЮСЬ SAP
  • Administrator
  • Full Member
  • *****
  • Сообщений: 1 367
  • Репутация: +20/-0
  • Пол: Мужской
  • https://noteifyapp.com
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • MacPlus Software
Пишу сюда, что бы не плодить топиков, просто забыл как вообще выводить сообщения после вызова транзакции, ФМ и т.д.

Код: You are not allowed to view links. Register or Login
CALL FUNCTION 'XXX'
    .....
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login