Да, внешний ключ объявленный в словаре данных не является настоящим ограничением ссылочной целостности, а влияет только на проверки пользовательского интерфейса.
Но хорошо хоть то, что ничто не мешает добавить ограничения на уровне БД самому - добавь сначала первичный или уникальный ключ в проверочную таблицу, а потом и сам внешний ключ, например:
Code:
alter table ZSPR add constraint PK_ZSPR PRIMARY KEY (MANDT,KEY1)
alter table ZTAB add constraint FK_ZTAB FOREIGN KEY (MANDT,FKEY) REFERENCES ZSPR(MANDT,KEY1)
Правда, в случае наружения ограничений будут вылетать дампы, но и это можно предусмотреть:
Code:
TABLES: ZTAB.
DATA: ex TYPE REF TO CX_SY_OPEN_SQL_DB.
...
TRY.
insert ZTAB.
CATCH CX_SY_OPEN_SQL_DB INTO ex.
* анализируем, если надо ex->SQLCODE.
ENDTRY.