SAP Jobsuche bei DV-Treff
Kreuzotter
vor 15 Jahre
Hallo,

ich habe nachfolgenden Laufzeitfehler beim Anlegen einer Rechnung bekommen (Transaktion VF01):

****************************************************************************
Laufzeitfehler        PERFORM_NOT_FOUND
Ausnahme            CX_SY_DYN_CALL_ILLEGAL_FORM

Kurztext
Aufruf (PERFORM) einer nicht existierenden externen Routine.

Was ist passiert?
Es gibt mehrere Möglichkeiten:

  • Fehler im ABAP-Anwendungsprogramm.

             Das laufende ABAP-Programm "SAPLV60A" musste abgebrochen werden., da es auf eine Anweisung gestoßen ist, die leider nicht ausgeführt werden kann.
oder

  • Fehler im SAP Kernel

             Das laufende ABAP-Programm "SAPLV60A" musste abgebrochen werden, da der ABAP-Prozessor einen fehlerhaften Systemzustand erkannt hat.


Fehleranalyse
Es ist eine Ausnahme aufgetreten, die weiter unten näher erläutert wird.
Die Ausnahme, der die Klasse 'CX_SY_DYN_CALL_ILLEGAL_FORM' zugeordnet ist, wurde in der Prozedur "VBRK_VBRP_DATENTRANSPORT" "(FORM)" weder abgefangen, noch durch eine RAISING-Klausel progagiert.
Da der Aufrufer der PRozedur nicht mit dem Auftreten der Ausname rechnen konnte, wurde das laufende Programm abgebrochen. Der Grund für die Ausnahme ist:

In dem Programm "SAPLV60A" soll ein externer Perform durchgeführt werden, und zwar wird die Routine "DATEN_KOPIEREN_901" des Programms "SAPFC60C" gerufen.
Diese Routine existiert aber nicht.

Folgende Ursachen sind denkbar:

  1. Eines der Programme "SAPLV60A" oder SAPFV60C" wird im System gerade weiterentwickelt. Der Name "DATEN_KOPIEREN_901" der gerufenen Routine ist vielleicht falsch geshrieben (der Name muss insbesondere groß geschrieben sein), oder die Routine "DATEN_KOPIEREN_901" ist im Proframm "SAPFV60C" noch nicht implementiert.
  2. Ist das PRogramm SAPMSSY1 an dem Laufzeitfehler beteiligt, wurde ein Funktionsbaustein, der als nicht remotefähig gekennzeichnet ist, via RFC aufgerufen. (SE37->Verwaltung->RFC-Flag anschalten)
  3. Es handelt sich um einen Schiefstand im System: DIe Stände der Programme "SAPLV60A" udn "SAPFC60C" passen nicht zusammen.

**************************************************************
Ich habe eine neue Kopierroutine angelegt und diese auch im Belegfluß eingetragen (komischerweise hat das System die Routine nicht über die F4-Hilfe gefunden, aber trotzdem akzeptiert). Den Quelltext für die Routine ist auch hinterlegt und aktiviert. Aber ich komm bei der Fehlermeldung nicht weiter.

Dazu habe ich ein paar Fragen.
Zu Ursache Nr.3: Inwieweit können die Stände eines Funktionspool (SAPLV60A) und eines Modulpool (SAPFV60C) zusammen passen??
zu Ursache Nr. 1: an welcher Stelle müsste ich die Routine im Programm SAPFV60C überhaupt einfügen?? Darf man das einfach so? So ganz wohl ist mir dabei nicht.

ich hoffe es kann mir wer helfen, da ich schon sehr lange an dem Fehler sitze und ich noch nicht soviel praktische Erfahrungen habe wie vielleicht andere hier.  Ich bin in einem Testsystem unterwegs.

Hier noch ein paar Daten zum Release:
Release 2.6.16.60-0.37_f5949
Betriebssystem Linux
Applikationsserver sapides5
Datenbanktyp ADABAS D


Kreuzotter 

Förderer

encore
vor 15 Jahre
Hallo Kreuzotter,

