Текущее время: Пн, июл 21 2025, 23:21

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: Как вытащить тексты заголовка при сохранении поставки (VL01N) ?
СообщениеДобавлено: Пн, янв 21 2013, 05:43 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, окт 30 2008, 15:10
Сообщения: 62
Добрый день,

При сохранении документа поставки (VL01N) в badi необходимо получить тексты заголовка , функция READ_TEXT не подходит так как поставка еще не сохранена . Подскажите пожалуйста где их можно найти ?

Заранее благодарен .


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как вытащить тексты заголовка при сохранении поставки (VL01N) ?
СообщениеДобавлено: Пн, янв 21 2013, 08:56 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Попробуйте вызвать READ_TEXT с именем 'XXXXXXXXXX' вместо номера поставки в TDNAME для заголовка. Для позиции к этому имени добавьте номер позиции.

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


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как вытащить тексты заголовка при сохранении поставки (VL01N) ?
СообщениеДобавлено: Пн, янв 21 2013, 10:24 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, окт 30 2008, 15:10
Сообщения: 62
Удав написал(а):
Попробуйте вызвать READ_TEXT с именем 'XXXXXXXXXX' вместо номера поставки в TDNAME для заголовка. Для позиции к этому имени добавьте номер позиции.


попробовал , также ничего не находит :(


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как вытащить тексты заголовка при сохранении поставки (VL01N) ?
СообщениеДобавлено: Пн, янв 21 2013, 11:18 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, окт 21 2006, 20:34
Сообщения: 280
а временный номер поставки какой в BADI виден при создании ? В бух документах у меня получалось по временному номеру вытаскивать при создании


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как вытащить тексты заголовка при сохранении поставки (VL01N) ?
СообщениеДобавлено: Пн, янв 21 2013, 12:22 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, июн 25 2008, 14:06
Сообщения: 313
Откуда: Казахстан, Алматы
Пол: Мужской
Добрый день.

Вот так вроде работает.
theader - ид текста
lines - собственно сам текст
тестил в поставке, в бади LE_SHP_TAB_CUST_HEAD
Code:
CONSTANTS MEMORY_CAT(8) VALUE 'SAPLSTXD'.

DATA:
    theader TYPE THEAD
  , lines    TYPE STANDARD TABLE OF tline
  , t_catalog  TYPE STANDARD TABLE OF TCATALOG
  , l_catalog LIKE LINE OF t_catalog
  , MEMORY_TXT(30)
  .

  IMPORT CATALOG TO t_catalog FROM MEMORY ID MEMORY_CAT.

  IF t_catalog IS NOT INITIAL.
    LOOP AT t_catalog INTO l_catalog.
      CLEAR MEMORY_TXT.
      CONCATENATE MEMORY_CAT l_catalog-id INTO MEMORY_TXT.

      IMPORT THEAD TO THEADER
             TLINE TO LINES
      FROM MEMORY ID MEMORY_TXT.
    ENDLOOP.
  ENDIF.

_________________
Каждый раз при запуске проекта думаешь - ну вот оно СЧАСТЬЕ! А оказывается нет...снова ОПЫТ...


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как вытащить тексты заголовка при сохранении поставки (VL01N) ?
СообщениеДобавлено: Пн, янв 21 2013, 12:33 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, июн 25 2008, 14:06
Сообщения: 313
Откуда: Казахстан, Алматы
Пол: Мужской
AirNeO написал(а):
Удав написал(а):
Попробуйте вызвать READ_TEXT с именем 'XXXXXXXXXX' вместо номера поставки в TDNAME для заголовка. Для позиции к этому имени добавьте номер позиции.


попробовал , также ничего не находит :(


Должно работать.
Я пробовал. Но через мемори ид проще (это из я из READ_TEXT выдрал кусок). Можно вытянуть сразу все тексты которые были заполнены (см пример кода выше).

_________________
Каждый раз при запуске проекта думаешь - ну вот оно СЧАСТЬЕ! А оказывается нет...снова ОПЫТ...


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как вытащить тексты заголовка при сохранении поставки (VL01N) ?
СообщениеДобавлено: Пн, янв 21 2013, 13:10 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, окт 30 2008, 15:10
Сообщения: 62
dump написал(а):
а временный номер поставки какой в BADI виден при создании ? В бух документах у меня получалось по временному номеру вытаскивать при создании


использую BADI : LE_SHP_DELIVERY_PROC Метод: SAVE_AND_PUBLISH_DOCUMENT
здесь уже вижу чистый (не временный) номер поставки (IT_XLIKP-VBELN)


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как вытащить тексты заголовка при сохранении поставки (VL01N) ?
СообщениеДобавлено: Пн, янв 21 2013, 13:21 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, окт 21 2006, 20:34
Сообщения: 280
с тем номером - который видите не получается ?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как вытащить тексты заголовка при сохранении поставки (VL01N) ?
СообщениеДобавлено: Пн, янв 21 2013, 13:22 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, окт 30 2008, 15:10
Сообщения: 62
SDюк написал:
Добрый день.

Вот так вроде работает.
theader - ид текста
lines - собственно сам текст
тестил в поставке, в бади LE_SHP_TAB_CUST_HEAD
Code:
CONSTANTS MEMORY_CAT(8) VALUE 'SAPLSTXD'.

DATA:
    theader TYPE THEAD
  , lines    TYPE STANDARD TABLE OF tline
  , t_catalog  TYPE STANDARD TABLE OF TCATALOG
  , l_catalog LIKE LINE OF t_catalog
  , MEMORY_TXT(30)
  .

  IMPORT CATALOG TO t_catalog FROM MEMORY ID MEMORY_CAT.

  IF t_catalog IS NOT INITIAL.
    LOOP AT t_catalog INTO l_catalog.
      CLEAR MEMORY_TXT.
      CONCATENATE MEMORY_CAT l_catalog-id INTO MEMORY_TXT.

      IMPORT THEAD TO THEADER
             TLINE TO LINES
      FROM MEMORY ID MEMORY_TXT.
    ENDLOOP.
  ENDIF.




люди у меня не работает не тот ни другой способ может бади не тот ? таблица t_catalog не заполняется

method IF_EX_LE_SHP_DELIVERY_PROC~SAVE_AND_PUBLISH_DOCUMENT.

BREAK-POINT.

CONSTANTS MEMORY_CAT(8) VALUE 'SAPLSTXD'.

DATA:
theader TYPE THEAD
, lines TYPE STANDARD TABLE OF tline
, t_catalog TYPE STANDARD TABLE OF TCATALOG
, l_catalog LIKE LINE OF t_catalog
, MEMORY_TXT(30)
.

IMPORT CATALOG TO t_catalog FROM MEMORY ID MEMORY_CAT.

IF t_catalog IS NOT INITIAL.
LOOP AT t_catalog INTO l_catalog.
CLEAR MEMORY_TXT.
CONCATENATE MEMORY_CAT l_catalog-id INTO MEMORY_TXT.

IMPORT THEAD TO THEADER
TLINE TO LINES
FROM MEMORY ID MEMORY_TXT.
ENDLOOP.
ENDIF.





* DATA: WA_XLIKP TYPE LINE OF SHP_LIKP_T.
* DATA: L_DELNUMB TYPE VBELN_VL.
* DATA: L_NAME TYPE THEAD-TDNAME.
* DATA: LT_LINE1 TYPE TABLE OF TLINE. " OCCURS 0.
* DATA: G_TRANSPORT TYPE string.
*
*
* BREAK-POINT.
*
*
* LOOP AT IT_XLIKP INTO WA_XLIKP.
* "IF WA_XLIKP-LFART = 'LO'. "and SY-TCODE = 'VL01N'.
*
*
* CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
* EXPORTING
* INPUT = WA_XLIKP-VBELN
* IMPORTING
* OUTPUT = L_DELNUMB.
* L_NAME = L_DELNUMB.
* CALL FUNCTION 'READ_TEXT'
* EXPORTING
* CLIENT = SY-MANDT
* ID = '0002'
* LANGUAGE = 'E'
* NAME = 'XXXXXXXXXX' "L_NAME
* OBJECT = 'VBBK'
* TABLES
* LINES = LT_LINE1
* EXCEPTIONS
* ID = 1
* LANGUAGE = 2
* NAME = 3
* NOT_FOUND = 4
* OBJECT = 5
* REFERENCE_CHECK = 6
* WRONG_ACCESS_TO_ARCHIVE = 7
* OTHERS = 8.
* CLEAR G_TRANSPORT.
* IF SY-SUBRC = 0.
* READ TABLE LT_LINE1 INDEX 1 INTO G_TRANSPORT.
* IF G_TRANSPORT(1) = '*'.
* SHIFT G_TRANSPORT LEFT DELETING LEADING '*'.
* ENDIF.
* ENDIF.
*
*
*
* MESSAGE 'Sending SMS!' TYPE 'I' .
*
* "ENDIF.
*
*
* ENDLOOP.
endmethod.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как вытащить тексты заголовка при сохранении поставки (VL01N) ?
СообщениеДобавлено: Пн, янв 21 2013, 13:25 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, окт 30 2008, 15:10
Сообщения: 62
dump написал(а):
с тем номером - который видите не получается ?


нет все пусто при сохранении , а вот при изменении сохраненной поставки уже получаю тексты


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как вытащить тексты заголовка при сохранении поставки (VL01N) ?  Тема решена
СообщениеДобавлено: Пн, янв 21 2013, 13:54 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, июн 25 2008, 14:06
Сообщения: 313
Откуда: Казахстан, Алматы
Пол: Мужской
Добрый день.

Действительно в методе SAVE_AND_PUBLISH_DOCUMENT не работает (в старом экзите MV50AFZ1 form USEREXIT_SAVE_DOCUMENT тоже не работает)

Пробуйте метод SAVE_DOCUMENT_PREPARE в том же бади.
Там работает.

_________________
Каждый раз при запуске проекта думаешь - ну вот оно СЧАСТЬЕ! А оказывается нет...снова ОПЫТ...


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как вытащить тексты заголовка при сохранении поставки (VL01N) ?
СообщениеДобавлено: Пн, янв 21 2013, 16:57 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
зайди в VL01N и добавь текст в заголовок, поставь точку на READ_TEXT_INLINE или READ_TEXT,
перезайди в текст заголовка


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как вытащить тексты заголовка при сохранении поставки (VL01N) ?
СообщениеДобавлено: Пн, янв 21 2013, 18:13 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, окт 30 2008, 15:10
Сообщения: 62
SDюк написал:
Добрый день.

Действительно в методе SAVE_AND_PUBLISH_DOCUMENT не работает (в старом экзите MV50AFZ1 form USEREXIT_SAVE_DOCUMENT тоже не работает)

Пробуйте метод SAVE_DOCUMENT_PREPARE в том же бади.
Там работает.


Действительно все работает :D Спасибо огромное !


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как вытащить тексты заголовка при сохранении поставки (VL01N) ?
СообщениеДобавлено: Пн, янв 21 2013, 18:51 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
AirNeO написал(а):
использую BADI : LE_SHP_DELIVERY_PROC Метод: SAVE_AND_PUBLISH_DOCUMENT

С этого и надо было начинать.
Перед вызовом этого метода происходит замена номера в памяти и сохранение текстов в in update task:
Code:
* Performance: not during picking confirmation
    IF v50agl-no_texts IS INITIAL.
      CALL FUNCTION 'SD_COMMIT_TEXT'
        EXPORTING
          fi_caller = gc_text_appl_id-delivery
          fit_vbeln = lt_text_vbeln[]
        EXCEPTIONS
          OTHERS    = 1.
    ENDIF.

Поэтому ловить тексты нужно в подпрограмме USEREXIT_SAVE_PREPARE, как написал SDюк

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


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как вытащить тексты заголовка при сохранении поставки (VL01N) ?
СообщениеДобавлено: Вт, янв 22 2013, 05:31 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, окт 30 2008, 15:10
Сообщения: 62
Удав написал(а):
AirNeO написал(а):
использую BADI : LE_SHP_DELIVERY_PROC Метод: SAVE_AND_PUBLISH_DOCUMENT

С этого и надо было начинать.
Перед вызовом этого метода происходит замена номера в памяти и сохранение текстов в in update task:
Code:
* Performance: not during picking confirmation
    IF v50agl-no_texts IS INITIAL.
      CALL FUNCTION 'SD_COMMIT_TEXT'
        EXPORTING
          fi_caller = gc_text_appl_id-delivery
          fit_vbeln = lt_text_vbeln[]
        EXCEPTIONS
          OTHERS    = 1.
    ENDIF.

Поэтому ловить тексты нужно в подпрограмме USEREXIT_SAVE_PREPARE, как написал SDюк



Точно , спасибо большое за помощь !


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

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


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

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


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

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