0

Package インターフェイスについて学び、アクセスを使用しようとしています。

パッケージの2つの階層があります

1: ZAVG_TRAINING-PACKAGE1 を含む
...
ZAVG_TRNG_SUBPKG3



2: ZAVG_TRNGPKG_2_STRUCT_SUBPKG_1 を含む
ZAVG_TRAINING_PACKAGE2 を含む
ZAVG_TRNGPKG2_SUBKPG_1

最初の階層では、すべてのパッケージがメイン パッケージではありません。
2 番目の基本パッケージは構造パッケージ、次はメイン パッケージ、3 番目は非メイン パッケージです。

(ZAVG_TRNG_SUBPKG3最初の階層) には、 viewZAVG_V_MARAと programがありZAVG_DELETE_THIS_8ます。また、プログラムを公開するパッケージ インターフェイスもあり、使用アクセスは許可されていません。

私の問題は、パッケージZAVG_TRNGPKG2_SUBKPG_1に含まれるプログラムから、含まれている両方のオブジェクトにZAVG_TRNG_SUBPKG3制限なしでアクセスできることです。

ドキュメントから見る限り、開発オブジェクトが現在のパッケージの外部のパッケージ (外部パッケージを除く) から見えるようにするためです。それらをすべてパッケージ インターフェイスに追加し、そのインターフェイスの使用を許可する必要があるパッケージの使用アクセスも作成する必要があります。

私は何を間違っていますか?

4

2 に答える 2

1

パッケージを手動でチェックするには、ABAP ワークベンチのメニューから実行できます。

ここに画像の説明を入力

または、オブジェクト リストを右クリックします。

ここに画像の説明を入力

ただし、vwegert が言ったように、システムでパッケージ チェックがオンになっていない可能性が非常に高いです (オンになっている単一のシステムで作業したことはありません)。

于 2013-08-06T21:36:00.970 に答える
1

エンタープライズ コア コンポーネントのような複雑なものを構築する予定がなく、公開されたインターフェイスを変更した場合に訴訟を起こしそうな数百、数千の匿名の顧客に販売する予定がない限り、私は.パッケージのアクセス制御を気にしません。それがあなたの質問に答えていないことはわかっていますが、あなたがたどり着くのは多くの無駄な時間であり、何の利点もありません. 物事を機能させるには、パッケージ構造を非論理的で直感に反するように微調整する必要があります。

あなたの場合、うまくいかなかった可能性のあることがかなりあります。たとえば、システム全体のパッケージチェックスイッチがオフになっている可能性があります。次に、チェックは設計時にのみ行われ、プログラムの実行時には行われないことを覚えておく必要があります。最後に、私が覚えている限り、チェックは自動的には実行されません。手動で実行するか、自動化されたツールを使用して実行する必要があります。

于 2013-08-06T17:54:46.700 に答える