Текущее время: Вс, июл 27 2025, 15:42

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Добавление поля в BSEG
СообщениеДобавлено: Пн, июл 11 2011, 10:04 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, янв 18 2010, 16:18
Сообщения: 57
Есть желание добавить поле в BSEG и BSIS:
Например XREF4 типа INT4. Поле нужно для построение отчетов по большим объемам данных. Планируется его индексировать. По циферкам по идее должен быстро бегать.

При помощи стандартного фуекционала поле добавить не удалось...
http://sapboard.ru/forum/viewtopic.php?t=34859
т.к. система давно в продуктиве.
Получили ключи, добавили в BSEG и BSIS.
Теперь замещением пытаюсь записать туда необходимые данные. Не записывает....
Причем в аналог xref3 записывает успешно....
Писала напрямую в таблицу - все в порядке, пишет.

УВАЖАЕМЫЕ ГУРУ! Подскажите, пожалуйста что не так?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Добавление поля в BSEG
СообщениеДобавлено: Пн, июл 11 2011, 11:28 
Ассистент
Ассистент

Зарегистрирован:
Ср, апр 15 2009, 11:39
Сообщения: 26
Откуда: Москва
Пол: Женский
В BSEG добавить поле можно, но вот создать индекс к BSEG нельзя т.к. это таблица кластера. Поиск в BSEG должен идти
только по БЕ+Год+НомерДокумента. За все другие варианты надо отрывать руки.

