Текущее время: Ср, июл 30 2025, 06:12

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Вычисляемое поле (конкатенация)
СообщениеДобавлено: Чт, июл 03 2008, 15:35 
Ассистент
Ассистент

Зарегистрирован:
Пт, май 16 2008, 00:11
Сообщения: 33
Суть в том, что в таблице LFA1 (Основные записи поставщиков (общая часть)) имя хранится в виде 4х полей: NAME1,...NAME4.
Есть задача построить по этому имени средство поиска. Но в нем можно указать только поля, по которым производится поиск и нет возможности указать некую формулу. Как вариант написать "Пользовательское средство поиска (search help exit)". Но это не выход, т.к. позволяет использовать данное решение только в случае этого поиска. В идеале желательно в табличку добавить некое вычисляемое поле (NAME=NAME1+NAME2+NAME3+NAME4).
Как это можно сделать в SAP ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вычисляемое поле (конкатенация)
СообщениеДобавлено: Чт, июл 03 2008, 15:45 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Rovik написал(а):
Суть в том, что в таблице LFA1 (Основные записи поставщиков (общая часть)) имя хранится в виде 4х полей: NAME1,...NAME4.
Есть задача построить по этому имени средство поиска. Но в нем можно указать только поля, по которым производится поиск и нет возможности указать некую формулу. Как вариант написать "Пользовательское средство поиска (search help exit)". Но это не выход, т.к. позволяет использовать данное решение только в случае этого поиска. В идеале желательно в табличку добавить некое вычисляемое поле (NAME=NAME1+NAME2+NAME3+NAME4).
Как это можно сделать в SAP ?

BC427 Концепция расширения.

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вычисляемое поле (конкатенация)
СообщениеДобавлено: Чт, июл 03 2008, 15:46 
Гость
Rovik написал(а):
Суть в том, что в таблице LFA1 (Основные записи поставщиков (общая часть)) имя хранится в виде 4х полей: NAME1,...NAME4.
Есть задача построить по этому имени средство поиска. Но в нем можно указать только поля, по которым производится поиск и нет возможности указать некую формулу. Как вариант написать "Пользовательское средство поиска (search help exit)". Но это не выход, т.к. позволяет использовать данное решение только в случае этого поиска. В идеале желательно в табличку добавить некое вычисляемое поле (NAME=NAME1+NAME2+NAME3+NAME4).
Как это можно сделать в SAP ?



Можно попробовать сделать ракурс для таблицы LFA1
с дополнительным полем NAME=NAME1+NAME2+NAME3+NAME4.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения: Re: Вычисляемое поле (конкатенация)
СообщениеДобавлено: Чт, июл 03 2008, 15:47 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
Rovik написал(а):
Как вариант написать "Пользовательское средство поиска (search help exit)". Но это не выход, т.к. позволяет использовать данное решение только в случае этого поиска.


Почему же не вариант? Сделайте свое элементарное средство поиска и включите его в комплексное KRED.

_________________
Я слышу и забываю,
Я вижу и помню долго,
Я делаю и — понимаю.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вычисляемое поле (конкатенация)
СообщениеДобавлено: Чт, июл 03 2008, 15:58 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Изя Шниперсон написал(а):
...


Можно попробовать сделать ракурс для таблицы LFA1
с дополнительным полем NAME=NAME1+NAME2+NAME3+NAME4.

И как давно в ракурсах появились вычисляемые поля?

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вычисляемое поле (конкатенация)
СообщениеДобавлено: Чт, июл 03 2008, 16:01 
Гость
sy-uname написал(а):
Изя Шниперсон написал(а):
...


Можно попробовать сделать ракурс для таблицы LFA1
с дополнительным полем NAME=NAME1+NAME2+NAME3+NAME4.

И как давно в ракурсах появились вычисляемые поля?

сам не знаю, просто предложил как вариант.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июл 03 2008, 16:24 
Ассистент
Ассистент

Зарегистрирован:
Пт, май 16 2008, 00:11
Сообщения: 33
Кстати задача еще немного сложнее. Желательно чтобы это самое вычисляемое поле к тому же при поиске использовало приемущества поиска по индексу.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июл 03 2008, 17:14 
Ассистент
Ассистент

