Na ja, es ist nur ein Codefragment, das Du da bietest. Insbesondere ist nicht klar, auf welche Weise der Wert von lv_field überhaupt gesteuert wird.
Aufpassen musst Du mit dem DATA-Befehl in einem MODULE. "MODULE"-Code ist globaler Code; jede hier definierte Variable ist global! Deswegen sollte man in MODULES eigentlich gar keine Variablen definieren, sondern solche globalen Variabeln (soweit tatsächlich benötigt) in ein TOP-Include packen. Deine Bezeichnung "lv_" weist darauf hin, dass Du von einer lokalen Variable ausgehst, was falsch ist. MODULES sind global.
Willst Du innerhalb von MODULE mit lokalen Variablen arbeiten (was durchaus empfehlenswert ist), dann solltest Du in eine FORM
(oder, falls Du ein Jünger der Objektorientierung bist, in eine Methode) abspringen. Im Extremfall hast Du dann zwischen MODULE und ENDMODULE nur einen einzigen Befehl PERFORM
(oder CALL METHOD). In der Form/Methode kannst Du dann lokale Variablen nutzen.
Aber das nur am Rande. Hinsichtlich Deiner Anforderung stelle ich den Sinn der Variablen lv_field generell in Frage, denn Du willst die Cursorposition ja von der Füllung des Feldes LIFNR abhängig machen und nicht vom Inhalt irgendeines selbstdefinierten Drittfeldes.
Ich würde also in Deinem Code irgend etwas in Richtung
erwarten. Allerdings kann sowas auch tückisch sein: Wenn Du das so einfach ins PBO schreibst, dann wird der Cursor nicht nur initial in dem Feld stehen, sondern auch bei jedem Druck auf Enter wieder dorthin zurückspringen, auch wenn der Benutzer ihn absichtlich in ein anderes Feld bewegt hat (etwa weil Dein Dynpro noch weitere Eingabefelder enthält).