Добавляя поле в BSIS добавляйте аналогичное в BSAS, в противном случае можете столкнуться с дампом


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Добавление поля в BSEG
СообщениеДобавлено: Пн, июл 11 2011, 11:56 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, янв 18 2010, 16:18
Сообщения: 57
ок, в BSAS добавлю. Но как же мне отловленую инфу на уровне ввода документа "запихнуть" в BSIS?
По BSEG искать и не собиралась, там все глохнет)))) Допустим, можно было бы сделать update, но номера документа-то я не знаю...
Или на 3ем моменте у меня уже есть номер документа? Надо попробовать...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Добавление поля в BSEG
СообщениеДобавлено: Пн, июл 11 2011, 14:41 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, янв 18 2010, 16:18
Сообщения: 57
Не получилось...((( На третьем шаге номер документа $1..
Уважаемые ГУРУ!! Есть еще у Вас идеи?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Добавление поля в BSEG
СообщениеДобавлено: Пн, июл 11 2011, 15:07 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Ср, фев 01 2006, 16:49
Сообщения: 1967
Откуда: Питерский Москвич
Пол: Мужской
Я бы попробовал организовать все на SL. У вас будут и итоговые данные и отдельные позиции (из которых формируются итоговые), куда можно добавить поле для индекса.

_________________
Материалы по S/4HANA (установка и активация компонентов, FIORI, ACR, CIT, PaPM(FS-PER)) на моем сайте planksap.pro


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Добавление поля в BSEG
СообщениеДобавлено: Пн, июл 11 2011, 15:26 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, янв 18 2010, 16:18
Сообщения: 57
Это задача замороченая. Мне всего то надо из одного поля типа char копировать значение в int4... (((( Ну куда уж проще то


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Добавление поля в BSEG
СообщениеДобавлено: Пн, июл 11 2011, 15:31 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Ср, фев 01 2006, 16:49
Сообщения: 1967
Откуда: Питерский Москвич
Пол: Мужской
А вот не проще...
Вы сейчас много дров наломаете, да еще начнется цепная реакция и в результате, как порядочному офицеру, вам останется только застрелиться...

_________________
Материалы по S/4HANA (установка и активация компонентов, FIORI, ACR, CIT, PaPM(FS-PER)) на моем сайте planksap.pro


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Добавление поля в BSEG
СообщениеДобавлено: Пн, июл 11 2011, 15:49 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, янв 18 2010, 16:18
Сообщения: 57
В целом ситуация такова: давно работающий продуктив. Есть ряд самописных abap программ использующих текстовое поле zuonr, которое еще и можно редактировать в качестве id внутреннего документа. Данные поднакопились. Быстродействие давно не устраивает пользователя. Пользователь бывалоче ручиками правит случайно значения этого id.
Мне представляется наиболее простым именно такой выход - копировать при вводе документа определенного типа zuonr поле типа int4 (т.к. id числовой и по словам коллег индекс по такому типу будет работать гораздо быстрее) и в отчетах использующих данный id if zuonr+0(6) CO '1234567890' заменить на xref4 (который я добавила).
На внедрение новых программ времени (денег) никто не даст...
А какие могут быть подводные камни? Какие ужасы Вы можете предположить?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Добавление поля в BSEG
СообщениеДобавлено: Пн, июл 11 2011, 16:00 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Ср, фев 01 2006, 16:49
Сообщения: 1967
Откуда: Питерский Москвич
Пол: Мужской
Можете привести пример выборки, которая долго работает, и которую вы хотите ускорить индексом.

_________________
Материалы по S/4HANA (установка и активация компонентов, FIORI, ACR, CIT, PaPM(FS-PER)) на моем сайте planksap.pro


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Добавление поля в BSEG
СообщениеДобавлено: Пн, июл 11 2011, 16:10 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, янв 18 2010, 16:18
Сообщения: 57
При этом номер документа стал 6ти значным уже...
Например:

SELECT BELNR DMBTR ZUONR INTO (HelpBELNR, HelpDMBTR, HelpZUONR)
FROM BSIS
WHERE BUKRS = ZVM_PFM_FSFERA-BUKRS
AND ( HKONT like '51%' OR HKONT like '52%' OR HKONT like '50%' OR HKONT like '55%')
AND GJAHR = h_GJAHR_BUDGET
AND ABPER between In_MONTH_START and In_MONTH_END
AND FISTL = In_FISTL
AND FIPOS = In_FIPEX
AND BSCHL = '50'.

*проверка, прошел ли документ через "одно окно'
SHIFT HelpZUONR LEFT DELETING LEADING SPACE.
HelpZUONR_5 = HelpZUONR(5).
SHIFT HelpZUONR_5 RIGHT DELETING TRAILING SPACE.
IF HelpZUONR_5 CO '0123456789'
AND HelpZUONR_5 between '10000' and '99999'.
CONTINUE.
ENDIF.


а я бы потом написала

SELECT BELNR DMBTR INTO (HelpBELNR, HelpDMBTR)
FROM BSIS
WHERE BUKRS = ZVM_PFM_FSFERA-BUKRS
AND ( HKONT like '5%' )
AND GJAHR = h_GJAHR_BUDGET
AND ABPER between In_MONTH_START and In_MONTH_END
AND FISTL = In_FISTL
AND FIPOS = In_FIPEX
AND XREF4 = 0. "Поиск проводок без id


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Добавление поля в BSEG
СообщениеДобавлено: Пн, июл 11 2011, 16:43 
Ассистент
Ассистент

Зарегистрирован:
Ср, апр 15 2009, 11:39
Сообщения: 26
Откуда: Москва
Пол: Женский
Вам знакома транзакция ST05 и слова план запроса. По какому индексу идет выборка? Включены ли поля в этот индекс?
Обычно данные выбирают bkpf+bsis и стараются использовать дату проводки (bkpf-budat)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Добавление поля в BSEG
СообщениеДобавлено: Пн, июл 11 2011, 16:52 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Ср, фев 01 2006, 16:49
Сообщения: 1967
Откуда: Питерский Москвич
Пол: Мужской
Что-то мне подсказывает, что выборка с использованием "такого индекса" не будет намного эффективнее существующей выборки.
Как я понимаю вы функцию отбрасывания значений "between '10000' and '99999'" в конструкции select / endselect хотите переложить на БД, вставив дополнительное условие "AND XREF4 = 0". Но объем данных выбираемых по ключу останется тем же, просто запись будет отбрасываться по-другому.
В данной ситуации нужно (ИМХО) вводить признак, прошел ли документ через "одно окно" или нет и включать его в индекс (объем данных сразу уменьшается) вместе с другими полями. Последовательность полей в условии select должна быть как в индексе. Считываете все данные во внутреннюю таблицу и потом выкидываете лишнее.

ЗЫ.
Лучше перенаправить этот вопрос в форум по ABAP, там вернее скажут.

_________________
Материалы по S/4HANA (установка и активация компонентов, FIORI, ACR, CIT, PaPM(FS-PER)) на моем сайте planksap.pro


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Добавление поля в BSEG
СообщениеДобавлено: Пн, июл 11 2011, 17:03 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, янв 18 2010, 16:18
Сообщения: 57
Вопрос к модератору - как можно переместить тему в форум ABAP?


Последний раз редактировалось darkduck Пн, июл 11 2011, 17:19, всего редактировалось 1 раз.
сделано по просьбам трудящихся


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Добавление поля в BSEG
СообщениеДобавлено: Пн, июл 11 2011, 17:08 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, янв 18 2010, 16:18
Сообщения: 57
Индексы по вышеперечисленным полям есть.
Единственно они отдельные. Может есть смысл перестроить в один?
И еще вопрос: правда ли что индекс по int4 будет работать быстрее чем char?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Добавление поля в BSEG
СообщениеДобавлено: Пн, июл 11 2011, 17:18 
Ассистент
Ассистент

Зарегистрирован:
Ср, апр 15 2009, 11:39
Сообщения: 26
Откуда: Москва
Пол: Женский
Если индекс есть и все поля указаны - это еще не значит, что программа пойдет именно по-нему. Для того, чтобы точно знать и есть st05.

А вообще это ужас, вы спокойно модифицировали стандарт.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу 1, 2  След.

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


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

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


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

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