Текущее время: Пн, авг 04 2025, 03:26

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




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: тех. имя Поля?
СообщениеДобавлено: Вт, июл 31 2012, 13:37 
Специалист
Специалист

Зарегистрирован:
Пн, май 21 2012, 16:14
Сообщения: 106
В DSO есть Атрибуты навигации с тех именем 0ASSET__ZCONT.
есть ключевое поле zcont.
ABAP-ом делаю Select из DSO какое поле указывать при условии? если нужно наложить условие на 0ASSET__ZCONT.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: тех. имя Поля?
СообщениеДобавлено: Вт, июл 31 2012, 16:02 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, ноя 26 2010, 20:07
Сообщения: 240
Пол: Мужской
Добрый день, в случае если Вы считываете данные из DSO с помощью ФМ с техническим именем "RSDRI_INFOPROV_READ" ограничить итоговую выборку атрибутом навигации можно используя параметр G_S_RANGE. Пример посмотрите здесь.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: тех. имя Поля?
СообщениеДобавлено: Вт, июл 31 2012, 16:46 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, ноя 26 2010, 20:07
Сообщения: 240
Пол: Мужской
В случае если вы работаете непосредственно с таблицами, а не с объектом DSO (чего лично не рекомендую), то просто делаете Select из таблицы DSO активных данных и inner join с таблицей основных данных атрибута навигации, в условии where указываете необходимое ограничение атрибута навигации. Примерно так...


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: тех. имя Поля?
СообщениеДобавлено: Вт, июл 31 2012, 16:49 
Специалист
Специалист

Зарегистрирован:
Пн, май 21 2012, 16:14
Сообщения: 106
AlexanderGamov написал:
Добрый день, в случае если Вы считываете данные из DSO с помощью ФМ с техническим именем "RSDRI_INFOPROV_READ" ограничить итоговую выборку атрибутом навигации можно используя параметр G_S_RANGE. Пример посмотрите здесь.


Мне нужно следующие:

SELECT SINGLE *
FROM /BIC/AZFI4000
INTO CORRESPONDING FIELDS OF ZFI40
WHERE /BIC/ZCONT = '40001'.

В DSO по ZCONT нет данных но зато есть в 0ASSET__ZCONT
как в таком случаи обработать where?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: тех. имя Поля?
СообщениеДобавлено: Ср, авг 01 2012, 09:37 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, ноя 26 2010, 20:07
Сообщения: 240
Пол: Мужской
Все -таки настоятельно рекомендую использовать ФМ "RSDRI_INFOPROV_READ", он наиболее точно/просто решает Вашу проблему.
В случае если все-таки Вы делаете select, то необходимо сделать примерно следующее:

Code:
SELECT SINGLE *
FROM /BIC/AZFI4000
INNER JOIN XXXX ON /BIC/AZFI4000~YYYY =XXXX~YYYY
INTO CORRESPONDING FIELDS OF ZFI40
WHERE XXXX~ZCONT = '40001'.

Где XXXX- имя таблицы основных данных инфообъекта, который содержит в качестве атрибута признак "ZCONT",
YYYY - имя поля, таблицы основных данных инфообъекта, который содержит в качестве атрибута признак "ZCONT".
Синтаксис не проверял, но идея такая...


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: тех. имя Поля?
СообщениеДобавлено: Чт, авг 02 2012, 11:30 
Специалист
Специалист

Зарегистрирован:
Пн, май 21 2012, 16:14
Сообщения: 106
AlexanderGamov написал:
Все -таки настоятельно рекомендую использовать ФМ "RSDRI_INFOPROV_READ", он наиболее точно/просто решает Вашу проблему.
В случае если все-таки Вы делаете select, то необходимо сделать примерно следующее:

Code:
SELECT SINGLE *
FROM /BIC/AZFI4000
INNER JOIN XXXX ON /BIC/AZFI4000~YYYY =XXXX~YYYY
INTO CORRESPONDING FIELDS OF ZFI40
WHERE XXXX~ZCONT = '40001'.

