Есть ли способ в общем искать отношения между (прозрачными) таблицами?

Я ищу способ перейти от таблицы A к таблице B через отношения внешнего ключа.

Скажем, например (и это просто разбавленный пример), я хотел бы знать, как связаны таблицы AFPO и VEKP.

Глядя на определения этих таблиц, я вижу, что они могут быть связаны следующим образом (не включая все детали):

AFPO~AUFNR = AUFK~AUFNR
AUFK~AUFNR = LIKP~TERNR
LIKP~TERNR = VEKO~VBELN
VEKO~VENUM = VEKP~VENUM

Конечно, может быть гораздо больше способов, которыми можно было бы осмысленно определить связь между этими двумя таблицами (например, включая только основные данные и транзакционные данные. Это должно исключить такие отношения, как MARA -> T000 -> SOOD).

Так кто-нибудь знает общий способ сделать это? Как отчет / транзакция / функциональный модуль ...?


person vlad-ardelean    schedule 18.08.2013    source источник


Ответы (2)


Есть функциональный модуль, который предоставляет вам всю информацию о таблице. Он называется "DDIF_TABL_GET".
Вы можете получить несколько таблиц со всеми настройками и атрибутами запрашиваемой вами таблицы. Например, вы можете получить таблицу DD05M, в которой есть несколько полей с названием «FORTABLE», которые дают вам имя таблицы полей внешнего ключа, и поле «FORKEY», которое содержит имя внешнего ключа запрошенной вами таблицы. Это то, что вы хотели?

person Christian Lendel    schedule 19.08.2013
comment
спасибо за ответ. Мне были известны все эти объекты разработки, и я собираюсь использовать их для создания собственной программы. Извините, если я пропустил некоторые детали в своих вопросах, то, что я искал, было способ установить связь между таблицами, которые не связаны в таблице DD05L, но связаны через серию таблиц, которые определены в DD05L как связанные . Ex AFPO - ›AUFK -› LIKP - ›VEKO -› VEKP. В любом случае, я почти закончил с этим. Я могу опубликовать код, если он работает нормально. - person vlad-ardelean; 19.08.2013

Я полагаю, что краткий ответ на этот вопрос: «Добро пожаловать в разработку ERP».

Если существует связь между двумя таблицами, их поля должны ссылаться на соответствующие поля в основных таблицах / таблицах заголовков через внешние ключи (проверьте таблицы в SAP). К сожалению, это не всегда происходит или не может происходить по семантическим причинам.

SAP предвидела это и предоставила словарь данных - одну из самых недооцененных сильных сторон среды разработки SAP. Повторно используемые элементы данных и домены предоставляют хороший способ увидеть семантические и синтаксические корреляции между данными.

Ссылка: Элемент данных, домен и способ их взаимодействия

Поэтому, если поле внешнего ключа не определено, следующий лучший вариант - выполнить поиск по месту использования элемента данных.

person Eric    schedule 21.08.2013
comment
Я уже реализовал что-то вроде того, о чем просил. Если внешние ключи или хотя бы контрольные таблицы не определены, я не могу ничего гарантировать с его помощью, но ему удается найти все возможные отношения, которые я знаю (а также некоторые более тупые решения). - person vlad-ardelean; 23.08.2013