Habe dort jetzt die Aufgabe bekommen einen vorhanden Service Interface-Eintrag über die Transaktion SPROXY zu implementieren und die Daten, die per Proxy reinkommen abzufangen und zu verarbeiten.
Ich hatte das jetzt als Service-Consumer implementiert, bin mir aber nicht sicher, ob das schon richtig ist :(
Also zum Ablauf:
der Proxy / Service soll per PI aufgerufen werden und darüber werden in einer Tabelle Materialnummern mitgeteilt.
Für diese soll dann über ein Z-Programm Z-IDocs generiert werden (am einfachsten über SUBMIT).
Ich hatte jetzt das Vorgehen, dass ich die Proxy-Klasse als Oberklasse für eine Z-Klasse hinterlege und die benötigte Methode redefiniere. Beim Test des Proxy wird, aber die Unterklasse nicht durchlaufen.
Wie muss man hier vorgehen damit Custom Code durchlaufen werden kann?
logischer Weise wird der Code nicht durchlaufen. Ich weiß nicht woher der Tipp kam, aber derjenige sollte wissen das auch erstmal deine Z-Klasse als Objeck instanziiert werden muss. Nur Deklarieren reicht da nicht. Ich hoffe mal die Methode die Du meinst ist in einem Interface. Ansonsten schau an der der Stelle wo die Proxy-Klasse als Objekt erzeugt wird, ob vorher irgendwo Customizing gelesen wird oder es ein User-Exit gibt. Ich vermute mal, das man die Proxys die benutzt werden irgendwo einstellen kann. Da gehört dann deine Z-Klasse rein. Diese wird instanziiert und die redefinierte Methode durchlaufen.
das mit dem Instanzieren dachte ich mir und kenne ich auch nur so, aber meine Info war, dass der Service / Proxy dann über die PI aufgerufen wird aus dem Drittsystem.
Dadurch wird doch dann die Proxy-Klasse durchlaufen oder?
Die Proxy-Klasse ist eine Klassen-Interface.
Eigentlich ein no-brainer. Die in SPROXY generierte Klasse wird beim Aufruf durch PI durch SAP Standard instanziert. Einfach das zu durchlaufende Coding in die darin enthaltene öffentliche Methode packen.
Eine andere Klasse, die von der Proxy-Klasse erbt, wird nicht durchlaufen. Woher soll SAP auch wissen welche. Du könntest 10 solcher Klassen anlegen.