外键:查表有没有带域的键域

gra*_*m77 1 abap sap-data-dictionary

我有两个表:ZDEPARTMENT01和ZEMPLOY01。

ZDEPARTMENT01有一个外键DEPHEAD,其数据元素是ZPERSONNEL_NO域ZPERSONNEL_NO(NUMC, 10)。ZEMPLOY01有一个主键EMP_NUM,其数据元素是ZEMP_NUM域ZEMP_NUM(NUMC, 10)。

ZDEPARTMENT01-DEPHEAD是外键,ZEMPLOY01-EMP_NUM是检查键, ZDEPARTMENT01-DEPHEAD域ZPERSONNEL_NO有值表:ZEMPLOY01。

在为ZDEPARTMENT01-DEPHEAD我设置检查表时出现错误检查表 ZEMPLOY01 没有键字段,域 ZPERSONNEL_NO 的域为 DEPHEAD

即使两个域具有相同的数据类型和长度(但域不同),系统也无法识别外键表和检查表关系。

文档说:系统尝试将检查表的关键字段分配给具有相同域的表的字段。是不是除了数据类型和长度外,外键表和校验表的域名应该是一样的?

如何解决这个问题?

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

小智 5

是的,就是这个意思。您有两个数据元素:ZEMP_NUM和ZPERSONNEL_NO。如果您双击这些,在您的表格中,您将导航到数据元素定义。在那里您将看到分配给每个的域。这些应该是相同的,所以让它们相同。

可以这样想: 域为可以出现在多个位置的数据提供结构一致性。您不会拥有在某些地方为 10 位数字而在其他地方为 8 位数字的员工 ID,否则会导致 10 位数字记录被截断。同样,如果您的数字用完并且需要将您的员工 ID 扩展到 11 位数字,您需要确保它在每个使用它的表中的任何地方都进行了更改。域可让您执行此操作。域还允许您配置默认查找关系(值表)或可以选择的固定值(例如员工表)。

数据元素提供上下文相关性。您会注意到,除了提供数据元素的域之外,您还可以定义字段标签和标题,并且可以分配自定义搜索帮助。这些允许您以与当前活动相关的方式向用户显示该字段。在这种情况下,您可以将员工标记为“部门负责人”,因为将一个字段用于保存部门负责人的 ID 并将其仅显示为“员工”会造成混淆。您还可以添加一个搜索帮助,将员工列表限制为仅标记为“经理”的人。