Зарегистрирован:
Пт, май 16 2008, 00:11
Сообщения: 33
Вот такая мысль. Сделать в БД в табличке новое вычисляемое поле. Затем указать SAPу чтобы он его подцепил и мог его использовать. По нему построить индекс. А далее все штатными средствами.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июл 03 2008, 18:16 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Rovik написал(а):
Вот такая мысль. Сделать в БД в табличке новое вычисляемое поле. Затем указать SAPу чтобы он его подцепил и мог его использовать..
В Вальдорф писать будете? Ноту выставите?
Цитата:
По нему построить индекс. А далее все штатными средствами.
Какими?

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июл 03 2008, 18:36 
Ассистент
Ассистент

Зарегистрирован:
Пт, май 16 2008, 00:11
Сообщения: 33
Заходим в ORACLE и пишем команды наподобие этих:
CREATE CALCULATED FIELD 'NAME1234' ON TABLE 'LFA1' (NAME1 + NAME2 + NAME3 + NAME4).
CREATE INDEX 'IDX_LFA1_NAME1234' ON 'NAME1234' FOR TABLE 'LFA1'.

Затем входим в SAP и каким-то образом указываем, что в таблице LFA1 есть поле NAME и физ. имя которого NAME1234. Затем открываем SE11(LFA1) и видим что в таблице теперь есть поле NAME. Ну а дале все как обычно. Только вот поле будет например только для чтения. SAP даже знать не будет что оно отличается от других. Будет толко указано, чтобы он не менял его в БД (пользовательский уровень констроля).

Наверняка где-то в SAP уже есть что-то аналогичное.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июл 03 2008, 18:47 
Ассистент
Ассистент

Зарегистрирован:
Пт, май 16 2008, 00:11
Сообщения: 33
Какая логика SAPа при добавлении штатными средствами нового поля ?
1) Выбрать для поля таблицы соответствующий тип данных для конкретной БД и его размерность.
2) Сгенерировать для этого поля имя (оно может отличаться от того, которое указывается в SAP).
3) Прописывает в своих внутренних таблицах соответствие логической информации (SAP) и физической (БД).
3) Выдает на БД команду для создания таблицы и индексов для нее.
4) ... вероятно что-то еще.

Т.е. это системный уровень SAP-контроля объектов БД.

Если указать, что некое поле является пользовательским (custom-уровень контроля), то SAPу будет достаточно только передать пункты 1-3 в ответственность пользователю (разработчику).

Вот собственно и все.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июл 03 2008, 18:54 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
"Заходим в Oracle", индексы по 4-м текстовым полям - я офигеваю, дорогая редакция... :shock: Есть поле LFA1-SORTL со стандартным индексом и search help. Пускай пользователи пишут туда что-нибудь разумное, чтобы помогло им быстрее найти этого поставщика.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июл 03 2008, 19:09 
Ассистент
Ассистент

Зарегистрирован:
Пт, май 16 2008, 00:11
Сообщения: 33
Jelena написала:
"Заходим в Oracle", индексы по 4-м текстовым полям - я офигеваю, дорогая редакция... :shock: Есть поле LFA1-SORTL со стандартным индексом и search help. Пускай пользователи пишут туда что-нибудь разумное, чтобы помогло им быстрее найти этого поставщика.


Думаю за ORACLE не стоит волноваться ? Поля то маленькие (35), а разницы 1 или 4 поля почти нет никакой. Не знаю можно ли в ORACLE сделать индекс по вычислимому полю, но в SQL Server 2005 знаю точно есть возможность.

Уже есть много поисков, где используется только одно поле, так что заменив в них NAME1 на NAME достигается почти идеальное решение проблемы.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июл 03 2008, 19:38 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Ср, ноя 01 2006, 22:58
Сообщения: 794
Откуда: Заарбрюкен
Пол: Мужской
Да не мучайте вы таблицы, сделайте Search-Help с User-Exit и ищите, чего хотите, и как хотите...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июл 03 2008, 20:37 
Ассистент
Ассистент

Зарегистрирован:
Пт, май 16 2008, 00:11
Сообщения: 33
Еще один вопрос в тему.
Как написать выборку подобную этой:

SELECT ...
INTO TABLE ...
FROM ...
WHERE NAME1+NAME2+NAME3+NAME4 LIKE '%чего-то там ...%'.

Т.е. можно ли как-то сделать фильтр на стороне БД, а не возвращать сначала все на клиента ?


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

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


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

Сейчас этот форум просматривают: Google Feedfetcher, Yandex [Bot]


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

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