Текущее время: Вт, июл 29 2025, 17:51

Часовой пояс: 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 часа


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

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


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

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