Jobs, Job Chains, and Job History 
Jobs lie at the core of SAP CPS. Jobs can be submitted by users, as the result of a particular event (for instance the arrival of a file, or a trigger in a remote system), or based on a business schedule. A job can be as short and simple as a line of ABAP code that runs on a single system, or as complex as a multi-day mass activity that runs across dozens of machines.
SAP CPS not only allows you to submit simple jobs, it allows you to create job chains with complex parameters. Custom job definitions with complex parameters can be written that are re-used for different tasks. Consider file transfer as an example; when there are only one or two files to be transferred, then writing a job for each file transfer that contains all the commands to transfer the file (including the file name) might be sufficient. When there are dozens (or even hundreds of files), a better approach is needed.
In SAP CPS, this could be handled by creating a job definition called Transfer File that has four parameters: System to transfer from, Directory to transfer from, System to transfer to, Directory to transfer to. This would allow operators to easily add new file transfers to the schedule, and clearly see the files being transferred (and the systems involved) in the job monitor. If some improvement was made to the transfer process, for example, using secure FTP instead of FTP, then this change can easily be made by changing the job definition. If a mistake is made, this can be fixed by changing the parameters of the job (through the job monitor), rather than editing the job itself.
Note
FTP support requires the Platform Module, which allows you to schedule programs on remote UNIX and Windows servers.
Submitting a job definition allows you to specify values for the parameters, creating a job. Each job can then be monitored throughout its lifecycle: from being submitted, to running, to finishing (either in a COMPLETED or ERROR state) to finally being deleted. The job definition approach means that you can have as many jobs running as you need, rather than having to create new jobs as business needs change.
Job chains are job definitions of a specific type. They are made of one or more calls to job definitions, named jobs, and are comparable to multi-step SAP jobs. Complex job dependencies can be met with job chains, steps and jobs can be restarted when a job fails, for example.
Jobs are saved in the system according to the keep clause. The keep clause is set on a job definition or job chain basis. The default keep clause is to keep jobs forever. The keep clause can be expressed in job versions or dates. For example, you would like to keep a jobs from a specific job definition for 12 months, each time the job completes, the system will check if there are old jobs that need to be deleted and delete them for you.
You can also choose to manually handle job history, the context menus of job definitions and job chains have an action Delete final state jobs. The output of deleted jobs is regularly deleted by the system job definition System_DeleteJobFiles.