Hi,
well, that's going to be some work to recover, but the good news is that the information isn't lost.
Things would be a lot easier if you'd use the (not open source) Professional edition, but since you're asking as a schedulix user, I assume that's what you use.
Anyway, the start of the procedure to follow is equal, no matter which edition you use.
First of all, I assume that you know when (approximately) you've overwritten the old definition.
Let me assume that was today (October 3rd, 2025) at 9:00 AM.
Now you look in the GUI if you can find a Master (Job or Batch) that was submitted shortly before that time.
And let me assume that you've found such a Master with the ID 123456.
Then you issue the command
SHOW JOB 123456; /* replace the ID with the ID you've found in your system */
and search for the value of SE_VERSION.
I did so on one of my systems and found a value of 53716530.
This number defines the version number of the definition objects used within that Master.
If one of those objects is changed after the Master has been submitted, the newer release will have a version number greater than 53716530.
This numbering is independent of any batch structure, which is why you can pick the number of any batch submitted before you've made the change.
Now you can execute LIST, SHOW and DUMP (if available) commands like
VERSION 53716530 SHOW JOB DEFINITION SYSTEM.SOME_JOB;
VERSION 53716530 LIST JOB DEFINITION HIERARCHY SYSTEM.SOME_MASTER WITH EXPAND = ALL;
And for users of the Professional Edition
VERSION 53716530 DUMP JOB DEFINITION ...; /* the dump command is a little complex and the required form depends on your folder setup */
From here the work of rebuilding the original definition starts.
It is also possible to use SQL queries. Also here you'll need that version number.
If you'd like to know something about the current definition of a job, and I assume you know the ID of the job definition, you'd use something like
SELECT *
FROM SCI_C_SCHEDULING_ENTITY
WHERE ID = 65432;
But that will only give you the current state and what you need is the state before the change, hence
SELECT *
FROM SCI_V_SCHEDULING_ENTITY
WHERE ID = 65432
AND 53716530 BETWEEN VALID_FROM AND VALID_TO;
Note that I've used two different views here.
The view with "_C_" shows the current definition of objects, the view with "_V_" shows all versions and you'll have to filter out which version you need.
You've told that you use a kind of configuration file.
It'll be a good idea to create a central git repository somewhere and use that to store those configuration files.
That would not only help you in situations like these, but it'll also provide a documentation about all that happened in the past.
I hope this helps, but please feel free to ask if you get stuck somewhere.
Best regards,
Ronald