Job deployment and package
Sep 24, 2026 · @User
A job package is a set of jobs that sapio365 deploys and removes as one unit: every job XML file carrying the same JobPackage value in its header belongs to that package.
Use a package to deliver several related jobs together, for example one job per module for the same process. You ship them as a single zip file, the Job Center imports them in one go, and removing any one of them removes them all.
|
|
Single job |
Job package |
|---|---|---|
|
Delivered as |
One XML file |
A zip file of XML files |
|
Imported by |
Dropping the XML on the Job Center grid, or Import |
Dropping the zip on the Job Center grid, or Import |
|
Removing a job |
Removes that job |
Removes every job of the package |
|
Canceling during import |
Stops the remaining jobs |
Nothing of the package is imported |
Define a package
Add the JobPackage attribute to the ytriaAutomation tag of every job file in the package, with the same value in each file.
<?xml version="1.0" encoding="UTF-8"?>
<ytriaAutomation application="sapio365" JobPackage="Onboarding" WizardTitle="Onboarding - Users" WizardDescription="Create the new user accounts.">
...
</ytriaAutomation>
-
Attribute name: exactly
JobPackage(letter case does not matter). Any other name, such asWizardPackage, is not recognized, and the job is not part of the package. -
Value: matched without regard to letter case; leading and trailing spaces are ignored. The value also names the folder where the package files are kept.
-
Modules: jobs of one package can target different modules with
TargetModule. A job withoutTargetModulegoes to the Job Center it is imported into. -
One package per job: a job is identified by its module and file name. Importing a file with the same name into the same module replaces that job, even when it comes from another package.
Deploy a package
Zip the job files of the package together, then import the zip into a Job Center in the sapio365 backstage. An active session is required.
-
Put all XML files of the package in one zip file. Folders inside the zip are allowed, but every file name must be unique across the whole zip.
-
Open the Job Center, in the main window or in a module, and do one of the following:
-
Drop the zip file on the Job Center grid. You can drop several zip and XML files at once.
-
Click Import and pick the zip file (advanced view only; the file picker accepts XML and ZIP files).
-
-
Answer the checks and dialogs described below.
sapio365 checks each zip file before importing anything:
|
The zip holds |
What happens |
|---|---|
|
XML files that all have the same |
Imported without asking |
|
Files without |
A confirmation lists each package with its job count, the jobs without a package and the ignored files. Continue imports the XML files; Cancel imports nothing. |
|
Two files with the same name (in different folders) |
Refused: "Several files have the same name." |
|
No XML file |
Refused: "No XML job file found." |
Files other than XML are never imported. When some files are refused and others are valid, sapio365 offers to continue with the valid ones.
During the import
A package is imported whole or not at all: nothing is saved until every dialog is confirmed.
-
Replacing existing jobs: jobs that already exist are listed in Replace existing jobs. Choose Import new job or Keep current job for each one. When a job would move to another package, its row shows "Job package: new (currently: old)".
-
Job details: each new job opens Edit metadata for job, as for a single XML file. Title, description, tooltip and icon changed there are also written into the job's XML.
-
Canceling: Cancel in a job's dialog stops the import. Packages with a job not yet confirmed are skipped entirely: none of their jobs are added or replaced, and a message lists them. Confirmed jobs outside a package are imported as usual.
-
Modules: jobs with a
TargetModuleare imported into that module, whichever Job Center received the zip. -
Kept files: the imported XML files are copied to
JobPackages\<package name>in the sapio365 data folder (by default%LOCALAPPDATA%\Ytria\sapio365). Jobs without a package from a zip go to a folder named after the zip. Update from file uses these copies.
After the import
The Job Center grid shows a Job Package column as soon as one of its jobs belongs to a package, in simple and advanced view.
-
Editing a job: in Edit metadata for job, the title, description, tooltip and icon are read-only when the job's XML file defines them. To change them, edit the XML file, then use Update from file. Fields the XML does not define stay editable.
-
Update from file (advanced view) reloads the selected jobs from their kept XML files, shown in the Source File Path column. A changed
JobPackagevalue moves the job to the new package; a removed one takes it out of its package.
Remove a package
Removing any job of a package removes every job of that package, in all modules.
-
Where: the Delete button of a Job Center, or the delete link of a job on the main screen.
-
Confirmation: the dialog says "All jobs of a package are removed together" and lists the other jobs it removes, with their module and file name.
-
What goes with them: the presets of these jobs and their scheduled tasks in Windows Task Scheduler. This cannot be undone.
-
What stays: system jobs are never removed, and the kept XML files remain in the
JobPackagesfolder.
Open windows of the other modules concerned refresh their job lists.
Troubleshooting
|
Message or symptom |
Cause |
Fix |
|---|---|---|
|
Jobs listed as "Without job package" |
The attribute is misspelled, for example |
Rename it |
|
"Several files have the same name." |
Two files in different folders of the zip share a name |
Rename one of them |
|
"No XML job file found." |
The zip is empty or holds no |
Add the job files |
|
"A system job already exists with the key ..." |
The file name matches a system job of that module |
Rename the XML file |
|
"... already exists and is read-only" |
A read-only job has the same module and file name |
Rename the XML file |
|
"'...' is not a valid module name." |
The |
Fix |
|
"Importing jobs requires an active session." |
No session is loaded |
Log in, then import again |