How can we create a restartable job to restart the job from where it got abended? I do not want to reprocess the records which has already been processed by the Job.
It’s really up to the programmer to ensure a job is restartable, and that would be based on what exactly the job is doing. It’s easier on operations if you can make it so the job can the started from the top or from a certain step without modification, but sometimes you may require changes to JCL or inclusion of a restart parameter in order to handle dataset concerns (GDG version exists or dataset was created) or to skip processed records. You should ensure your program displays or stores information that will aid in the restartability, and restart instructions should be coded into the JCL to make it easy for any on-call programmer to know what to do when called (because likely it won’t be the original programmer to will support it down the road).
If, by “job” you mean a single program, you should look at Natural’s Transaction Logic.
This means the END TRANSACTION statement, BACKOUT TRANSACTION, and the use of ET data for restarting programs.