Sapforum.Biz

Разное на поговорить => Я вам скажу за SAP и не только... => Тема начата: Uukrul от Июнь 22, 2009, 01:49:49 am

Название: О коде и java-индусах...
Отправлено: Uukrul от Июнь 22, 2009, 01:49:49 am
В общем тут на неделе разгребал один вопросик, наткнулся на интересную связку таблиц, ну и еще получил одно подтверждение, что таки SAP пишут уволенные java-индусы, которые о товарище Дейте и его книге по базам данных не то что не слышали, но даже не догадываются о том что она существует и все уже придумано до них.

Дейта можно найти тут, если кому интересно: http://freebooks.net.ua/5175-vvedenie-v-sistemy-baz-dannykh.html

PS: Кстати, если кто-то сможет меня переубедить в обратном и объяснить глубокую мысль зачем так было сделано, сниму шляпу.

А теперь о том что озадачило. В общем есть такая вещь как единица упаковки, ну например в исходящей поставке, как в примере на рисунке EO-1.png. Таблица, где хранится единица обработки VEKP, ключ у единицы обработки VEKP-VENUM, как обычно длина 10 символов, ну любит SAP такие ключи, а дальше как обычно VEKP-EXIDV - Внешний ид. единицы обработки, собственно говоря, на экране мы его и видим как 511005670000009349, а вот дальше начинается интересное, в это таблице есть такое поле как VEKP-HANDLE - Уникальный ключ для VEKP-VENUM, тип у него GUID_VEKP, ага именно типа GUID, очень любимый java-программистами, зачем он используется, ну мало ли... может надо, однако для чего оно оказалось надо?! А вот для чего. Единица обработки имеет свою историю, рисунок EO-2.png. История эта хранится в отдельной таблице VEVW - Ведомость использования для единиц обработки, так вот ключ для идентификации единицы обработки, ну по логике должен был быть наверное VEVW-VENUM, ага щазззз, нет в этой таблице ключ у нас ага тот самый GUID, VEVW-HANDLE типа GUID_VEKP, по которому и ищем историю к единице обработки... какого надо было включать в первичный ключ именно этот GUID (22 байта, наверное хотели оракловый построитель индексов озадачить ::) ), я не знаю... чем им не понравился VEKP-VENUM?!

Хотя в этой таблице и дальше не все так просто, вот к примеру последнее поле VEVW-DIRECTION, если посмотреть описание то там стоит: "Направление (1 = выход, 2 = вход) (Direction (1=outbound, 2=inbound))", ну вроде как ясно, что значение может быть или 1 или 2, ага щаз, вот для этой единицы обработки там для документа поставки стоит 0, рисунок EO-3.png. Короче, таки действительно как там в анекдоте на уроке математики в грузинской школе:
- Гоги сколько будет 2 * 2?
- Я думаю 8!
- Нет Гоги садЫсь 2! Будет где-то 5 или 7, но никак не 8!

Так и тут может быть 1 или 2, ну а если очень нужно то 0, а так же другие цифры, хорошо хоть набор тут ограничен типом NUMC, т.е. от 0 до 9  ;), а ведь могли типа CHAR  сделать.
Название: Re: О коде и java-индусах...
Отправлено: DofD от Июнь 26, 2009, 01:31:11 pm
Еще есть момент что если смотреть через SE11 то значение NULL и " " выглядит одинаково. Один раз чуть голову не сломал почему при селекте нет данных а при просмотре таблици есть.
Название: Re: О коде и java-индусах...
Отправлено: Uukrul от Июнь 26, 2009, 03:53:07 pm
You are not allowed to view links. Register or Login
Еще есть момент что если смотреть через SE11 то значение NULL и " " выглядит одинаково. Один раз чуть голову не сломал почему при селекте нет данных а при просмотре таблици есть.
Ну это классика вообще в базах данных... хотя в SAP иногда помогает проверка на SPACE.
Название: Re: О коде и java-индусах...
Отправлено: DofD от Июнь 29, 2009, 08:29:41 am
класика то класика, но при прямом просмотре БД там и стоит значение NULL, а не как тут чистое поле  :)
Название: Re: О коде и java-индусах...
Отправлено: Паганель от Июнь 29, 2009, 10:03:28 am
You are not allowed to view links. Register or Login
класика то класика, но при прямом просмотре БД там и стоит значение NULL, а не как тут чистое поле  :)
Радуйся что там еще не стоит "N U L L" или "empty"  (N U L L с проблелами,просто строковые значения )  ;)
Название: Re: О коде и java-индусах...
Отправлено: NachDenken от Июнь 30, 2009, 09:03:08 am
а вообще разве есть null значения ?
мне кажется есть initial значения каждого типа поля в табличках,
ну есть конечно в поле char4 не написать насильно 'NULL' ;D
Название: Re: О коде и java-индусах...
Отправлено: Uukrul от Июнь 30, 2009, 09:39:54 am
You are not allowed to view links. Register or Login
а вообще разве есть null значения ?
Ну если исходить из баз данных, то таки есть такое значение...
Название: Re: О коде и java-индусах...
Отправлено: Паганель от Июль 01, 2009, 03:36:06 pm
Про индусский код
http://lurkmore.ru/Индусский_код (http://lurkmore.ru/Индусский_код)
Название: Re: О коде и java-индусах...
Отправлено: Uukrul от Июль 01, 2009, 03:48:04 pm
You are not allowed to view links. Register or Login
Про индусский код
http://lurkmore.ru/Индусский_код (http://lurkmore.ru/Индусский_код)
Да уж... про китайский код не знал, но судя по открытию центра разработки в Шанхае, придется и его осваивать  ;)