As Vaheva mentioned, if you want things to move in game, you need to use the “Tick” event. Attaching all of your code to BeginPlay will attempt to run everything before updating. The exact timing specifics can get a little grey, but generally you can assume that Unreal will attempt to run any script you make as fast as possible.
The Tick event also runs as fast it can, but Tick is called on a time step. So every X milliseconds, depending on your frame rate, it’s called again. As such, you need to approach your problem solving differently.
I’m not certain if its properly arranged, but the rest of your code is on the right track for what you’re trying to do. Notice that the pin coming out of your MoveTime node says “update.” That node expects to be called multiple times, each time returning the next step of the curve until it reaches the end. It’s not a classic programming loop. As such, you should be able to just hook the “Play” pin to the Tick event.
As for actually updating the position, it looks like you’re just setting a class variable and not actually setting the SceneComponent’s position.