Текущее время: Сб, июл 19 2025, 06:21

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Связи в иерархии ЛБД
СообщениеДобавлено: Пн, окт 06 2008, 15:39 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Чт, окт 02 2008, 08:55
Сообщения: 5
День добрый, ув. форумчане!

Если можете, поделитесь опытом работы с ЛБД...

как в ЛБД добавить в иерархию таблицу с указанием связей (foreign keys)? Конкретно, в ZADA (копия ADA) под ANLCV добавить PA0002 со связью по PERNR

_________________
Сильно не пинайте - я новенький :roll:
Думал, в сказку попал?? Нее, ты в жизнь вляпался...


Последний раз редактировалось LonelyWalker Ср, окт 08 2008, 10:13, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Связи в иерархии ЛБД
СообщениеДобавлено: Пн, окт 06 2008, 16:41 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
LonelyWalker написал(а):
Конкретно, в ZADA (копия ADA) под ANLCV добавить PA0002 со связью по TABNR

А вы уверены, что вам обязательно нужна новая ЛБД? Может быть в событии GET ANLCV в отчете просто читать второй инфотип?
Если вам все-таки нужна новая ЛБД, то придется добавить ручками новый узел в иерархию узлов вашей ЛБД в SE36, а потом написать считывание ИТ0002 в подпрограмме PUT_PA0002 и не забыть там в нужном месте поставить оператор PUT PA0002. По идее, после добавления узла, заготовка для подпрограммы PUT_PA0002 будет сгенерирована автоматом (но пустая - там будут только комментарии). Никакой внятной генерации кода по внешним ключам там не будет.
Все-таки нет у меня уверенности, что это правильный путь.

_________________
С уважением, Сергей Королев


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

Зарегистрирован:
Пн, авг 22 2005, 14:50
Сообщения: 1285
Откуда: с работы
Пол: Женский
лучше пользуйтесь просто адой, а pa0002 тащщите через ФМ hr_ что-то там infty_get (нет системы под рукой - см. курс HR350)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 08 2008, 10:45 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Чт, окт 02 2008, 08:55
Сообщения: 5
ладно, суть проблемы: надо в ЛБД ADA привязать к полю ANLAV-PERNR инфотип PA0002, чтобы в отчете можно было вытянуть фамилии... я вижу 2 пути:
    а) в самом инфонаборе смешать данные из ЛБД и таблицы PA0002 (вопрос как связать по полю PERNR и как сделать выборку всего этого??)
    б) в копии ADA добавить таблу PA0002 (как указать left join по PERNR?) и как потом в инфонаборе вывести колонки из разных веток иерархии?

Сергей Королев написал:
то придется добавить ручками новый узел в иерархию узлов вашей ЛБД в SE36, а потом написать считывание ИТ0002 в подпрограмме PUT_PA0002 и не забыть там в нужном месте поставить оператор PUT PA0002.

это то я сделал... и даже пробовал внутри FORM PUT_PA0002 прописывать select * from PA0002 where PERNR = ANLAV-PERNR
только безрезультатно. В том смысле, что в инфонаборе в полях PA0002-PERNR, фамилия и т.д. пусто! из классического SQL должно быть 2 типа ошибок: а) условий join'a нет, тогда это cross outer join и количество записей перемножается, либо б) join неверный (по неправильным полям), тогда записей не должно выводиться вообще...
но записей выводится сколько надо.

что я делаю не так и как надо правильно?

_________________
Сильно не пинайте - я новенький :roll:
Думал, в сказку попал?? Нее, ты в жизнь вляпался...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 08 2008, 10:49 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Чт, окт 02 2008, 08:55
Сообщения: 5
Galka написала:
лучше пользуйтесь просто адой, а pa0002 тащщите через ФМ hr_ что-то там infty_get (нет системы под рукой - см. курс HR350)
а можно поподробнее? буду вам весьма признателен за разъяснения (можно с кусочками кода)

_________________
Сильно не пинайте - я новенький :roll:
Думал, в сказку попал?? Нее, ты в жизнь вляпался...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 08 2008, 11:16 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пн, май 14 2007, 13:05
Сообщения: 561
Откуда: Москва
Code:
call function 'HR_RU_GET_PERNR_NAME'
      exporting
        i_pernr              = i_pernr
        i_begda              = pn-begda
        i_endda              = pn-endda
        i_langu              = sy-langu

      importing
        e_nachn              = p0002-nachn
        e_vorna              = p0002-vorna
        e_midnm              = p0002-midnm
        e_cname              = lc_name
      exceptions
        infty_0002_not_found = 1
        others               = 2.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 20 2008, 00:30 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Чт, окт 02 2008, 08:55
Сообщения: 5
И все-таки я не понимаю.... :( что за поля и где их взять (определить): i_pernr, lc_name

в отчет SAPDBZADA добавил инклуд, и уже там пишу:

Code:
FORM PUT_PA0002.
  TABLES: PA0002.

  call function 'HR_RU_GET_PERNR_NAME'
      exporting
        i_pernr              = i_pernr
        i_begda              = pa0002-begda
        i_endda              = pa0002-endda
        i_langu              = sy-langu

      importing
        e_nachn              = pa0002-nachn
        e_vorna              = pa0002-vorna
        e_midnm              = pa0002-midnm
        e_cname              = lc_name
      exceptions
        infty_0002_not_found = 1
        others               = 2.
  PUT PA0002.

ENDFORM.


понимаю, что тут далеко до правильного варианта, но начинающему без вашей помощи не обойтись... возможно, всё вообще не так надо делать (как???)
ну почему в сапе всё не как у людей???

_________________
Сильно не пинайте - я новенький :roll:
Думал, в сказку попал?? Нее, ты в жизнь вляпался...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 20 2008, 08:53 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пн, май 14 2007, 13:05
Сообщения: 561
Откуда: Москва
LonelyWalker написал(а):
И все-таки я не понимаю.... :( что за поля и где их взять (определить): i_pernr, lc_name
ну почему в сапе всё не как у людей???

Ну вот же Вы пишете
LonelyWalker написал(а):
Конкретно, в ZADA (копия ADA) под ANLCV добавить PA0002 со связью по PERNR

Подразумевается что в ADA в одной из таблиц и хранится данное поле.
По нему и связывайте.
На вход функ. модулю нужен только табельный номер i_pernr. lc_name - выходной параметр

p.s. нормально все в сапе :wink:


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

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


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

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


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

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