Текущее время: Сб, авг 02 2025, 01:33

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Как обратиться к данным считанным из логической БД в вызываемом ФМ?
СообщениеДобавлено: Пн, июн 23 2008, 12:02 
Специалист
Специалист

Зарегистрирован:
Пн, янв 14 2008, 10:33
Сообщения: 163
Подскажите пожалуйста кто знает,

Как получить данные считанные программой из ЛБД внутри вызываемых ФМ-ов?
Есть ли способ это сделать не передавая данные в параметрах?

Цель: Хочется перекрывать HR_READ_INFOTYPE/SUBTYPE там где данные из ИТ уже загружены.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как обратиться к данным считанным из логической БД в вызываемом ФМ?
СообщениеДобавлено: Пн, июн 23 2008, 12:13 
Гуру-эксперт
Гуру-эксперт

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

Цель: Хочется перекрывать HR_READ_INFOTYPE/SUBTYPE там где данные из ИТ уже загружены.

Поясните что, где и зачем вы хотите перекрывать?

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июн 23 2008, 12:27 
Специалист
Специалист

Зарегистрирован:
Пн, янв 14 2008, 10:33
Сообщения: 163
отчет:
....
Code:
TABLES:
  pernr.
INFOTYPES:
  0001.
....
GET pernr.
....
CALL FUNCTION 'ZZ_GET_PERSON_ЧТО_ТО'
    EXPORTING
      ic_pernr  =
      id_begda  =
      id_endda  =
....

ФМ ZZ_GET_PERSON_ЧТО_ТО работает с информацией из ИТ и используется как в отчетах с ЛБД (см.выше), так и в отчетах НЕ использующих ЛБД.

Что бы ФМ отработал корректно он должен либо:
- принимать данные (таблицы ИТ) из отчета.
- считать данные используя HR_READ_INFOTYPE/SUBTYPE.

Вопрос: Есть ли способ в ZZ_GET_PERSON_ЧТО_ТО достучаться до 0001 (и остальных объявленных ИТ) ?


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

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
b_e_s написал(а):
отчет:
Code:
....
TABLES:
  pernr.
INFOTYPES:
  0001.
....
GET pernr.
....
CALL FUNCTION 'ZZ_GET_PERSON_ЧТО_ТО'
    EXPORTING
      ic_pernr  =
      id_begda  =
      id_endda  =
....

ФМ ZZ_GET_PERSON_ЧТО_ТО работает с информацией из ИТ и используется как в отчетах с ЛБД (см.выше), так и в отчетах НЕ использующих ЛБД.

Что бы ФМ отработал корректно он должен либо:
- принимать данные (таблицы ИТ) из отчета.
- считать данные используя HR_READ_INFOTYPE/SUBTYPE.

Вопрос: Есть ли способ в ZZ_GET_PERSON_ЧТО_ТО достучаться до 0001 (и остальных объявленных ИТ) ?


1) Assign.
2) Отказаться от изпользования ФМ, делать через perform, вынесенный в инклюд.

Но чем не нравиться HR_READ_INFOTYPE? Насколько помню, данные там неплохо буферизованы и не обязательно будет повторое обращение к БД. И ФМ получиться более универсальным и не привязанным к отчётам с LBD

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июн 23 2008, 13:12 
Специалист
Специалист

Зарегистрирован:
Пн, янв 14 2008, 10:33
Сообщения: 163
sy-uname написал(а):
Но чем не нравиться HR_READ_INFOTYPE? Насколько помню, данные там неплохо буферизованы и не обязательно будет повторое обращение к БД. И ФМ получиться более универсальным и не привязанным к отчётам с LBD


.. может кашно и где-то кешируется, но разве что на уровне серверной БД, ибо из ФМ в HR_READ_INFOTYPE провалился везде где было возможно =) и в БД SELECT и во внутрь IF authc_disabled = space.
.. вобщем мало не показалось, после чего собственно вопросик и возник.

А отказываться от ФМ-ов с HR_READ_INFOTYPE или переписывать их в формы / макросы я не планировал. Есть желание узнать можно ли это оптимизировать как-то.


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

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
b_e_s написал(а):
...
.. может кашно и где-то кешируется, но разве что на уровне серверной БД, ибо из ФМ в HR_READ_INFOTYPE провалился везде где было возможно =) и в БД SELECT и во внутрь IF authc_disabled = space.
.. вобщем мало не показалось, после чего собственно вопросик и возник.
...
В версии ERP2005 в ФМ HR_READ_INFOTYPE начиная с 103 строки, сопровождается соответствующими комментариями.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июн 23 2008, 13:48 
Специалист
Специалист

Зарегистрирован:
Пн, янв 14 2008, 10:33
Сообщения: 163
.. этот буфер не лбд-шный. он кеширует вызовы HR_READ_INFOTYPE.

PERFORM read_it_from_db (и БД SELECT) - первый раз вызывается всегда, даже если отчет использует ЛБД (соответственно и права проверяет).
Только при повторном вызове HR_READ_INFOTYPE уже смотрит кеш.
Как я понял это с ЛБД не связано.


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

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
b_e_s написал(а):
.. этот буфер не лбд-шный. он кеширует вызовы HR_READ_INFOTYPE.

PERFORM read_it_from_db (и БД SELECT) - первый раз вызывается всегда, даже если отчет использует ЛБД (соответственно и права проверяет).
Только при повторном вызове HR_READ_INFOTYPE уже смотрит кеш.
Как я понял это с ЛБД не связано.
Тогда может имеет смысл не пользоваться услугами ЛБД по заполнению инфотипов, а в get pernr использовать HR_READ_INFOTYPE?

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июн 23 2008, 15:15 
Специалист
Специалист

Зарегистрирован:
Пн, янв 14 2008, 10:33
Сообщения: 163
.. HR_READ_INFOTYPE вместо ЛБД - это отдельная тема.
.. может оно имеет смысл в отдельных случаях отказаться от ЛБД, но ни как не ради подобной оптимизации.

.. значит пока вижу единственное решение - передавать в ФМ содержимое ИТ-ов в виде необязательных параметров и проверять, если не передано, то делать HR_READ_INFOTYPE.


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

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
b_e_s написал(а):
.. HR_READ_INFOTYPE вместо ЛБД - это отдельная тема.
.. может оно имеет смысл в отдельных случаях отказаться от ЛБД, но ни как не ради подобной оптимизации.
...
Я не презывал отказаться от использования ЛБД, я только предлжил не пользоваться услугами по заполнению инфтипов. Т.е. не использовать объявления Infotypes: А выбор табельных попрежднему пусть будет через ЛБД. Или речь идёт о оперативном запросе и т.п.?

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июн 23 2008, 16:37 
Специалист
Специалист

Зарегистрирован:
Пн, янв 14 2008, 10:33
Сообщения: 163
Нет, только в программках используется.


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

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


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

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


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

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