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

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


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

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


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

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