Текущее время: Вс, июл 20 2025, 21:02

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: READ TABLE не ищет?!
СообщениеДобавлено: Чт, мар 15 2012, 18:40 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 07 2006, 16:32
Сообщения: 131
Откуда: Украина, Мариуполь
Пол: Мужской
Здравствуйте уважаемые коллеги. Имеется такой код для поиска закупочной организации по группе закупок через пользовательскую таблицу zmm_c_001

Code:
FORM get_ekorg  USING    i_ekgrp TYPE ekgrp
                CHANGING e_ekorg TYPE ekorg.
  DATA: ls_c_001 TYPE zmm_c_001.
  IF buf_c_001 IS INITIAL.
    SELECT * FROM zmm_c_001 INTO TABLE buf_c_001
      ORDER BY ekgrp.
    IF sy-subrc IS INITIAL.
      APPEND INITIAL LINE TO buf_c_001.
    ENDIF.
  ENDIF.

  READ TABLE buf_c_001 INTO ls_c_001 WITH KEY ekgrp = i_ekgrp BINARY SEARCH.
  e_ekorg = ls_c_001-ekorg.

ENDFORM.                    " GET_EKORG


в одной системе отрабатывает правильно, но в другой не находит EKPRG по EKGRP хотя такая пара в таблице есть!
в чем может быть причина? юникод? еще что-то? первый раз с таким сталкиваюсь поэтому буду благодарен за любую помощь.

_________________
я в пути и нет у меня никаких тревог и забот. одинокая лодка моя рассекая волну плывет...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: READ TABLE не ищет?!
СообщениеДобавлено: Чт, мар 15 2012, 20:51 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
1) Проверьте, не меняется ли у вас порядок сортировки в промежутках между вызовами подпрограммы
2) Стоит проверять после read table значение sy-subrc. Возможно, что все-таки нужной пары нет.

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: READ TABLE не ищет?!
СообщениеДобавлено: Чт, мар 15 2012, 23:18 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, апр 12 2006, 12:43
Сообщения: 863
Откуда: СССР
Пол: Мужской
Мож так надо:

IF buf_c_001[] IS INITIAL....

И еще.... buf_c_001 - сортированная ? With header line в объявлении есть/нет ?
Тип у неё какой? с BINARY SEARCH надо повнимательнее.

_________________
Никого не трогаю, примусы починяю.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: READ TABLE не ищет?!
СообщениеДобавлено: Пт, мар 16 2012, 11:12 
Специалист
Специалист

Зарегистрирован:
Вт, дек 30 2008, 18:10
Сообщения: 171
Пол: Мужской
Code:
  ...
  sort buf_c_001 by ekgrp.
  READ TABLE buf_c_001 INTO ls_c_001 WITH KEY ekgrp = i_ekgrp BINARY SEARCH.
...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: READ TABLE не ищет?!
СообщениеДобавлено: Пт, мар 16 2012, 12:51 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, окт 03 2008, 17:20
Сообщения: 162
А что Вы хотите?! Сначала сортируете по полю EKGRP,
Code:
ORDER BY ekgrp.
а затем в конец таблицы добавляете пустое значение
Code:
APPEND INITIAL LINE TO buf_c_001.
.
И после этого таблица считается отсортированной? :?

Соответственно возможны варианты:
1) Логическая ошибка в операторе IS INITIAL. Должно быть IS NOT INITIAL.
2) Вместо APPEND использовать INSERT.
3) Если поля ekgrp содержат не только числа, проверьте на кириллические символы.

_________________
В SAPе есть всё, просто вы чего-то не нашли.


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

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


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

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


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

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