für ein Projekt habe ich einen ODATA-Service gebaut, welcher in der Lage sein soll Daten in dynamischen Strukturen über Angabe einer ID zurückzuliefern.
Beispiel: Ich gebe als ID den Tabellennamen "MATSTA" an, dann soll in der DEFINE_BEISPIELENTITY-Methode der MPC_EXT-Klasse das entsprechende Datenmodell aufgebaut werden und die Daten der Tabelle über die GET_ENTITYSET-Methode zurückgegeben werden.
Die Logik zum dynamischen Aufbau der Entität habe ich auch schon implementiert und getestet, das Ganze funktioniert einwandfrei. Ich habe das Ganze so gelöst, dass über RTTS-Funktionen bzw. Methoden zur angegebenen Tabelle die Datenelemente etc. ausgelesen werden und anschließend als Entität zusammengebaut werden.
Problem ist aktuell bloß, dass ich im aktuellen Zustand den Tabellenname zum Testen statisch in den Programmcode eingepflegt habe. Dieser soll ja aber dynamisch je nachdem welchen Wert ich für den Schlüssel angebe an die RTTS-Methode übergeben werden.
Ich weiß, dass die Schlüsselfelder und deren Werte in der Tabelle IT_KEY_TAB übergeben sind (bspw. beim Aufruf der GET_ENTITY-Methode). Gibt es eine Möglichkeit, wie ich in der DEFINE_BEISPIELENTITY-Methode auf diese Tabelle zugreifen kann?
Andere Idee, die ich schon hatte war nachdem ich in der GET_ENTITYSET-Methode die IT_KEY_TAB ausgelesen habe die komplette Erzeugung der Entität nochmal durchzuführen, also innerhalb der GET_ENTITYSET-Methode vor Selektion der Daten die DEFINE_BEISPIELENTITY-Methode aufrufen und danach die Daten selektieren, was ja aber auch nicht geht, da die DEFINE_BEISPIELENTITY-Methode eine Instanzmethode der Klasse ZCL_ZGWP_..._MPC_EXT ist