Je configure une méthode appel d'une classe et réception des erreurs suivantes: p> suis-ce que je manque quelque chose ? p> p>
3 Réponses :
Vous avez manqué de créer l'objet. Donc, vous devez: P>
ou p>
ou s'il existe une "méthode d'usine" (ce que votre méthode "Créer" indique) P>
Votre exception vous indique que la référence (R_INFO) n'est pas connectée à un objet sur le tas. Donc, vous devez faire l'une des étapes ci-dessus, puis cela devrait fonctionner. (selon votre classe) p> Créer un objet r_info. code> p>
r_info = nouveau zcl_sv_job_offline_ctrl (). code> p>
r_info = zcl_sv_job_offline_ctrl => créer (is_data = lr_test_record). CODE> P>
Malheureusement, je ne peux pas créer l'objet (aucune valeur n'a été transmise au paramètre obligatoire "io_dispatcher". En outre, la méthode est une redéfinition SO => Ne fonctionne pas.
Et où est ce io_dispatcher code> dans votre question? Dans votre exemple, vous déclarez une référence
r_info code>, puis appelle une méthode sur elle sans l'instanciation, la réponse de Sasku est donc correcte.
Nous ne connaissons pas toute la définition de votre classe. Surtout nous n'avons pas la définition du constructeur. Autant que je puisse voir le message d'erreur indique que vous devez passer quelque chose sur le paramètre iO_Dispatcher tout en créant l'objet (donc dans le constructeur).
Je vous recommanderais de regarder comment Abap-OO et comment les constructeurs (ainsi es-même la création d'objets) fonctionnent. Vous pouvez trouver quelque chose dans Ceci SAP Press Book .
Désolé, je n'ai pas le représentant à commenter pour le moment ...
Je remarque que votre classe est une Z, donc je me demande si vous essayez de créer une classe Singleton. Dans quel cas. Votre «créer» devrait être statique. Votre constructeur privé et votre instance dans un attribut privé. de
D'autres commentaires, je suis d'accord, votre question manque quelques détails clés pour fournir une réponse précise.
Si io_dispatcher code> fait partie du constructeur et vous ne pouvez pas passer une valeur, vous devez creuser un peu plus profondément dans le but de la classe. Voyez si vous pouvez lui donner ce qu'il veut. Essayez un 'où utilisé »et consultez les autres usages de la classe. Vous pourriez trouver que vous regardez la mauvaise classe, ou du moins approcher de la mauvaise direction.
Si Créer code> est une méthode de la classe et ce n'est pas statique, vous ne le ferez jamais de fonctionner avant de créer une instance de la classe.
Une autre pensée qui vient à l'esprit est que vous pourriez être au bon endroit et juste faire la mauvaise chose. Vérifiez vos globaux pour voir s'il existe déjà une instance de la classe et vous essayez d'accéder à quelque chose par déclaration comme des données plutôt que d'utiliser l'instance globale ??
Tout devinez le travail sans plus de détails. P>
Merci tout. p>
La solution consistait simplement à instancier les classes des parents (correctement), m'a permis d'instancier la classe en question. P>
Référencement croisé de votre question dans SCN (il y a des réponses): réponses.sap.com/questions/12905378/...