DEMO_COMMON_ASSISTANCE1
Diese Demo-Anwendung zeigt anhand eines sehr einfachen Beispiels wie die Instanz einer Assistance-Klasse gemeinsam von zwei verschiedenen Components genutzt werden kann. Grundvoraussetzung dafür ist der Umstand, dass die Assistance-Klassen der beiden Components den gleichen Namen tragen.
Beide Demo-Components, DEMO_COMMON_ASSISTANCE1 und 2, greifen zunächst auf die Assistance-Klasse CL_WD_DEMO_COMM_ASSI zu.
Die Component DEMO_COMMON_ASSISTANCE1 verwendet DEMO_COMMON_ASSISTANCE2 als Unter-Component.
In der Methode WDDOINIT des
Component-Controllers von DEMO_COMMON_ASSISTANCE1 wird, wie in jedem anderen
Fall auch, die verwendete Component mit Hilfe der Methode l_ref_cmp_usage->create_component instanziiert.
Um sicherzustellen, dass beide Components auf dieselbe Instanz der
Assistance-Klasse zugreifen, muss als Wert für den Parameter ASSISTANCE_CLASS die
Referenz auf die aktuelle Instanz der Assistance-Klasse der Haupt-Component
übergeben werden.
Syntax
method WDDOINIT .
data: l_ref_cmp_usage type ref to if_wd_component_usage.
l_ref_cmp_usage = wd_this->wd_cpuse_sub_component( ).
if l_ref_cmp_usage->has_active_component( ) is initial.
l_ref_cmp_usage->create_component( ASSISTANCE_CLASS = wd_assist ).
endif.
endmethod.
Für die verwendete Component wird eine Instanz erzeugt und die bereits bestehende, zur Haupt-Component gehörende Instanz der Assistance-Klasse der Instanz der verwendeten Component zugeordnet. Wenn Sie an dieser Stelle statt der Referenzvariablen wd_assist den Namen der Assistance-Klasse übergeben hätten, wäre eine zweite, unabhängige Instanz der selben Klasse erzeugt worden.