Mehrere Address Controller in einer Anwendung
Es ist problemlos möglich, mehrere Address Controller in derselben Anwendung zu haben. So könnten beispielsweise die Geschäftspartnerstammdaten einen Address Controller für die Adressenübersicht im Detail-Controller haben und einen weiteren zur Pflege der adressenunabhängigen Kommunikationsdaten.
Es können mehrere Address Controller eingesetzt werden. Sie als Entwickler der Anwendung müssen dabei nur auf diese drei Dinge achten:
Wenn sich die einzelnen Address Controller auf derselben Ebene befinden (z.B. beide ODC1), dann genügt der übergeordnete Objektschlüssel nicht zur Unterscheidung zwischen beiden; daher kann es Probleme geben, wenn die Anwendung versucht, mit der Mathode GET_ADDRESS_KEY den Adressschlüssel zu ermitteln. Daher muss die im Layout des zweiten Controllers verwendete Bildstruktur nicht CRMT_BSP_ADDRESS, sondern CRMT_BSP_ADDRESS_2 sein. Ebenso müssen die im Layout verwendete Feldgruppe und die Symbolleistengruppe ADR_DETAIL_2 sein.
Da die Methode GET_ADDRESS_KEY auch die Bildstruktur liefert, kann die Anwendung so den Adressenschlüssel für den aktuellen Controller korrekt ermitteln.
Für die unterschiedlichen Controller muss die Methode GET_ACCESS_KEY der Klasse CL_BSP_APPLICATION_ADDRESS unterschiedliche Werte im Feld EV_CONTEXT zurückliefern.
Für jeden Wert von EV_CONTEXT muss ein eigener Eintrag in den Blueprint-Tabellen unter 'Navigation für Anwendungsprotokoll' gepflegt werden. Jeder Eintrag muss auf den Controller zeigen, der dem entsprechenden Wert von EV_CONTEXT entspricht.
Dieselbe Methode funktioniert auch mit drei oder mehr Controllern in derselben Anwendung. In diesem Fall müssen weitere Dummy-Strukturen wie CRMT_BSP_ADDRESS_2 angelegt werden.