Где XXXX- имя таблицы основных данных инфообъекта, который содержит в качестве атрибута признак "ZCONT",
YYYY - имя поля, таблицы основных данных инфообъекта, который содержит в качестве атрибута признак "ZCONT".
Синтаксис не проверял, но идея такая...



Делаю вот так:
Code:
SELECT SINGLE  *
                    FROM /BIC/AZFI4000 INNER JOIN /BI0/PASSET ON /BI0/PASSET~/BIC/ZCONT = /BIC/AZFI4000~/BIC/ZCONT
                    INTO CORRESPONDING FIELDS OF ZFI40
                    WHERE /BI0/PASSET~/BIC/ZCONT =  '40001'.


Не получается. sy-subrc =4

Делаю вот так:
Code:
SELECT SINGLE  *
                    FROM /BIC/AZFI4000 INNER JOIN /BI0/PASSET ON /BI0/PASSET~/BIC/ZCONT = /BIC/AZFI4000~/BIC/ZCONT
                    INTO CORRESPONDING FIELDS OF ZFI40
                    WHERE /BIC/AZFI4000~GL_ACCOUNT =  '1111'.


селект выполняется но, ZFI40-/BIC/ZCONT не заполнен!

Что я не так делаю?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: тех. имя Поля?
СообщениеДобавлено: Чт, авг 02 2012, 12:34 
Специалист
Специалист

Зарегистрирован:
Пн, май 21 2012, 16:14
Сообщения: 106
С RSDRI_INFOPROV_READ не получается разобраться.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: тех. имя Поля?  Тема решена
СообщениеДобавлено: Чт, авг 02 2012, 14:56 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, ноя 26 2010, 20:07
Сообщения: 240
Пол: Мужской
Цитата:
Code:
SELECT SINGLE  *
                    FROM /BIC/AZFI4000 INNER JOIN /BI0/PASSET ON /BI0/PASSET~/BIC/ZCONT = /BIC/AZFI4000~/BIC/ZCONT
                    INTO CORRESPONDING FIELDS OF ZFI40
                    WHERE /BI0/PASSET~/BIC/ZCONT =  '40001'.


В условии соединения таблиц указываете поле из таблицы для ДСО, для которого ZCONT является атрибутом, и поле таблицы инфо-обекта, для которого
ZCONT так же является атрибутом.
JOIN /BI0/PASSET ON /BI0/PASSET~/BIC/ZXX = /BIC/AZFI4000~/BIC/ZXX


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: тех. имя Поля?
СообщениеДобавлено: Пн, дек 03 2012, 15:06 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, июн 02 2009, 22:28
Сообщения: 228
Откуда: MOW
Пол: Мужской
vpechatlenie написал(а):
Делаю вот так:
Code:
SELECT SINGLE  *
                    FROM /BIC/AZFI4000 INNER JOIN /BI0/PASSET ON /BI0/PASSET~/BIC/ZCONT = /BIC/AZFI4000~/BIC/ZCONT
                    INTO CORRESPONDING FIELDS OF ZFI40
                    WHERE /BIC/AZFI4000~GL_ACCOUNT =  '1111'.


селект выполняется но, ZFI40-/BIC/ZCONT не заполнен!

Что я не так делаю?


Указывайте поля явно, а не звездочкой

Что-то вроде:
Code:
SELECT SINGLE  /bi0/passet~/BIC/ZCONT <остальные поля не знаю какие>
                    FROM /BIC/AZFI4000 INNER JOIN /BI0/PASSET ON /BI0/PASSET~/BIC/ZCONT = /BIC/AZFI4000~/BIC/ZCONT
                    INTO CORRESPONDING FIELDS OF ZFI40
                    WHERE /BIC/AZFI4000~GL_ACCOUNT =  '1111'.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

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


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

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


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

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