There are a number of ways to execute a job:
All methods allow you to read the job definitions from the repository, or from a job definition file. In general, as an application developer you create and test jobs using the repository, but your end users can only execute jobs read from a job definition file.
Therefore, in a production environment, you have to distribute this job definition file, preferably together with other flat files.
It is possible to start batch jobs from within the user application, even when you have set separate properties for repository and applications in the Binder.