Текущее время: Вс, июл 20 2025, 00:58

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


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

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


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

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