| SAPфорум.RU https://sapboard.ru/forum/ |
|
| Проблема выполнения Select-ов https://sapboard.ru/forum/viewtopic.php?f=13&t=100702 |
Страница 1 из 1 |
| Автор: | hub2002 [ Пт, фев 06 2026, 13:08 ] |
| Заголовок сообщения: | Проблема выполнения Select-ов |
Добрый день. Такая проблема в некоторых программах начались проблема выполнения Select-ов, например, такой: select single name1 from lfa1 into dynp_prad-orgn where lifnr = dynp_znpr-org. Помогает копирование программы в новую программу, и все работает. Но хотелось бы понять, что происходит? Может быть кто-то сталкивался с подобным? Такое ощущение, что проблема в генерации каких-то процедур, которые отвечают за выборку данных из БД. База данных на MS SQL. Версия SAP у нас старая 6.40 |
|
| Автор: | Кодер [ Пн, фев 09 2026, 12:25 ] |
| Заголовок сообщения: | Re: Проблема выполнения Select-ов |
Добрый день! В чем именно проблема выполнения? Медленно работает? Выполните трассировку st05 и проведите анализ совместно с базисом. Так же стоит провести полный анализ всей программы в тр-циях se30\sat\st12, а не только проблемного селекта, т.к. возможно просто вся программа неудачно спроектирована. |
|
| Автор: | hub2002 [ Пн, фев 09 2026, 13:56 ] |
| Заголовок сообщения: | Re: Проблема выполнения Select-ов |
Проблема в том, что select - не возвращает данные, хотя они есть. Выдает sy-subrc = 4. Хотя данные есть. И если программу скопировать в новую, тогда все работает. А вот в этой программе не работает. |
|
| Автор: | Кодер [ Пн, фев 09 2026, 14:38 ] |
| Заголовок сообщения: | Re: Проблема выполнения Select-ов |
Все равно мало данных. Стоит все-таки снять трассировку проблемы в st05: там можно будет увидеть какие именно значения переменных подставноки ушли на уровень БД, ну и сделать какие-то выводы на основании этого. |
|
| Автор: | hoar [ Пн, фев 09 2026, 22:07 ] |
| Заголовок сообщения: | Re: Проблема выполнения Select-ов |
hub2002 написал(а): Проблема в том, что select - не возвращает данные, хотя они есть. Выдает sy-subrc = 4. Хотя данные есть. И если программу скопировать в новую, тогда все работает. А вот в этой программе не работает. Чисто из спортивного интереса задачка. Т.е. SELECT ничего не возвращает из программы с определённым именем. Предлагаю цепочку действий:
Я бы для чистоты эксперимента сделал и так: закомментарил весь код кроме SELECT, а WHERE заполнил литералом. Сработает "капризная" программа или нет? |
|
| Автор: | hub2002 [ Чт, фев 12 2026, 20:34 ] |
| Заголовок сообщения: | Re: Проблема выполнения Select-ов |
Добрый день. Проблема в следующем: Есть некая таблица: ZMARA, а ней поля: MANDT MANDT CLNT 3 0 Мандант KEY2 ZTSD_KEY1 INT4 10 0 1-й ключ таблицы MATNR MATNR CHAR 18 0 Номер материала MATNR_ALT MATNR CHAR 18 0 Номер материала Удалили поле KEY2. Сделали ключевыми два других MATNR и MATNR_ALT. Адаптировали таблицу в se14. таблица активировалась. А вот программа, с которой эта таблица работала - тоже исправили, она активировалась, но при выполнении получаем дамп. Database error text........: "[207] Invalid column name 'KEY2'." Internal call code.........: "[RSQL/178/ZMARA_ALT ]" То есть, система где-то помнит, что это поле есть, и требует его. Если таблицу вернуть обратно - тогда все начинает работать. Такое ощущение, что есть некая система меду базой и ABAP. Типа проблема со словарем данных ? Кто-то сталкивался с чем-то похожим? |
|
| Автор: | hub2002 [ Чт, фев 12 2026, 20:55 ] |
| Заголовок сообщения: | Re: Проблема выполнения Select-ов |
Добрый вечер. RSQL (или Remote SQL) — это часть архитектуры SAP, которая отвечает за взаимодействие между ABAP-программами и базами данных. Она использует метаданные для выполнения SQL-запросов. Чтобы обновить информацию о структуре данных в RSQL: Перезагрузка кэша: В некоторых случаях может потребоваться перезагрузка кэша метаданных. Это можно сделать через транзакции, такие как SE11 (Dictionary) и SE14 (Database Utility), где можно выполнить действия по обновлению или пересозданию объектов. в SE11 и SE14 - таблицы как раз изменяем. А вот можно как-то эту систему проверить? или обновить кэш RSQL? |
|
| Автор: | hub2002 [ Чт, фев 12 2026, 20:59 ] |
| Заголовок сообщения: | Re: Проблема выполнения Select-ов |
Коллеги, добрый вечер. Я прошу прощенья подскажите может это не сюда, а в базис? |
|
| Автор: | hoar [ Чт, фев 12 2026, 21:40 ] |
| Заголовок сообщения: | Re: Проблема выполнения Select-ов |
Забавная история. У таблицы ZMARA включена буферизация? Если включена, то попробовать отключить, и переактивировать. Вдруг в этом дело? В такой неясной ситуации я бы попробовал сделать следдующее
Дальше по обстановке. По идее SELECT для ZMARA1 должен работать. Буфера в словаре к ней ещё нет. Можно старый код переключить на новую таблицу. Если кода, который обращается к ZMARA очень много, то можно перенос в продуктив сделать в несколько этапов в стиле "очумелые ручки": 1. ZMARA копипуем в ZMARA1 (которая без KEY2); 2. Удаляем ZMARA; 3. создаём сновая ZMARA но уже без KEY2; 4. ZMARA1 копипуем в обновлённую ZMARA. Тут уж на вкус и цвет все фломастеры разные. Либо код переключать на ZMARA1 либо копировать, удалять таблицу. |
|
| Автор: | hub2002 [ Чт, фев 12 2026, 22:00 ] |
| Заголовок сообщения: | Re: Проблема выполнения Select-ов |
буферизация не включена. Копирование в новую прогу или в новую таблицу помогает. Но хотелось бы понять что с этой. Как эту полечить? с одной то таблицей понятно - что можно скопировать, а если их будет много... |
|
| Автор: | hoar [ Чт, фев 12 2026, 22:08 ] |
| Заголовок сообщения: | Re: Проблема выполнения Select-ов |
hub2002 написал(а): буферизация не включена. Копирование в новую прогу или в новую таблицу помогает. Но хотелось бы понять что с этой. Как эту полечить? с одной то таблицей понятно - что можно скопировать, а если их будет много... На этом мои АБАП-ские познания иссякли. Возможно действительно стоит обратиться в базис или к админу базы данных. Если у Вас старая система, то под ней наверное ORACLE. Поспрашивать спецов по БД. Меня несколько удивляет, как Вам удалось удалить ключевое поле и активровать/адаптировать таблицу. Посмотрите вниматеольнее, мож она у Вас частично активаированна? Конечно, если поле KEY2 содержало одинаковое значение во всей таблице (например KEY1 = 1), то фокус с удалением ключевого поля может быть успешным. Если поле было не одинаковым, то это только счастлиый случай. |
|
| Автор: | broker.chelny [ Чт, фев 19 2026, 12:15 ] |
| Заголовок сообщения: | Re: Проблема выполнения Select-ов |
В SE11, Объект базы данных и динамический объект проверяли? Там все верно? |
|
| Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|