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

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


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

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


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

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