ich habe eine Frage zur Implementierung von BAdIs. Ich will den BAdI "CO_DOCUMENT_INFO" mit eigenem Coding ausprogrammieren. Dafür habe ich eine Implementierung angelegt und aktiviert.
Im SE18 kann ich über Implementierung -> Übersicht die Implementierung ansehen und diese wird als aktiv angezeigt.
Leider bekomme ich beim Testen einen Dump mit der Meldung, dass die Instanz der BAdI-Klasse nicht erzeugt werden kann, weil die Klasse nicht gefunden wird. Beim Debuggen habe ich herausgefunden, dass anstatt meiner Klasse die Klasse "CL_EX_CO_DOCUMENT_INFO", welche beimBAdI als generierte Klasse angegeben ist, herangezogen wird. Diese Klasse gibt es nicht im System, deshalb kommt es zum Abbruch.
Warum wird meine Implementierung nicht verwendet? Muss ich noch zusätzlich etwas aktivieren, damit meine Klasse angesprochen wird?
Hat jemand schon ein ähnliches Problem gehabt?
ich habe jetzt in unserem ECC 6.0 -System nacgeschaut, dort gibt es die Klasse. Da wir auf ECC 6.0 noch nicht umgestiegen sind und ich den BAdI testen wollte, habe ich diesen im Entwicklungssystem (Release 470) angelegt.Als Grundlage habe ich den OSS-Hinweis 790130 verwendet. Dort steht aber nichts darüber, dass ich noch die Klasse anlegen sollte.
Die Adapter-Klasse "CL_EX_CO_DOCUMENT_INFO" ist wahrscheinlich nicht angelegt worden, wird aber benötigt. Versuche es irgendwie gerade zu biegen, falls es geht.
Wenn man den BAdI aktiviert, wird die zugehörige Adapter-Klasse automatisch von SAP generiert. Beim letzten mal fehlte mir der Zugangsschlüssel für das Klassen-Objekt (habe mir jetzt über unseren SAP-Admin besorgt), deshalb wurde die Klasse nicht angelegt. Die Klasse ruft die aktive BAdI-Implementierung auf. Jetzt klappt es und das Programm stürzt nicht mehr ab.
jetzt wird es für mich aber interessant...
Zuerst habe ich gedacht, dass du einen neuen BAdI in dein System eingespielt hast und das das nicht sauber geklappt hat.
Dann hättest du aber mit der SE19 auch keine Implementierung hinbekommen. Oder kannst du Implementierungen in der SE19 ohne Definitionsnamen anlegen?
Kläre mich doch bitte auf, was du genau gemacht hast.
die Sache war folgend gelaufen: Ich brauchte einen BAdI von SAP, der in unserem Release noch nicht vorhanden war. Dazu habe ich entsprechenden Hinweis im OSS gefunden, in dem beschrieben war, wie man den BAdI in einem früherem Release selbst anlegen kann. Das ist dann natürlich die Reparatur im SAP-Namensraum, aber in einzelnen Fällen ist es erlaubt.
Laut der Anleitung musste ich die BAdI-Definition mit SE18 manuell anlegen und das zugehörige Interface definieren. Danach wurde der OSS-Hinweis eingespielt, der den Aufruf des BAdIs in SAP-Programme einfügte.
Bei der Aktivierung der BAdI-Definition mit SE18 wird automatisch eine Adapter-Klasse generiert. Dies hat beim ersten mal einfach nicht geklappt, jedoch beim zweiten Versuch.