SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

еще раз про bseg


Goto page 1, 2  Next
 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP
View previous topic :: View next topic  
Author Message
mike1
Модератор
Модератор



Joined: 22 Nov 2007
Posts: 82

PostPosted: Wed Jan 30, 2008 2:34 pm    Post subject: еще раз про bseg Reply with quote

Code:
data T_BSEG type table of BSEG.
......
select   * from  BSEG  into table T_BSEG
       where  BUKRS = BUKRS
       and    BELNR = BELNR
       and    GJAHR = GJAHR.

По моим наблюдениям таблица T_BSEG всегда отсортирована по первичному ключу. Можно ли считать этот факт аксиомой или бывают исключения?
ЗЫ абап 6.20
Back to top
View user's profile Send private message
John Doe
Модератор
Модератор


Age: 46
Joined: 05 Nov 2007
Posts: 725
Location: КраснАдар

PostPosted: Wed Jan 30, 2008 2:49 pm    Post subject: Reply with quote

В ECC 6.0 тоже отсортирована по ключу. Сейчас проверил.
Back to top
View user's profile Send private message Blog
vga
Мастер
Мастер


Age: 170
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Wed Jan 30, 2008 3:16 pm    Post subject: Reply with quote

ИМХО, если вставка нового года вставляет новый документ в нужную позицию таблицы, а не в конец, значит работает автоматическая сортировка по ключу на уровне базы. Поэтому если и будет нарушена последовательность buzei при insert, она автоматом изменится.

Last edited by vga on Wed Jan 30, 2008 3:18 pm; edited 1 time in total
Back to top
View user's profile Send private message Blog Visit poster's website
mike1
Модератор
Модератор



Joined: 22 Nov 2007
Posts: 82

PostPosted: Wed Jan 30, 2008 3:18 pm    Post subject: Reply with quote

Проверил по методу VGA, последовательность не изменилась, но в DEV нет документов в RFBLG более чем в 1 запись. вопрос то в том
можно ли "безнаказанно" использовать BINARY SEARCH.
Back to top
View user's profile Send private message
vga
Мастер
Мастер


Age: 170
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Wed Jan 30, 2008 3:20 pm    Post subject: Reply with quote

Mike1, я сначала не правильно понял твое сообщение. Ты имел ввиду порядок buzei. Подправил, но идея вроде как та же самая.
Если мое предположение верно, то BINARY SEARCH можно Wink
Back to top
View user's profile Send private message Blog Visit poster's website
mike1
Модератор
Модератор



Joined: 22 Nov 2007
Posts: 82

PostPosted: Wed Jan 30, 2008 3:24 pm    Post subject: Reply with quote

Тогда я про год не понял. Bseg - таблица кластера, разные года - разные записи в rfblg.
Back to top
View user's profile Send private message
Armann
Модератор
Модератор



Joined: 01 Jan 2008
Posts: 422
Location: Moscow

PostPosted: Wed Jan 30, 2008 3:34 pm    Post subject: Reply with quote

По моему Сап нигде не обещает такой порядок записей... кажется все таки лучше не рисковать, 1000 раз она будет отсортирована как ожидаете, а разок - немножко не так...
Back to top
View user's profile Send private message Blog
vga
Мастер
Мастер


Age: 170
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Wed Jan 30, 2008 3:38 pm    Post subject: Reply with quote

Посмотрел системе, интервал фин. докуменов по второму кругу еще не пошел, поэтому пишу теоретически.

Имел в виду вот что:

1000 0090000000 2004 0001
1000 0090000000 2004 0002

1000 0090000001 2004 0001
1000 0090000001 2004 0002

предположим интервал документов закончился в 2006
и добавляем снова
1000 0090000000 2006 0001
1000 0090000000 2006 0002

так вот должен добавить не в конец кластера, а расположить так:

1000 0090000000 2004 0001
1000 0090000000 2004 0002
1000 0090000000 2006 0001
1000 0090000000 2006 0002

1000 0090000001 2004 0001
1000 0090000001 2004 0002

то есть или на уровне базы записи расположились физически в нужном порядке, или же при fetch используется первичный ключ по умолчанию.

Это бы проверить надо.
Back to top
View user's profile Send private message Blog Visit poster's website
mike1
Модератор
Модератор



Joined: 22 Nov 2007
Posts: 82

PostPosted: Wed Jan 30, 2008 3:42 pm    Post subject: Reply with quote

2 Armann
так я тоже не нашел
2 vga
я говорю про чтение только одного документа, база данных тут не причем,
это скореее вопрос по распаковке упаковке кластера на уровне сап.
Back to top
View user's profile Send private message
vga
Мастер
Мастер


Age: 170
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Wed Jan 30, 2008 3:54 pm    Post subject: Reply with quote

mike1 wrote:
2 vga
я говорю про чтение только одного документа, база данных тут не причем,
это скореее вопрос по распаковке упаковке кластера на уровне сап.


Я так понял, что вопрос сводился к тому, какая последовательность при селекте будет, если при записи сначала сделали insert 2 позиции, а потом 1 ?

ИМХО, тут не важно, новый документ или новая позиция. В кластере это все равно новая запись. Пример с годом показателен, что новая запись вставляется в позицию, отсортированную по ключу, а не в конец кластера. Значит и селект вернет записи отсортированни по полному ключу, включая позиции, потому что они так расположены в кластере (или так работает "распаковка кластера на уровне сап."). Проверил в DEV.

Хотя, конечно, лучше не рисковать Wink
Back to top
View user's profile Send private message Blog Visit poster's website
dr.killer
Участник
Участник



Joined: 31 Oct 2007
Posts: 24
Location: 4.7, ECC 6.0

PostPosted: Wed Jan 30, 2008 3:55 pm    Post subject: Reply with quote

добавь сортировку внутренней таблицы и будешь уверен на 100% Very Happy
Back to top
View user's profile Send private message
vga
Мастер
Мастер


Age: 170
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Wed Jan 30, 2008 3:59 pm    Post subject: Reply with quote

dr.killer wrote:
добавь сортировку внутренней таблицы и будешь уверен на 100% Very Happy


Ну не Mike1 такие советы давать Smile
Back to top
View user's profile Send private message Blog Visit poster's website
mike1
Модератор
Модератор



Joined: 22 Nov 2007
Posts: 82

PostPosted: Wed Jan 30, 2008 4:18 pm    Post subject: Reply with quote

На недокументированные возможности закладываться не стал.
Объявил t_bseg cортированной таблицей, на копейки оказалось быстрее, чем использование оператора sort.

Зы а запрос к RFBLG идет с ORDER BY "MANDT" , "BUKRS" , "BELNR" , "GJAHR" , "PAGENO"
Back to top
View user's profile Send private message
vga
Мастер
Мастер


Age: 170
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Wed Jan 30, 2008 4:20 pm    Post subject: Reply with quote

mike1 wrote:

Зы а запрос к RFBLG идет с ORDER BY "MANDT" , "BUKRS" , "BELNR" , "GJAHR" , "PAGENO"


Вот где собака зарыта
Back to top
View user's profile Send private message Blog Visit poster's website
mike1
Модератор
Модератор



Joined: 22 Nov 2007
Posts: 82

PostPosted: Thu Jan 31, 2008 2:00 pm    Post subject: Reply with quote

В ходе поисков обнаружилось, что если для конкретного документа сначала считать bseg а потом bset se30 показывает 2 обращения к базе, а st05 только 1. Интересно а до 6.20 такая интеллектуальность была?
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.