0

我正在尝试了解包接口并使用访问权限。

我有 2 个包层次结构

1:ZAVG_TRAINING-PACKAGE1 包含
...
ZAVG_TRNG_SUBPKG3



2:ZAVG_TRNGPKG_2_STRUCT_SUBPKG_1 包含
ZAVG_TRAINING_PACKAGE2 包含
ZAVG_TRNGPKG2_SUBKPG_1

在第一个层次结构中,所有包都不是主包。
第二个,基础包是结构包,其次是主包,第三个是非主包。

ZAVG_TRNG_SUBPKG3(在第一个层次结构中),我有一个 viewZAVG_V_MARA和一个 program ZAVG_DELETE_THIS_8。我还有一个暴露程序的包接口,并且没有授予使用访问权限。

我的问题是,从包中包含的程序中,我可以不受限制ZAVG_TRNGPKG2_SUBKPG_1地访问其中包含的两个对象。ZAVG_TRNG_SUBPKG3

据我从文档中看到的,为了使开发对象从当前包之外的包中可见(外包除外)。我应该将它们全部添加到包接口,并为应该允许使用该接口的包创建使用访问权限。

我究竟做错了什么?

4

2 回答 2

1

只要您不打算构建像企业核心组件这样复杂的东西,并计划将其出售给成千上万的匿名客户,如果您更改已发布的界面,他们就会起诉您,我不会打扰包访问控制。我知道这不能回答你的问题,但你最终会浪费很多时间,而且没有任何优势。您必须以不合逻辑且非常违反直觉的方式调整包结构才能使事情正常进行。

在您的情况下,有很多事情可能出错 - 例如,系统范围的包检查开关可能已关闭。然后,您必须记住,检查只发生在设计时,而不是在运行程序时。最后,据我记得,检查不是自动执行的——你必须手动或使用一些自动化工具来执行它。

于 2013-08-06T17:54:46.700 回答
1

要手动检查包,您可以从 ABAP 工作台的菜单中进行:

在此处输入图像描述

或者通过右键单击对象列表:

在此处输入图像描述

但是,正如 vwegert 所说:很可能您的系统中没有打开包检查(我没有在打开它的单个系统上工作过)。

于 2013-08-06T21:36:00.970 回答