select single vbeln from vbap into lv_vbeln
where ps_psp_pnr eq lv_pspnr.
select single kunnr from vbak into ls_pa9500-kunnr
where vbeln eq lv_vbeln.
select single land1 ort01 name1 pstlz stras from kna1
into (ls_pa9500-country, ls_pa9500-city, ls_pa9500-kun_name, ls_pa9500-post_code, ls_pa9500-street )
where kunnr = ls_pa9500-kunnr.
Du hast ein Problem mit einer Exception und schreibst noch nicht mal, um welche Exception es sich handelt?!?
Ansonsten vorsichtiger Tipp: Deinen Feldnamen zufolge scheinst Du für den Parameter RECORD ein Feld der Struktur PA9500 zu übergeben. Erwartet wird jedoch ein Feld der Struktur P9500. Kleiner aber feiner Unterschied.
Ist natürlich insofern nicht ganz einfach, als Dein Infotyp 9500 ein selbstgemachter (kundeneigener) Infotyp ist, also kein Standard-Infotyp. Dennoch gehe ich davon aus, dass in den Aufrufdaten was nicht stimmt.
Was Du als erstes versuchen kannst, ist auch noch das (triviale) Feld ls_pa9500-infty zu füllen. Bin jetzt nicht sicher, ob das relevant ist, aber ich mache es immer. Dafür kannst Du die Zuweisungen für die Felder ls_pa9500-aedtm und ls_pa9500-uname rausnehmen. Da weiß ich mit Sicherheit, dass SAP die automatisch pflegt. Und schau Dir (im Debugger direkt vor Aufruf des FB!) auch noch mal genau die Datümer an, die Du da übergibst. Bei Deinem Insert sollte ls_pa9500-begda = lv_beg und ls_pa9500-endda = lv_end sein und lv_end >= lv_beg sichergestellt sein! Und Empfehlung: Ein kompletter Search&Replace ls_pa9500 --> ls_p9500. Sonst stellst Du jedem, der später Deinen Code liest, eine gemeine Falle.
Wenn das nicht hilft, poste doch bitte mal den Codeausschnitt, der im Dump steht, dass man mal genau sieht, an welcher Stelle im Standard die Exception geworfen wird. Am besten auch den (gleichfalls im Dump vorhandenen) Block mit den Feldwerten zum Zeitpunkt des Aufrufs (kannste ja im Testsystem machen, damit Du hier keine produktiven Daten postest).
Das ist aber sehr schräg! Für mich klingt das so ein bisschen wie "Ich habe eine Variable umbenannt, und dann ging es.". An Deiner Stelle würde ich mich mit so einer Krückenlösung nicht zufriedengeben, sondern versuchen zu ergründen, was denn nun wirklich die Ursache (gewesen) ist. Ich setze den von Dir angesprochenen FB dutzendfach in verschiedensten Programmen ein und habe kein Problem. Eigentlich ist der ganz wunderbar nutzbar.