Dies ist, wie meine zwei globale Klassen wie folgt aussehen:Zugang statische Methoden und Attribute der Freund Klasse in ABAP
CLASS zcl_singleton_class DEFINITION CREATE PRIVATE friends ZCL_FLINFO
PUBLIC SECTION.
CLASS-METHODS:
CLASS_CONSTRUCTOR,
get_instance
RETURNING VALUE(r_instance) TYPE REF TO zcl_singleton_class.
PRIVATE SECTION.
types:
TY_CONNECTION_LIST TYPE STANDARD TABLE OF SPFLI WITH KEY carrid connid.
class-data instance type ref to zcl_singleton_class .
class-data CONNECTION_LIST type TY_CONNECTION_LIST .
ENDCLASS.
CLASS zcl_singleton_class IMPLEMENTATION.
method CLASS_CONSTRUCTOR.
instance = instance.
SELECT * FROM SPFLI INTO TABLE CONNECTION_LIST.
endmethod.
METHOD get_instance.
r_instance = instance.
ENDMETHOD.
ENDCLASS.
CLASS ZCL_FLINFO DEFINITION.
PUBLIC SECTION.
CLASS-METHODS:
CLASS_CONSTRUCTOR,
get_connection
IMPORTING im_carrid type S_CARR_ID
RETURNING VALUE(re_connection) TYPE.
ENDCLASS.
CLASS ZCL_FLINFO IMPLEMENTATION.
METHOD get_connection.
LOOP at CONNECTION_LIST TRANSPORTING NO FIELDS WHERE carrid = im_carrid.
re_connection = re_connection + 1.
ENDLOOP.
ENDMETHOD.
ENDCLASS.
Wie kann ich die get_connection
Methode der ZCL_FLINFO
implementieren, so dass es durch die interne Tabelle iterieren CONNECTION_LIST
von zcl_singleton_class
, um die Anzahl der Verbindungen für die gegebene Fluggesellschaft zu zählen und sie im Parameter zurückzugeben?
Was haben Sie bisher versucht, welche Art von Problem haben Sie konfrontiert? Beachten Sie auch, dass es keine gute Idee ist, dass der Factory/Manager die tatsächlichen Daten enthält, anstatt sie in den verwalteten Instanzen zu kapseln. – vwegert
Freundschaft Prinzip ist eher eine schlechte Idee. – Jagger
Das habe ich ausprobiert: 'Methode GET_N_O_CONNECTIONS. DATA: CONNECTION_LIST TYPE TABELLE VON REF NACH ZCL_3609_SINGLETON. LOOP AT CONNECTION_LIST TRANSPORTIEREN KEINE FELDER, WO CARRID = IM_CARRID. RE_N_O_CONNECTIONS = RE_N_O_CONNECTIONS + 1. ENDLOOP. Endmethod.' und ich habe einen Fehler, der besagt, dass keine Komponente mit dem Namen CARRID existiert. – user2120167