hast du deine 901er-Routine in der Transaktion VOFM unter Datenübernahme - Fakturen auch aktiviert ?  es klingt eher so, aks wenn nicht.

und wenn nicht, dann gibt es zwar den Code (auch aktivirten Code), aber keine Einbindung in die Umgebung.
Grüsse

nk

Kreuzotter
vor 15 Jahre
Hallo encore,

also ich habe die Routine auch aktiviert. Daran kanns also nicht liegen. (damit hatte ich früher immer Probleme )

Aber woran könnte das denn noch liegen?? Langsam verzweifle ich.
encore
vor 15 Jahre
Hallo Kreuzotter,

also wenn in der VOFM bei der Übersicht der Routinen unter     Datenübernahme - Fakturen     der Haken bei "aktiviert" gesetzt ist bei deiner 901 - ok. Schau dir mal hier den Code direkt aus der VOFM aus an - der Include sollte den Namen  RV60C901 haben.

Dann such mal mit der SE38 im SAPFV60C nach dem Aufruf von RV60C901 - den solltest du dann dort finden.

Wenn das alles ok ist, muss man wohl tiefer einsteigen.
Grüsse

nk

Horst_kevin
vor 15 Jahre

Hallo Kreuzotter,

führe mal den Report RV80HGEN aus, der generiert die ganzen Routinen neu. Ist eine Böse Falle finde ich.

Schöne Grüße


4.6 C

SAP_ALL ohne HR

Kreuzotter
vor 15 Jahre
Danke erstmal für die schnellen Antworten.

@encore: Der Quellcode ist aktiviert, allerdings wird der Haken nicht vorher angezeigt. Der Include hat den Namen RV60C901. Soweit passt das alles. Aber im SAPFV60C finde ich den nicht.

@Horst_kevin: den Report habe ich ausgeführt und er sagt, alle Routinen seinen aktiviert. Aber der Laufzeitfehler wird immer noch angezeigt.

Kreuzotter
vor 15 Jahre
Hier noch ein kleiner Nachtrag:

Ich habe mir das Programm SAPFV60C mal etwas angeschaut. Es enthält für Datenübernahme das Programm FV60CNNN. Dieses wiederrum enthält ein Programm RV60CNNN, welches eine Test-Routine RV60C601 in sich hat.

Kann ich nun einfach in diesem Unterprogramm einfach den Include RV60C901 einfügen. Verändere ich damit nicht ein Teil des Standardprogramms. Das will ich nämlich nicht unbedingt machen, wenn es sich vermeiden lässt.

encore
vor 15 Jahre
Hallo Kreuzotter,

hier könnte noch immer ein Missverständnis vorliegen: ich meine nicht die Aktivierung des Quell-Codes !!!!!

sondern:  in VOFM unter  Datenübernahme - Fakturen   lässt du dir alle Routinen anzeigen,  wählst dann deine 901 aus und klickst auf   Bearbeiten - aktivieren.
Erläuterung der SAP:  

Routine ist aktiviert

Zeigt an, ob eine Routine aktiviert ist.

Verwendung

Beim Aktivieren einer Routine wird das generierte Coding, das die Routine durchführt, in das entsprechende Programm eingebunden.

Und bei dir ist die Routine doch offenbar nicht aktiviert, sonst müsste sie ja auch im Rahmenprogramm zu finden sein.

Oder schau in die Tabelle TFRM  unter  FDAT - 901    -  dort müsste deine Routine stehen und ein aktivert-Flag haben.

Der von Horst_kevin erwähnte Report sollte alle diese Einträge in der TFRM aktiv setzen.


 


Grüsse

nk

Kreuzotter
vor 15 Jahre
Hallo encore,

da lag wirklich noch ein Missverständis vor. Habe die Routine jetzt richtig aktiviert und mir dabei nocheinmal den Quellcode genau angeschaut und dort einen Fehler gefunden.

Nun funktioniert alles so wie es sollte und die Fehlermeldung ist verschwunden.

Danke für eure schnelle Hilfe.

Kreuzotter