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

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


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

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


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

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